The UPLB 2018 BSCS CURRICULUM
The UPLB 2018 BSCS CURRICULUM
The UPLB 2018 BSCS CURRICULUM
ADMISSION
New freshman students are admitted to the program through the UP College Admission Test. An undergraduate
student of UPLB who wishes to shift to the program must apply in writing to the Office of the College Secretary of the
College of Arts and Sciences. Non-UPLB students wishing to transfer to the program must apply in writing to the
Office of the University Registrar.
To be considered for admission, a shiftee/transferee must have completed at least 34 academic units, which include
algebra and trigonometry. Moreover, he or she must have a general weighted average (GWA) of 2.00 or better in all
academic units earned.
THE 2018 BSCS CURRICULUM
UNDERGRADUATE COURSES
CMSC 2 Introduction to the Internet (3 units). Tools and services of the Internet, Internet protocols, search
engines, file transfer protocol (FTP), email, list servers and hypertext markup language (HTML)
programming (1,2). Prerequisite: None.
CMSC 11 Introduction to Computer Science (3 units). Introduction to the major areas of computer science;
software systems and methodology; computer theory; computer organization and architecture. Students
learn to write programs using high-level block-structured programming language (1,2).
Prerequisite: MATH 11 or MATH 17
CMSC 12 Foundations of Computer Science (3 units). An overview of the major areas of computer science.
(1,2,M). Prerequisite: None.
CMSC 21 Fundamentals of Programming (3 units). Introduction to computer programming using a procedural
high-level language. Program design, testing and debugging. (1,2,M) Prerequisite: CMSC 12.
CMSC 22 Object-Oriented Programming (3 units) Objects, design and implementation of object-oriented
programs (1,2) Prerequisite: CMSC 12.
CMSC 23 Mobile Computing (3 units). Methods and techniques for developing mobile applications. (1,2)
Prerequisite: CMSC 22.
CMSC 56 Discrete Mathematical Structures in Computer Science I (3 units). Principles of logic, set theory,
relations and functions, Boolean algebra and linear algebra. (1,2) Prerequisite: None.
CMSC 57 Discrete Mathematical Structures in Computer Science II (3 units). Principles of combinatorics,
probability, algebraic systems and graph theory. (2,M) Prerequisite: CMSC 56.
CMSC 100 Web Programming (3 units). Design and implementation of web applications (1,2) Prerequisite: CMSC
22.
CMSC 123 Data Structures (3 units). Abstract data types and implementation; lists, stacks, queues, trees, mappings,
sets and graphs, searching and sorting techniques; dynamic storage management. (1,2) Prerequisites:
CMSC 21 & CMSC 57 or COI.
CMSC 124 Design and Implementation of Programming Languages (3 units). 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; abstraction mechanisms; sequence
and data control; run time considerations. (1) Prerequisite: CMSC 123 or COI.
CMSC 125 Operating Systems (3 units). Processor management, memory management, file and disk management,
resource management, concurrent processes, networks and distributed systems. (1) Prerequisite: CMSC
123 or COI.
CMSC 127 File Processing and Database Systems (3 units). 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.
(1,2) Prerequisite: CMSC 22 or COI .
CMSC 128 Introduction to Software Engineering (3 units). Software life cycle from the requirement specification
and design phases through the construction of actual software; topics include planning a software
project, cost estimation, software design, implementation and software maintenance (2) Prerequisite:
CMSC 123 or COI.
CMSC 129 Principles of Compiler Design (3 units). Fundamental concepts in the design and implementation of
compilers: lexical analysis, syntax analysis, intermediate code generation, code generation and
optimization. (Elective, 2) Prerequisite: CMSC 124.
CMSC 130 Logic Design and Digital Computer Circuits (3 units). Data representation and computer arithmetic;
logic functions and equations; description, analysis and design of combinatorial and sequential circuits;
functional properties of digital integrated circuits. (1) Prerequisite: CMSC 57.
CMSC 131 Introduction to Computer Organization and Machine-Level Programming (3 units). An introduction
to computer organization and interfaces between hardware and software; microcomputer systems; basic
compiler organization, interfacing, interrupt mechanisms; assembly language programming; Machine
vs. Assembly vs. High-level language, data structure representation, program control implementations,
subroutines, parameter passing, recursion, direct video graphics, serial port communications. (2)
Prerequisite: CMSC 21 or COI.
CMSC 132 Computer Architecture (3 units). 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. (1) Prerequisite:
CMSC 131.
CMSC 137 Data Communications and Networking (3 units). Basic principles of data communications; design
issues and protocols in the layers of data network; networks for various applications. (2) Prerequisite:
CMSC 125.
CMSC 141 Automata and Language Theory (3 units). Finite automata and regular languages; push-down
automata and context-free languages. Turing machines and enumerable sets: linear-bounded automata
and context free languages, compatibility and the halting problem; undecidable problems; recursive and
recursively-enumerable languages and computational complexity. (1,2) Prerequisite: CMSC 123 or COI.
CMSC 142 Design and Analysis of Algorithms (3 units). Algorithm design techniques; use of data structures,
divide and conquer, dynamic, programming, greedy techniques, local and global search, complexity
analysis of algorithms, asymptotic analysis, worst case and average case, recurrences, lower bounds.
NP-completeness. (1,2) Prerequisite CMSC 123 or COI.
CMSC 150 Numerical and Symbolic Computation (3 units). Computational problem solving; sources of errors in
computation; iterative approximation methods and symbolic algebra; mathematical software libraries
and symbolic manipulation packages. (1) Prerequisite: CMSC 21.
CMSC 161 Interactive Computer Graphics (3 units). 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. Students write their 3D rendering engine. (Elective, 2) Prerequisite: CMSC 123 or COI.
CMSC 165 Digital Image Processing (3 units). Methods for acquiring, creating, manipulating, enhancing and
analyzing digital images. (Elective,1) Prerequisite: CMSC 123 or COI.
CMSC 170 Introduction to Artificial Intelligence (3 units). Basic principles and applications of artificial
intelligence: knowledge representation, natural language processing, pattern recognition and expert
systems. (1) Prerequisite: CMSC 123.
CMSC 172 Robot Modeling (3 units). Robotics manipulators and their characteristics; conversion from joint space
to real world coordinates; inverse kinematics; workspace analysis; differential motion. (Elective,2)
Prerequisite: CMSC 123.
CMSC 173 Human-Computer Interaction (3 units). Theory, design methodologies, and programming practices in
Human-Computer Interaction. (1,2) Prerequisites: CMSC 123 and STAT 101.
CMSC 180 Introduction to Parallel Computing (3 units) Parallel computational models, machine architectures,
performance models, algorithms, and programming. (2) Prerequisite: CMSC 132.
CMSC 190 Special Problem (3 units) To be enrolled twice; once as one-unit course to prepare for a proposal, then
as a two-unit course to implement the proposal. (1,2,S) Prerequisite: COI.
CMSC 191 Special Topics (3 units). (Elective,1,2) Prerequisite: CMSC 123
CMSC 198 Practicum (3 units). (M) Prerequisite: COI.
CMSC 199 Undergraduate Seminar (1 unit). (1,2) Prerequisite: COI.
CMSC 200 Undergraduate Thesis (6 units). (1,2,S) Prerequisite: COI.
FLOWCHART OF THE 2018 BS COMPUTER SCIENCE CURRICULUM