Undergraduate program

The Department of Computer Science offers one program for undergraduates: the Bachelor of Science in Computer Science (B.Sc. C.S.) program.

Latest revision - 2018

The B.Sc. C.S. curriculum was last revised in 2018 in response to the nation-wide shift to a K-12 education system. With 148 units taken over four years (including one required mid-year term - for internship), the 2018 curriculum takes into account the latest developments and trends in the field of Computer Science, feedback from the industry, new competencies from students produced by the K-12 primary/secondary school system (with particular focus on graduates of the Science, Technology, Engineering and Mathematics (STEM) strand), and recommendations from professional bodies such as the Association of Computing Machinery (through its Curriculum Guidelines for Undergraduate Degree Programs in Computer Science, 2013). 

Curriculum design principle

The 2018 curriculum is designed to be fundamentals-driven, emphasizing core principles and competencies that would enable the students (and eventual graduates) to adapt and learn new skills in an ever-changing technological and professional landscape. As such, very few, if any, of the courses in the curriculum cater to a specific technology (Java, Cisco, etc.) or skill (object-oriented programming, web programming, drone programming, etc.). The students would learn these technologies/skills, but they would do so in the context of these technologies/skills being used in learning more fundamental courses (e.g., object oriented programming through the programming language course, mobile/web programming through the software engineering course), most of which are reinforced with laboratory units to foster learning and experimentation ("learning by doing").


The B.Sc. C.S. degree has no explicit specialization which appears in the diploma or transcript (e.g. Bachelor of Science in Computer Science, Major in Network Technologies). This is partly in observance of the general principle of making the program fundamentals-driven, and partly to encourage the students to take charge of their own learning through electives and additional courses they may take in the University. Nevertheless, the students do end up having a de-facto specialization of sorts, since membership in one of the Department's eight research laboratories/groups is required for taking up CS 198/199/200 (Special Project I/Special Project II/Undergraduate Thesis). The year-long project undertaken by the student under one of the research laboratories, combined with electives and additional courses, serve as the specialization mechanisms of the curriculum.   

B.Sc. C.S. Curriculum Checklist

*****First year***** ___________ ___________
First Semester 19 units Second Semester 17 units
GE (Kas 1) 3 GE (Socsci 1/Socsci 2) 3
GE (Philo 1) 3 CS 12 (Computer Programming II) 3
CS 10 (Introduction to Computing) 3 CS 31 (Discrete Mathematics for CS II) 3
CS 11 (Computer Programming I) 3 Math 22 (Elementary Analysis II) 4
CS 30 (Discrete Mathematics for CS I) 3 Physics 71 (Elementary Physics I) 4
Math 21 (Elementary Analysis I) 4 PE (2)
PE (2)
*****Second year*****
First Semester 18 units Second Semester 17 units
GE (Eng 13) 3 GE (Speech 30) 3
CS 20 (Digital Electronics and Circuits) 3 CS 21 (Computer Organization and Architecture) 4
CS 32 (Data Structures and Algorithms I) 4 CS 33 (Data Structures and Algorithms II) 4
Math 23 (Elementary Analysis III) 4 CS 136 (Elementary Numerical Computing I) 3
Physics 72 (Elementary Physics II) 4 Math 40 (Linear Algebra) 3
PE (2) PE (2)
NSTP (3) NSTP (3)
*****Third year*****
First Semester 20 units Second Semester 17 units
GE (Fil 40) 3 GE (Eng 30) 3
CS 138 (Elementary Numerical Computing II) 3 CS 145 (Computer Networks) 4
CS 140 (Operating Systems) 4 CS 153 (Introduction to Computer Security) 3
CS 150 (Programming Languages) 3 CS 180 (Artificial Intelligence) 3
CS 165 (Database Systems) 4 CS 192 (Software Engineering II) 3
CS 191 (Software Engineering I) 3 CS 194 (Undergraduate Research Seminar) 1
*****MIDYEAR***** 3 units
CS 195 (Practicum) 3
*****Fourth year*****
First Semester 18 units Second Semester 19 units
GE (STS 1/DRMAPS) 3 GE (Arts 1) 3
GE (Free Choice) 3 CS 132 (Introduction to Data Science) 3
CS 133 (Automata Theory and Complexity) 3 CS 155 (Compiler Construction) 3
CS 198 (Special Project I) 3 CS 196 (Seminar on EPIC) 1
Elective (Free Choice) 3 CS 199/200 (Special Project II) 3
Elective (Engg 150) 3 Elective (CS) 3
PI 100 3