Computer Science, B.S.
This degree is designed to prepare graduates for a variety of professional careers in the computer field. The curriculum is designed to provide a balance between the theoretical and practical aspects of computer science. Extensive laboratory time is required for these courses, and design and analysis experiences are emphasized.
Program Educational Objectives
After graduation and engaging in the field of Computer Science for a few years, our graduates will have:
- Made significant contributions to California’s high technology workforce.
- Helped further the state’s economic growth by developing innovative ideas, and translating them into commercial products that benefit society.
- Functioned effectively as a team member and/or leader in multidisciplinary and multicultural environments.
- Recognized the societal and global context of their work and understood professional and ethical responsibilities.
- Continued the pursuit of lifelong learning through such activities as graduate school, distance education, professional training and membership in professional societies and been able to adapt to new engineering tools.
Student Outcomes
- Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
- Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
- Communicate effectively in a variety of professional contexts.
- Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
- Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
- Apply computer science theory and software development fundamentals to produce computing-based solutions.
Major Declaration
Freshmen admission to engineering majors is to a ‘pre-major’ status (i.e., Pre-Computer Science). Continuation in the major will be subject to meeting specific lower division course and GPA requirements at CSULB that indicate the student’s ability to succeed and complete the major. Transfer applicants and CSULB students seeking admission into Computer Science must also meet similar major specific requirements. To become fully admitted into the Computer Science major, all prospective students (i.e., pre-majors, undeclared, major changes) must have a minimum cumulative 2.5 GPA and complete the following lower-division courses with a minimum grade of “C” prior to earning 60 units:
Core Lower-Division Major Requirements:
- MATH 122 - Calculus I (4 units)
- MATH 123 - Calculus II (4 units)
- PHYS 151 - Mechanics and Heat (4 units)
General Education Foundations Courses:
- Written and Oral Communication
Degree Progress
First-Time Engineering freshmen pre-major and transfer students must complete the Engineering Degree Progress Requirements within their first academic year. At the end of the second full semester, typically Spring, students who have not met the requirements must either declare another major or meet with an Academic Advisor from the Engineering Student Success Center (ESSC) to determine if the student’s performance in the courses merits an additional Semester to complete. Such students must submit a Degree Progress Extension Petition with the College of Engineering Dean’s Office.
First-Time Freshmen:
A grade of “C” or better must be achieved within one calendar year.
- MATH 122 - Calculus I (4 units)
Transfer Students:
A grade of “C” or better must be achieved within one calendar year.
- MATH 123 - Calculus II (4 units)
- PHYS 151 - Mechanics and Heat (4 units)
All Engineering Majors
All Engineering majors are expected to make satisfactory degree progress by completing attempted units, limiting repeats/withdrawals, satisfying critical benchmark courses in a timely manner, and maintaining minimum 2.0 Overall and Major GPAs. Degree Progress is monitored for all undergraduate students each semester. Petitions to attempt a course for the third time are only considered in extenuating circumstances. Students who are not making satisfactory degree progress as described above will have a hold on their registration and are required to meet with their advisor to develop an academic plan. Failure to satisfy the academic progress requirements will result in the student being disqualified from the major.
Requirements
A minimum of 120 units is required for the Bachelor’s Degree. A grade of “C” or better must be achieved in all of the courses required for the major.
Lower Division:
Take all of the following courses:
- CECS 105 - Introduction to Computer Engineering and Computer Science (1 unit)
- CECS 174 - Introduction to Programming and Problem Solving (3 units)
- CECS 225 - Digital Logic and Assembly Programming (3 units)
- CECS 228 - Discrete Structures with Computing Applications (3 units)
- CECS 229 - Discrete Structures with Computing Applications II (3 units)
- CECS 274 - Data Structures (3 units)
- CECS 277 - Object Oriented Application Development (3 units)
- ENGR 101 - Introduction to the Engineering Profession (1 unit)
- ENGR 102 - Academic Success Skills (1 unit)
- MATH 122 - Calculus I (4 units)
- MATH 123 - Calculus II (4 units)
Approved Science Electives (minimum of 8 units)
Take a minimum of 8 units of approved science-electives to include a two-semester science sequence chosen from the following groups of courses:
- PHYS 151 - Mechanics and Heat (4 units)
- or
- CHEM 111A - General Chemistry (5 units)
Remaining units to be chosen from the following:
- BIOL 200 - General Biology (4 units)
- BIOL 205 - Human Biology (4 units)
- BIOL 207 - Human Physiology (4 units)
Upper Division:
Take all of the following courses:
- CECS 325 - System Programming (3 units)
- CECS 326 - Operating Systems (3 units)
- CECS 327 - Introduction to Networks and Distributed Computing (3 units)
- CECS 328 - Algorithms (3 units)
- CECS 329 - Concepts of Computer Science Theory (3 units)
- CECS 341 - Computer Architecture and Organization (3 units)
- CECS 342 - Principles of Programming Languages (3 units)
- CECS 343 - Introduction to Software Engineering (3 units)
- CECS 378 - Introduction to Computer Security Principles (3 units)
- ENGR 350 - Computers, Ethics and Society (3 units)
- CECS 491A - Computer Science Senior Project I (3 units)
- CECS 491B - Computer Science Senior Project II (3 units)
Take one course from the following:
- ENGR 361 - Scientific Research Communication 3 units
- ENGR 390 - Information and Communication Technology for Sustainability (3 units)
Take one course from the following:
- CECS 381 - Stochastic Computing (3 units)
- E E 381 - Probability and Statistics with Applications to Computing (3 units)