Computer Science
Download as PDF
Program Requirements
The program leading to a Bachelor of Science degree in Computer Science equips students for a successful career in the industry and graduate studies in diverse disciplines. It emphasizes the development of crucial skills, such as formulating abstract concepts, creating innovative computational solutions, designing complex systems, and incorporating cutting-edge technologies. The curriculum not only establishes a robust foundation for lifelong learning but also integrates theoretical principles in information and computation, keeping students informed about the latest developments. With a strong focus on professional development, encompassing technical communication, ethical considerations, and teamwork, the program ensures that graduates are well-prepared for the dynamic demands of the computing landscape. The Bachelor of Science in Computer Science program is accredited by the Computing Accreditation Commission of ABET.
Program Educational Objectives
In the course of their careers, graduates of the Computer Science program will:
Work productively in the creation, maintenance, and improvement of computing systems.
Remain current in their profession through lifelong learning, including graduate school.
Exhibit leadership and exercise their profession with the highest level of ethics, and social responsibility.
Requirements for the Major in Computer Science, B.S. Program
To earn the Bachelor of Science degree with a major in Computer Science students must complete a minimum of 128 credits and meet the following requirements:
General Education Requirements
In order to graduate on-schedule without taking additional courses, it is highly recommended that students meet with an Undergraduate Academic Adviser concerning the selection of all of their General Education courses.
Each candidate for an Oakland University baccalaureate will need to satisfactorily complete approved courses in each of the following areas: Foundations, Explorations, Integration, Writing Intensive, and US Diversity. For details, refer to the General Education Requirements section of the catalog. In order to satisfy both General Education and other program requirements, in some of the general education areas students should select from the courses listed below.
Foundations
Explorations: 1 Course from Each of the 7 Explorations Areas
Arts
Language and Culture
Global Perspective
Literature
Natural Science and Technology (Satisfied by an approved science elective with lab)
Social Science
Western Civilization (Satisfied by course; see Additional Major Requirements)
Integration
Knowledge Applications (Satisfied by course; see Quantitative Foundations)
U.S. Diversity
May be met by an approved course in the Explorations Area.
Writing Intensive and Capstone
Capstone (Satisfied by course; see Required Professional Subjects)
Writing Intensive in the Major (Satisfied by course; see Required Professional Subjects)
Writing Intensive in General Education (may be met by an approved course in the Explorations Area)
Additional Major Requirements
All students must complete the following requirement.
Professional Ethics: course Introduction to Ethics in Science and Engineering
Quantitative Foundations
course Calculus I (4)
course Calculus II (4)
course Discrete Structures with Applications (4)
or course Discrete Mathematics (4)course Computational Linear Algebra (4)
or course Linear Algebra (4)course Applied Probability and Statistics (4)
Approved Science Elective with Lab
Take 1 of the following biology, chemistry, or physics courses with the corresponding laboratory:
course General Chemistry I (4) and course General Chemistry Laboratory I (1)
course Introductory Physics I (4) and course General Physics Lab I (1)
Computer Science Core
course Introduction to Python Programming and Unix (4) *
course Object-Oriented Computing (4)
course Data Structures (4)
course Programming in C (2)
or course C++ for Programmers (2)course Introduction to Computer Networks (4)
*Students who already have credit for at least 1 of course or course, for example due to transfer from another institution, can use course and course together to fulfill the combined requirements for course and either course or course.
Required Professional Subjects
course Software Engineering and Practice (4)
course Theory of Computation (4)
course Design and Analysis of Algorithms (4)
course Database Design and Implementation (4)
course Security and Privacy in Computing (4)
course Computer Organization (4)
course Programming Languages (4)
course Operating Systems (4)
course Parallel and Distributed Computing (3)
course Senior Capstone Project (4)
Professional Electives
Students must complete 3 courses as part of the professional electives requirements. Courses can be selected from within 1 area if the student has a particular academic interest or any combination of courses listed under different areas.
Artificial Intelligence Area
course Artificial Intelligence (4)
course Deep Learning and Applications (4)
course Machine Learning (4)
course Natural Language Processing (4)
course Visual Computing (4)
course Information Retrieval and Knowledge Discovery (4)
Computer Systems and Networking Area
course System Administration (4)
course AI for IT Operations (4)
course Cloud Computing (4)
course IT Project Management (4)
course Computer Networks (4)
course Enterprise System Administration (4)
Cybersecurity Area
course Software Verification and Testing (4)
course Information Security (4)
course Information Security Practices (4)
course Mobile Security (4)
course Network Security (4)
course Software Security (4)
Data Science Area
course Data Visualization (3)
course Contemporary Issues in Data Science (3)
course Database System I (4)
course Bioinformatics (4)
course Big Data Analysis with Cloud Computing (4)
Game Development Area
Web and Mobile Systems Area
course Web and Mobile Systems (4)
course Integrated Computing Systems (4)
course Android Application Development (4)
course Advanced Web Design Application (4)
Note
course (Special Topics), course (Undergraduate Research), and course (Independent Study) may also count toward fulfilling the professional electives requirement, provided each course is at least 3 credits. General elective credits may be needed to meet the minimum of 128 credits required for the degree, depending on the chosen professional electives courses. Students following this catalog may apply any future courses introduced within the professional electives to meet the professional electives requirement.
Flexible Electives
Students must complete a minimum of 6 additional credits in flexible electives. Flexible elective courses can be chosen from 3000-level or higher courses in CSI, BE, ECE, ISE, ME, APM, MOR, MTH, STA, BIO, CHM, or PHY, or from the approved courses listed below. No more than 2 credit of course (Internship) can be used to fulfill the flexible electives requirement. Additionally, courses at the 5000-level require approval from the instructor.
Approved flexible elective courses:*
course Immersive Python (2)
course Ruby for Web Developers (2)
course Programming in Visual C# for .NET Technology (2)
course Programming in C (2)
course Fundamentals of Cybersecurity (4)
course Introduction to Artificial Intelligence (4)
course Introduction to Data Science in Python (4)
course Introduction to Differential Equations with Matrix Algebra (4)
course Introduction to Electrical and Computer Engineering (4)
*Students can receive credit for either course or course, but not both. Similarly, credit can be received for either course or course, but not both.
Minimum Credit Hour Requirements in Quantitative Foundations
Students must complete all 5 required quantitative foundations courses for a minimum of 15 credits. Students with fewer than 15 credits of required quantitative foundations, for example due to transfers from another institution, must take additional courses to satisfy the requirement. Any additional course must be approved by a petition of exception.
Optional Concentrations
The Computer Science and Engineering Department offers optional major-dependent concentrations to any student enrolled in the Bachelor of Science degree in Computer Science. These concentrations aim to broaden students’ knowledge in specific areas. The concentrations will be noted on the transcript of the students. To earn a concentration as part of the Bachelor of Science degree in Computer Science, students must fulfill all the requirements of the Bachelor of Science degree in Computer Science and complete a minimum of 15 credits by selecting specific courses. These selected courses also count towards fulfilling the professional and flexible electives requirements of the Bachelor of Science degree in Computer Science. Please refer to the individual concentration requirements for more details. Students interested in the concentration should consult an Academic Adviser for guidance on course selection. The following major-dependent concentrations are available to students enrolled in the Bachelor of Science degree in Computer Science:
Concentration in Artificial Intelligence
Students are required to take 4 courses from Group A and Group B, at least 1 of which should be from Group A.
Group A:
course Artificial Intelligence (4)
course Deep Learning and Applications (4)
course Machine Learning (4)
Group B:
course Natural Language Processing (4)
course Visual Computing (4)
course Information Retrieval and Knowledge Discovery (4)
Concentration in Computer Systems and Networking
Students are required to take all 3 courses from Group A and 1 course from Group B.
Group A:
course System Administration (4)
course Computer Networks (4)
course Enterprise System Administration (4)
Group B:
course Script Programming (4)
course AI for IT Operations (4)
course Cloud Computing (4)
course IT Project Management (4)
Concentration in Cybersecurity
Students are required to take both courses from Group A, 1 from Group B, and 1 from either Group B or Group C.
Group A:
Group B:
Group C:
course System Administration (4)
course Script Programming (4)
course Computer Networks (4)
course Enterprise System Administration (4)
Concentration in Data Science
Students are required to take 4 courses: both courses from Group A, 0 or 1 from Group B, and the rest from Group C.
Group A:
Group B:
Group C:
Concentration in Game Development
Students are required to take all 3 courses from Group A and 1 course from Group B.
Group A:
Group B:
Concentration in Web and Mobile Systems
Students are required to take 3 courses from Group A and 1 course from Group B.
Group A:
course Web and Mobile Systems (4)
course Integrated Computing Systems (4)
course Android Application Development (4)
Group B:
Computer Science and Data Science Double Major
Students interested in pursuing a double major in Computer Science and Data Science are encouraged to consult with an Academic Adviser for a 9-semester course plan.
Major Standing
To enroll in 3000- or higher level courses and to become candidates for the degree of Bachelor of Science with a major in Computer Science, students must gain major standing. An application for major standing should be submitted prior to intended enrollment in 3000- or higher level courses. Students can obtain the major standing form from the SECS Undergraduate Advising Website. At the time that major standing is approved, students with majors of Pre-Computer Science will have their major changed to Computer Science. Approval of both a major standing application and change of major to Computer Science is required prior to enrolling in any 3000- or higher-level courses.
To gain major standing in Computer Science, students must:
• have a minimum average GPA of 2.0 in major standing courses which consist of course, course, course or course, approved science elective with lab, course, course, course, and course;
• have no more than 2 grades with C-, D+, or D in the major standing courses;
• have not attempted any major standing course more than 3 times; and
• have not repeated more than 3 different major standing courses, with courses bearing a W (withdrawal) grade not being counted.
Conditional major standing, which permits students to register for 3000- or 4000-level SECS courses, will be granted in the semester during which the student will fulfill requirements for major standing courses.
Students who have questions about petition of exception, transfer credit, academic standing, major standing, or any other aspects of their degree programs should consult an Academic Adviser and other relevant sections of the undergraduate catalog.
Performance Requirements
Satisfactory completion of the program requires an average grade of at least 2.0 within each group: quantitative foundations and approved science elective with lab; computer science core; and professional courses (including required professional subjects, professional electives, and flexible electives). Within the professional courses at most 2 different courses may be repeated, a total of 3 attempts per course is permitted, and at most 2 grades below C are permitted. A grade of C or better in course (Senior Capstone Project) must be received.
Sample Computer Science Schedule
Students entering the School of Engineering and Computer Science with the required background may follow a schedule such as the one indicated below. However, students will need additional time to complete the program if they do not have the required background upon entrance to the program.
Freshman Year
Fall Semester – 16 credits
course Calculus I (4)
course Introduction to Python Programming and Unix (4)
General Education (4)
General Education (4)
Winter Semester – 17 credits
course Object-Oriented Computing (4)
course Calculus II (4)
Approved Science Elective with Lab (5)
General Education (4)
Sophomore Year
Fall Semester – 16 credits
course Discrete Structures with Applications (4)
or course Discrete Mathematics (4)course Data Structures (4)
General Education (4)
General Education (4)
Winter Semester – 18 credits
course Programming in C (2)
or course C++ for Programmers (2)course Computational Linear Algebra (4)
or course Linear Algebra (4)course Introduction to Computer Networks (4)
General Education (4)
General Education (4)
Junior Year
Fall Semester – 16 credits
course Applied Probability and Statistics (4)
course Security and Privacy in Computing (4)
course Design and Analysis of Algorithms (4)
course Computer Organization (4)
Winter Semester – 15 credits
course Software Engineering and Practice (4)
course Theory of Computation (4)
course Parallel and Distributed Computing (3)
Professional Elective (4)
Senior Year
Fall Semester – 16 credits
course Database Design and Implementation (4)
course Programming Languages (4)
Flexible Elective (4)
Professional Elective (4)
Winter Semester – 14 credits
course Operating Systems (4)
course Senior Capstone Project (4)
Flexible Elective (2)
Professional Elective (4)
Applicable Minors
All Minors are applicable to this major with the exception of the following Minor(s): Child Welfare, Computer Science, Information Technology, Mathematics, Two Science, and Three Science.