Program: B.S., Computer Science
The B.S. degree in Computer Science provides a broad knowledge of computing and is designed for students who desire: (a) to pursue graduate work in computer science and (b) to work on the development and support of software projects in a diverse range of specialized areas. The Computer Science degree consists of a set of core courses and a 15-unit senior electives package. The core of the program covers programming languages, computer system organization, operating systems, data structures, software engineering, computation theory and societal implications in computing. The senior electives package allows students to specialize in such fields as artificial intelligence, embedded applications, networking, gaming, graphics, software engineering and security.
The B.S. in Computer Science program requires a total of 120 units, including General Education requirements, major core courses and a 15-unit senior electives package. To graduate, a student must complete a minimum of 18 residency units from the list of Upper Division required courses listed below in addition to all other institutional residency requirements.
Special Grade Requirements
A grade of “C” or better is required in both GE Analytical Reading/Expository Writing and Oral Communication. Carefully check course prerequisites as many courses in the major require grades of “C” or better in prerequisite courses.
No grade lower than a “C” will be accepted on transfer from another institution to satisfy Computer Science requirements. Where specific grade requirements are not specified, no CSUN grade lower than a “C-” will be accepted for courses required in the Computer Science program.
1. Lower Division Required Courses (36 units)
COMP 110/L Introduction to Algorithms and Programming and Lab (3/1)
COMP 122/L Computer Architecture and Assembly Language and Lab (1/1)
COMP 182/L Data Structures and Program Design and Lab (3/1)
COMP 222 Computer Organization (3)
COMP 256/L Discrete Structures for Computer Science and Lab ( 3/1)
COMP 282 Advanced Data Structures (3)
MATH 150A Calculus I (5)
MATH 150B Calculus II (5)
MATH 262 Introduction to Linear Algebra (3)
PHIL 230 Introduction to Formal Logic (3)
2. Lower Division Electives (12-14 units)
a. Select one of the following science sequences (8-10 units)
*BIOL 107/L has a recommended prerequisite of CHEM 101/L.
b. Select an additional science course with corresponding lab outside of the sequence selected above (4-5 units)
BIOL 106/L Biological Principles I and Lab (3/1)
CHEM 101/L General Chemistry I and Lab (4/1)
GEOG 101/102 The Physical Environment and Lab (3/1)
GEOG 103/105 Weather and Lab (3/1)
GEOL 101/102 Geology of Planet Earth and Lab (3/1)
GEOL 110/112 Earth and Life through Time and Lab (3/1)
PHYS 220A/AL Mechanics and Lab (3/1)
3. Upper Division Required Courses (24 units)
Before taking Upper Division courses in Computer Science, students must be admitted to the Computer Science major/minor programs, the Computer Information Technology major program, the Computer Engineering major program or the Information Systems/Information Technology major program.
Note: All students must attempt the Upper Division Writing Proficiency Exam prior to enrolling in any 400-level Computer Science course. The Upper Division Writing Proficiency Exam must be passed prior to enrolling in COMP 490/L.
COMP 310 Automata, Languages and Computation (3)
COMP 322/L Introduction to Operating Systems and System Architecture and Lab (3/1)
COMP 333 Concepts of Programming Languages (3)
COMP 380/L Introduction to Software Engineering and Lab (2/1)
COMP 490/L Senior Design Project and Lab (3/1)
COMP 491L Senior Project Lab (1)
MATH 482 Combinatorial Algorithms (3)
Select one of the following:
4. Upper Division Electives (15 units)
Computer Science majors are required to take 15 units of senior electives.
The senior electives must consist of 15 units of 400- or 500-level courses in Computer Science (not COMP 450, 480/L, 490/L, 491L, 494 or 499). The electives may include MATH 481A (Numerical Analysis) as 3 of the 15 units.
Requests for taking a 400- or 500-level course as a senior elective that does not meet the requirements stated above must be approved by the student’s faculty advisor and by the department chair prior to enrollment in the course.
It is strongly recommended that students discuss their career goals with an advisor prior to selecting their senior electives. The advisor will suggest appropriate courses for the student to consider.
5. General Education (48 units)
Undergraduate students must complete 48 units of General Education as described in this Catalog.
Computer Science majors follow a modified General Education program depending upon the year they enter the program and their enrollment status as a college student. Returning and transfer students should consult an advisor before planning their General Education programs. The requirements for students entering in Fall 2006 or later under the new GE Plan are described here. Computer Science students are required to take courses in the following GE sections: Analytical Reading and Expository Writing (3 units); Oral Communication (3 units); Social Sciences (6 units); Arts and Humanities (6 units); Comparative Cultural Studies (6 units); and U.S. Government and History (6 units). Nine units of the GE requirements must be Upper Division (300-plus) courses that are certified as writing intensive. Two GE courses must meet the Information Competence requirement. All other GE requirements are met through completion of courses in the major.
Total Units in the Major: 87-89
General Education Units: 30
Additional Units: 1-3
Total Units Required for the B.S. Degree: 120
Chair: Richard Covington
Jacaranda Hall (JD) 4503
Student Learning Outcomes
Students who successfully complete the Bachelor of Science program in Computer Science will be able to:
- Apply knowledge of computing and mathematics appropriate to the discipline.
- Analyze a problem and specify the computing requirements appropriate to meet desired needs.
- Apply knowledge of programming concepts, algorithmic principles and data abstraction to design, implement and evaluate the software necessary to solve a specified problem.
- Function effectively on teams to accomplish a common goal.
- Understand professional, ethical, legal, security and social issues and responsibilities.
- Communicate effectively with a range of audiences.
- Analyze the local and global impact of computing on individuals, organizations and society.
- Recognize the need for and demonstrate an ability to engage in continuing professional development.
- Use current techniques, skills and software development tools necessary for programming practice.
- Model and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices.
- Apply software engineering principles and practices in the construction of complex software systems.