This page lists the undergraduate computer science courses.
| Course Code | Title (Units), Description (Semester Offered) and Prerequisites |
| CMSC 190 | Special Problem (1-3). To be enrolled twice; once as a one-unit course to prepare a proposal, then as a two-unit course to implement the proposal. (1, 2, S), COI. |
| CMSC 198 | Practicum (3). (S), COI. |
| CMSC 199 | Undergraduate Seminar (1). (1, 2), COI. |
| CMSC 200 | Undergraduate Thesis (1-6). (1, 2, S), COI. |
| Number | CMSC 1 |
| Title | Introduction to Personal Computing |
| Description | Basic use and applications of personal computers |
| Prerequisites | None |
| Semester offered | First and Second |
| Credit | 3 |
| Hours/week | 5 (2 lecture, 3 laboratory) |
At the end of the course, the student should be able to:
| Number | CMSC 2 |
| Title | Introduction to the Internet |
| Description | Tools and services of the Internet, Internet protocols, search engines, file transfer protocol (FTP), email, listservers and HTML programming |
| Prerequisites | None |
| Semester offered | First and Second |
| Credit | 3 |
| Hours/week | 5 (2 lecture, 3 laboratory) |
At the end of the course, the student should be able to:
| Number | CMSC 11 |
| Title | Introduction to Computer Science |
| Description | Introduction to the major areas of computer science; software systems and methodology; computer theory; computer organization and architecture. |
| Prerequisites | MATH 11 or MATH 17 |
| Semester offered | First and Second |
| Credit | 3 |
| Hours/week | 5 (2 lecture, 3 laboratory) |
At the end of the course, the student should be able to:
| Number | CMSC 21 |
| Title | Fundamentals of Programming |
| Description | Expansion and development of materials introduced in CMSC 11; processing files and linked-lists; programming in the C language; recursion; systematic program development; top-down design and program verification. |
| Prerequisites | CMSC 11 |
| Semester offered | First and Second |
| Credit | 3 |
| Hours/week | 5 (2 lecture, 3 laboratory) |
At the end of the course, the student should be able to:
| Number | CMSC 22 |
| Title | Object-Oriented Programming |
| Description | Programming using an object-oriented language |
| Prerequisites | CMSC 11 |
| Semester offered | First and Second |
| Credit | 3 |
| Hours/week | 5 (2 lecture, 3 laboratory) |
At the end of the course, the student should be able to:
| Number | CMSC 55 |
| Title | Discrete Mathematical Structures in Computer Science |
| Description | Principles of logic, set theory, relations and functions, Boolean algebra and algebra, combinatorics, probability, algebraic systems, and graph theory. |
| Prerequisites | MATH 17 |
| Credit | 5 |
| Hours/week | 5 (lecture) |
| Status | Discontinued |
| Replaced by | CMSC 56 and CMSC 57 |
This course was only for students who took the 1996 B.S. Computer Science or earlier curricula. For students taking the current curriculum, this course is now replaced by CMSC 56 and CMSC 57.
| Number | CMSC 56 |
| Title | Discrete Mathematical Structures in Computer Science I |
| Description | Principles of logic, set theory, relations and functions, Boolean algebra and algebra. |
| Prerequisites | MATH 17 |
| Semester offered | Second |
| Credit | 3 |
| Hours/week | 5 (2 lecture, 3 laboratory) |
At the end of the course, the student should be able to:
| Number | CMSC 57 |
| Title | Discrete Mathematical Structures in Computer Science II |
| Description | Principles of combinatorics, probability, algebraic systems and graph theory. |
| Prerequisites | CMSC 56 |
| Semester offered | First |
| Credit | 3 |
| Hours/week | 5 (2 lecture, 3 laboratory) |
At the end of the course, the student should be able to:
| Number | CMSC 100 |
| Title | Web Programming |
| Description | Developing web applications using web technologies such as CGI scripts, PHP, ASP, JavaScripts, JavaApplets, XHTML, Ajax and CSS. |
| Prerequisites | CMSC 2 and CMSC 22 |
| Semester offered | First and Second |
| Credit | 3 |
| Hours/week | 5 (2 lecture, 3 laboratory) |
At the end of the course, the student should be able to enhance web pages with CSS, JavaApplets, JavaScripts, and web server preprocessor scripts.
| Number | CMSC 123 |
| Title | Data Structures |
| Description | Abstract data types and implementation of data structures; arrays, stacks, queues, linked lists, mappings, trees, sets and graphs; internal and external searching and sorting; dynamic storage management. |
| Prerequisites | (CMSC 21 and CMSC 55) or COI |
| Semester offered | First and Second |
| Credit | 3 |
| Hours/week | 5 (2 lecture, 3 laboratory) |
At the end of the course, the student should be able to:
| Number | CMSC 124 |
| Title | Design and Implementation of Programming Languages |
| Description | Study of the fundamental concepts in the design and implementation of current high-level programming languages; syntax and translation; language definition structures; elementary and structured data types; astraction mechanisms; sequence and data control; run time considerations. |
| Prerequisites | CMSC 123 or COI |
| Semester offered | Second |
| Credit | 3 |
| Hours/week | 5 (2 lecture, 3 laboratory) |
At the end of the course, the student should be able to:
| Number | CMSC 125 |
| Title | Operating Systems |
| Description | Processor management, memory management, file and disk management, resource management, concurrent processes, networks and distributed systems. |
| Prerequisites | CMSC 123 or COI |
| Semester offered | Second |
| Credit | 3 |
| Hours/week | 5 (2 lecture, 3 laboratory) |
At the end of the course, the student should be able to:
| Number | CMSC 127 |
| Title | File Processing and Database Systems |
| Description | Data models: relational, network and hierarchical models; Database management system, data definition and manipulation language; Data security, integrity, synchronization, protection and recovery; Principal database systems and query languages. |
| Prerequisites | CMSC 123 or COI |
| Semester offered | First |
| Credit | 3 |
| Hours/week | 5 (2 lecture, 3 laboratory) |
At the end of the course, the student should be able to:
| Number | CMSC 128 |
| Title | Introduction to Software Engineering |
| Description | Principles and methods for the design, implementation, validation, evaluation and maintenance of software systems. |
| Prerequisites | CMSC 123 or COI |
| Semester offered | Second |
| Credit | 3 |
| Hours/week | 5 (2 lecture, 3 laboratory) |
At the end of the course, the student should be able to:
Course Webpage
Lecture: Joseph Anthony C. Hermocilla
Laboratory: Carla Bacani, Mini May Medel
| Number | CMSC 129 |
| Title | Principles of Compiler Design |
| Description | Fundamental concepts in the design and implementation of compilers: lexical analysis, syntax analysis, intermediate code generation, code generation and optimization. |
| Prerequisites | CMSC 124 |
| Semester offered | Second |
| Credit | 3 |
| Hours/week | 5 (2 lecture, 3 laboratory) |
At the end of the course, the student should be able to:
| Number | CMSC 130 |
| Title | Logic Design and Digital Computer Circuits |
| Description | Data representation and computer arithmetic; logic functions and equations; description, analysis and design of combinatorial and sequential circuits; functional properties of digital integrated circuits. |
| Prerequisites | CMSC 11 |
| Semester offered | Second |
| Credit | 3 |
| Hours/week | 5 (2 lecture, 3 laboratory) |
At the end of the course, the student should be able to:
| Number | CMSC 131 |
| Title | Introduction to Computer Organization and Machine-Level Programming |
| Description | An introduction to computer organization and interfaces between hardware and software; Microcomputer systems: basic computer organization, memory addressing, CPU-memory-I/O relationships, interfacing, interrupt mechanisms; Assembly language: data structure repreentations, program control implementations, subroutines, parameter passing, recursion, direct-video graphics, serial port communications. |
| Prerequisites | CMSC 130 |
| Semester offered | First |
| Credit | 3 |
| Hours/week | 5 (2 lecture, 3 laboratory) |
At the end of the course, the student should be able to:
| Number | CMSC 132 |
| Title | Computer Architecture |
| Description | Advanced topics in computer systems organization from a designer's point of view: multiprocessing, pipelining, array processors, associative processors; Microprogramming, techniques for increasing primary memory bandwidths; Modularization, interleaving, access path widening, cache and associative memories; Virtual memory; Bus structures; Multiprogramming and time sharing organizations; Network principles and protocols; Distributed resources. |
| Prerequisites | CMSC 131 |
| Semester offered | First |
| Credit | 3 |
| Hours/week | 5 (2 lecture, 3 laboratory) |
At the end of the course, the student should be able to:
| Number | CMSC 137 |
| Title | Data Communications and Networking |
| Description | Basic principles of data communications; design issues and protocols in the layers of data network; networks for various applications. |
| Prerequisites | CMSC 125 and CMSC 132 |
| Semester offered | First |
| Credit | 3 |
| Hours/week | 5 (2 lecture, 3 laboratory) |
At the end of the course, the student should be able to:
CMSC 137: Data Communications and Networking
Lecturer: Christopher Jon S. Belviz
Laboratory: Joseph Anthony C. Hermocilla, Raymond Nunez
| Number | CMSC 140 |
| Title | Advance Programming |
| Description | Proof of correctness of algorithms and introduction to adance programming techniques. |
| Prerequisites | CMSC 21 and CMSC 56 |
| Semester offered | First |
| Credit | 3 |
| Hours/week | 5 (2 lecture, 3 laboratory) |
At the end of the course, the student should be able to:
| Number | CMSC 141 |
| Title | Automata and Language Theory |
| Description | Abstract machines and languages; finite automata, regular expressions, pushdown automata, context free languages, Turing machines and recursively enumerable languages. |
| Prerequisites | CMSC 124 |
| Semester offered | First and Second |
| Credit | 3 |
| Hours/week | 3 hrs class |
| Number | CMSC 142 |
| Title | Design and Analysis of Algorithms |
| Description | Algorithm analysis techniques, algorithm design techniques, applications of these techniques. |
| Prerequisites | CMSC 123 |
| Semester offered | First and Second |
| Credit | 3 |
| Hours/week | 3 hrs class |
At the end of the course, the student should be able to:
| Number | CMSC 150 |
| Title | Numerical and Symbolic Computation |
| Description | Computational problem solving; sources of errors in computation; iterative approximation methods and symbolic algebra; mathematical software libraries and symbolic manipulation packages. |
| Prerequisites | CMSC 123 and MATH 28 or MATH 38 |
| Semester offered | First |
| Credit | 3 |
| Hours/week | 5 (2 lecture, 3 laboratory) |
At the end of the course, the student should be able to:

| Number | CMSC 161 |
| Title | Interactive Computer Graphics |
| Description | Graphics systems software and hardware, 2D drawing algorithms, geometrical transformations, surface modeling, 3D viewing, visible surface determination algorithms, reflection and illumination models, shading models for polygons, color theory, ray tracing, animation. |
| Prerequisites | CMSC 123 and MATH 120 |
| Semester offered | Second |
| Credit | 3 |
| Hours/week | 5 (2 lecture, 3 laboratory) |
At the end of the course, the student should be able to:
| Number | CMSC 170 |
| Title | Introduction to Artificial Intelligence |
| Description | Basic principles of Artificial Intelligence; knowledge representation; natural language processing; pattern recognition; and, expert systems. |
| Prerequisite | CMSC 124 |
| Semester offered | First |
| Credit | 3 |
| Number of Hours | 5 (2 lecture, 3 laboratory) |
At the end of the course, the student should be able to:
| Number | CMSC 172 |
| Title | Robot Modeling |
| Description | Robotics manipulators and their characteristics; conversion from joint space to real world coordinates; inverse kinematics; workspace analysis; differential motion. |
| Prerequisite | CMSC 161 |
| Semester offered | Second |
| Credit | 3 |
| Number of Hours | 5 (2 lecture, 3 laboratory |
At the end of the course, the student should be able to:
| Number | CMSC 180 |
| Title | Introduction to Parallel Computing |
| Description | Parallel computational models, machine architectures, performance models, algorithms, and programming. |
| Prerequisite | CMSC 132 |
| Semester offered | First |
| Credit | 3 |
| Number of Hours | 5 (2 lecture, 3 laboratory) |
At the end of the course, the student should be able to:
| Number | CMSC 191 |
| Title | Special Topic |
| Description | Special Topics in Computer Science |
| Credit | 3 |
| Number of Hours | 3 (lecture) |
Special topic courses offered currently and in the past are listed in the Special Topics section.