List of Undergraduate Computer Science Courses

This page lists the undergraduate computer science courses.

Course CodeTitle (Units), Description (Semester Offered) and Prerequisites
CMSC 190Special 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 198Practicum (3). (S), COI.
CMSC 199Undergraduate Seminar (1). (1, 2), COI.
CMSC 200Undergraduate Thesis (1-6). (1, 2, S), COI.

CMSC 1: Introduction to Personal Computing

Catalog Course Description

NumberCMSC 1
TitleIntroduction to Personal Computing
DescriptionBasic use and applications of personal computers
PrerequisitesNone
Semester offeredFirst and Second
Credit3
Hours/week5 (2 lecture, 3 laboratory)

Objectives

At the end of the course, the student should be able to:

  • Discuss the nature and application of computers;
  • Use application software efficiently;
  • Design and implement simple programs; and
  • Develop programs in high-level language.

CMSC 2: Introduction to the Internet

Catalog Course Description

NumberCMSC 2
TitleIntroduction to the Internet
DescriptionTools and services of the Internet, Internet protocols, search engines, file transfer protocol (FTP), email, listservers and HTML programming
PrerequisitesNone
Semester offeredFirst and Second
Credit3
Hours/week5 (2 lecture, 3 laboratory)

Objectives

At the end of the course, the student should be able to:

  • Search information from the world wide web;
  • Communicate with other users in the Internet using email, chat, listservers and electronic bulletin boards;
  • Use the different Internet access tools; and
  • Create a web page using HTML.

CMSC 11: Introduction to Computer Science

Catalog Course Description

NumberCMSC 11
TitleIntroduction to Computer Science
DescriptionIntroduction to the major areas of computer science; software systems and methodology; computer theory; computer organization and architecture.
PrerequisitesMATH 11 or MATH 17
Semester offeredFirst and Second
Credit3
Hours/week5 (2 lecture, 3 laboratory)

Objectives

At the end of the course, the student should be able to:

  • Design algorithms for a variety of problems and implement these as well-structured programs in Pascal, C, and/or Perl language(s);
  • Explain the theoretical and practical limitations of computers;
  • Describe the structure and organization of computers;
  • Explain the importance of systems software in the execution of programs; and
  • Discuss major computer applications and the impact of computers on society.

CMSC 21: Fundamentals of Programming

Catalog Course Description

NumberCMSC 21
TitleFundamentals of Programming
DescriptionExpansion 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.
PrerequisitesCMSC 11
Semester offeredFirst and Second
Credit3
Hours/week5 (2 lecture, 3 laboratory)

Objectives

At the end of the course, the student should be able to:

  • Write correct and well-structured programs proficiently in Pascal and C programming languages;
  • Use files and pointers in programming;
  • Design and implement recursive algorithms; and
  • Prove program correctness.

CMSC 22: Object-Oriented Programming

Catalog Course Description

NumberCMSC 22
TitleObject-Oriented Programming
DescriptionProgramming using an object-oriented language
PrerequisitesCMSC 11
Semester offeredFirst and Second
Credit3
Hours/week5 (2 lecture, 3 laboratory)

Objectives

At the end of the course, the student should be able to:

  • Write programs using an object-oriented language; and
  • Solve some real problems whose solutions involve objects.

CMSC 55: Discrete Mathematical Structures in Computer Science

Catalog Course Description

NumberCMSC 55
TitleDiscrete Mathematical Structures in Computer Science
DescriptionPrinciples of logic, set theory, relations and functions, Boolean algebra and algebra, combinatorics, probability, algebraic systems, and graph theory.
PrerequisitesMATH 17
Credit5
Hours/week5 (lecture)
StatusDiscontinued
Replaced byCMSC 56 and CMSC 57

Note

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.

CMSC 56: Discrete Mathematical Structures in Computer Science I

Catalog Course Description

NumberCMSC 56
TitleDiscrete Mathematical Structures in Computer Science I
DescriptionPrinciples of logic, set theory, relations and functions, Boolean algebra and algebra.
PrerequisitesMATH 17
Semester offeredSecond
Credit3
Hours/week5 (2 lecture, 3 laboratory)

Objectives

At the end of the course, the student should be able to:

  • Define the syntax and semantics of propositional and predicate logic;
  • Translate statements from a natural language into its symbolic structures in logic;
  • Analyze sentences in logic and make inferences that are correct and logically sound;
  • Prove the different set properties;
  • Use the pigeonhole principle and induction principle in proving statements about certain sets;
  • Apply the notion of relations on some finite structures, like strings and databases;
  • Analyze algorithms using the concept of functions and function complexity;
  • Design simple logic circuits for a given switching function; and
  • Explain how basic comcepts in linear algebra can be applied in computer science.

CMSC 57: Discrete Mathematical Structures in Computer Science II

Catalog Course Description

NumberCMSC 57
TitleDiscrete Mathematical Structures in Computer Science II
DescriptionPrinciples of combinatorics, probability, algebraic systems and graph theory.
PrerequisitesCMSC 56
Semester offeredFirst
Credit3
Hours/week5 (2 lecture, 3 laboratory)

Objectives

At the end of the course, the student should be able to:

  • Apply the principles and techniques in combinatorics necessary to solve a given problem in counting;
  • Define the sample sapce, sample points, and event space of a given random experiment;
  • Apply the theory of probability in order to compute the probability of a given event for a given random experiment;
  • Explain how the principles of algebraic systems are applied in coding theory; and
  • Apply the principles and techniques in graph theory that are appropriate for a given problem.

CMSC 100: Web Programming

Catalog Course Description

NumberCMSC 100
TitleWeb Programming
DescriptionDeveloping web applications using web technologies such as CGI scripts, PHP, ASP, JavaScripts, JavaApplets, XHTML, Ajax and CSS.
PrerequisitesCMSC 2 and CMSC 22
Semester offeredFirst and Second
Credit3
Hours/week5 (2 lecture, 3 laboratory)

Objective

At the end of the course, the student should be able to enhance web pages with CSS, JavaApplets, JavaScripts, and web server preprocessor scripts.

CMSC 123: Data Structures

Catalog Course Description

NumberCMSC 123
TitleData Structures
DescriptionAbstract 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 offeredFirst and Second
Credit3
Hours/week5 (2 lecture, 3 laboratory)

Objectives

At the end of the course, the student should be able to:

  • Identify data structures and algorithms appropriate for a given problem;
  • Design alternative implementations of a data structure;
  • Construct correct and efficient algorithms; and
  • Analyze the running time of programs.

CMSC 124: Design and Implementation of Programming Languages

Catalog Course Description

NumberCMSC 124
TitleDesign and Implementation of Programming Languages
DescriptionStudy 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.
PrerequisitesCMSC 123 or COI
Semester offeredSecond
Credit3
Hours/week5 (2 lecture, 3 laboratory)

Objectives

At the end of the course, the student should be able to:

  • Compare the run time behavior of programs written in different languages;
  • Evaluate the structure of programming language specification, analysis and implementation
  • Analyze and solve programs related to lexical analysis, parsing and translation problems; and
  • Write an interpreter for a simple programming language.

CMSC 125: Operating Systems

Catalog Course Description

NumberCMSC 125
TitleOperating Systems
DescriptionProcessor management, memory management, file and disk management, resource management, concurrent processes, networks and distributed systems.
PrerequisitesCMSC 123 or COI
Semester offeredSecond
Credit3
Hours/week5 (2 lecture, 3 laboratory)

Objectives

At the end of the course, the student should be able to:

  • Describe the purpose and functions of an operating system;
  • Design and implement programs to perform simple operating system tasks; and
  • Evaluate the performance of different operating system algorithms.

Second Semester AY 2008-2009

Course Webpage

CMSC 127: File Processing and Database Systems

Catalog Course Description

NumberCMSC 127
TitleFile Processing and Database Systems
DescriptionData 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.
PrerequisitesCMSC 123 or COI
Semester offeredFirst
Credit3
Hours/week5 (2 lecture, 3 laboratory)

Objectives

At the end of the course, the student should be able to:

  • Create, process and maintain sequential, indexed sequential and direct-access files;
  • Process and run application programs on a database management system; and
  • Design, implement and maintain a single database for a simple environment.

CMSC 128: Introduction to Software Engineering

Catalog Course Description

NumberCMSC 128
TitleIntroduction to Software Engineering
DescriptionPrinciples and methods for the design, implementation, validation, evaluation and maintenance of software systems.
PrerequisitesCMSC 123 or COI
Semester offeredSecond
Credit3
Hours/week5 (2 lecture, 3 laboratory)

Objectives

At the end of the course, the student should be able to:

  • Discuss the process for developing large software;
  • Analyze and model a particular system;
  • Develop alternative solutions for the system; and
  • Implement, test and validate a systems design.

Second Semester AY 2007-2008


Course Webpage

Lecture: Joseph Anthony C. Hermocilla
Laboratory: Carla Bacani, Mini May Medel

CMSC 129: Principles of Compiler Design

Catalog Course Description

NumberCMSC 129
TitlePrinciples of Compiler Design
DescriptionFundamental concepts in the design and implementation of compilers: lexical analysis, syntax analysis, intermediate code generation, code generation and optimization.
PrerequisitesCMSC 124
Semester offeredSecond
Credit3
Hours/week5 (2 lecture, 3 laboratory)

Objectives

At the end of the course, the student should be able to:

  • Apply the principles in the theory of computation to the various stages in the design of compilers;
  • Explain the stages involved in the translation process;
  • Analyze problems related to the stages in the translation process;
  • Design a compiler for a simple programming language; and
  • Implement a compiler based on its design.

CMSC 130: Logic Design and Digital Computer Circuits

Catalog Course Description

NumberCMSC 130
TitleLogic Design and Digital Computer Circuits
DescriptionData representation and computer arithmetic; logic functions and equations; description, analysis and design of combinatorial and sequential circuits; functional properties of digital integrated circuits.
PrerequisitesCMSC 11
Semester offeredSecond
Credit3
Hours/week5 (2 lecture, 3 laboratory)

Objectives

At the end of the course, the student should be able to:

  • Represent data in various formats and perform computer arithmetic on them;
  • Demonstrate knowledge and understanding of logic functions, logic diagrams and Boolean algebra;
  • Describe and analyze digital logic circuits; and
  • Demonstrate skill in implementing logic functions.

CMSC 131: Introduction to Computer Organization and Machine-Level Programming

Catalog Course Description

NumberCMSC 131
TitleIntroduction to Computer Organization and Machine-Level Programming
DescriptionAn 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.
PrerequisitesCMSC 130
Semester offeredFirst
Credit3
Hours/week5 (2 lecture, 3 laboratory)

Objectives

At the end of the course, the student should be able to:

  • Describe the basic organization of microprocessor-based systems;
  • Develop correct, efficient and easily maintainable programs written in low-level language; and
  • Understand the various interaction between hardware and software in working systems.

CMSC 132: Computer Architecture

Catalog Course Description

NumberCMSC 132
TitleComputer Architecture
DescriptionAdvanced 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.
PrerequisitesCMSC 131
Semester offeredFirst
Credit3
Hours/week5 (2 lecture, 3 laboratory)

Objectives

At the end of the course, the student should be able to:

  • Describe the hardware organization of computer systems;
  • Describe the internal operation of processors; and
  • Design simple computer systems.

CMSC 137: Data Communications and Networking

Catalog Course Description

NumberCMSC 137
TitleData Communications and Networking
DescriptionBasic principles of data communications; design issues and protocols in the layers of data network; networks for various applications.
PrerequisitesCMSC 125 and CMSC 132
Semester offeredFirst
Credit3
Hours/week5 (2 lecture, 3 laboratory)

Objectives

At the end of the course, the student should be able to:

  • Identify the components of the International Standards Organization(ISO)/Open Systems Interconnect(OSI) model;
  • Design control algorithms for local-area networks; and
  • Implement the high components of the ISO/OSI reference model in a high level programming language.

First Semester AY 2007-2008


CMSC 137: Data Communications and Networking

Lecturer: Christopher Jon S. Belviz
Laboratory: Joseph Anthony C. Hermocilla, Raymond Nunez

  • Final Grades now available
  • Lab Standing for JACH's students posted.
  • Grades, when available, will be posted here.

First Semester AY 2008-2009

Course Webpage

CMSC 140: Advance Programming

Catalog Course Description

NumberCMSC 140
TitleAdvance Programming
DescriptionProof of correctness of algorithms and introduction to adance programming techniques.
PrerequisitesCMSC 21 and CMSC 56
Semester offeredFirst
Credit3
Hours/week5 (2 lecture, 3 laboratory)

Objectives

At the end of the course, the student should be able to:

  • Discuss the concept of proof of correctness of algorithms;
  • Apply the proof of correctness concept to iterative and recursive algorithms;
  • Discuss the more complex and up to date implementation of the Priority Queue abstract data type; and,
  • Implement the Min-Max Heap and Deap representations of the Priority Queue abstract data type.

CMSC 141: Automata and Language Theory

Catalog Course Description

NumberCMSC 141
TitleAutomata and Language Theory
DescriptionAbstract machines and languages; finite automata, regular expressions, pushdown automata, context free languages, Turing machines and recursively enumerable languages.
PrerequisitesCMSC 124
Semester offeredFirst and Second
Credit3
Hours/week3 hrs class

CMSC 142: Design and Analysis of Algorithms

Catalog Course Description

NumberCMSC 142
TitleDesign and Analysis of Algorithms
DescriptionAlgorithm analysis techniques, algorithm design techniques, applications of these techniques.
PrerequisitesCMSC 123
Semester offeredFirst and Second
Credit3
Hours/week3 hrs class

Objectives

At the end of the course, the student should be able to:

  • Design and analyze algorithms for a variety of problems.

CMSC 150: Numerical and Symbolic Computation

Catalog Course Description

NumberCMSC 150
TitleNumerical and Symbolic Computation
DescriptionComputational problem solving; sources of errors in computation; iterative approximation methods and symbolic algebra; mathematical software libraries and symbolic manipulation packages.
PrerequisitesCMSC 123 and MATH 28 or MATH 38
Semester offeredFirst
Credit3
Hours/week5 (2 lecture, 3 laboratory)

Objectives

At the end of the course, the student should be able to:

  • Explain the process of mathematical problem solving;
  • Explain the fundamental differences between numerical and symbolic computation;
  • Recognize sources of errors in numerical computations;
  • Build programs from numerical or symbolic library routines to solve realistic application problems; and,
  • Write reports on problem solving activities.

CMSC 161: Interactive Computer Graphics

Catalog Course Description

CMSC 161 icon

NumberCMSC 161
TitleInteractive Computer Graphics
DescriptionGraphics 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.
PrerequisitesCMSC 123 and MATH 120
Semester offeredSecond
Credit3
Hours/week5 (2 lecture, 3 laboratory)

Objectives

At the end of the course, the student should be able to:

  • Describe the functions and operations of display hardware and associated devices;
  • Implement algorithms for drawing 2D primitives;
  • Describe and implement geometric transformations of 2D and 3D objects;
  • Understand parametric representations of surfaces and patches;
  • Implement projections and hidden-surface removal algorithms;
  • Apply illumination and shading concepts to generate photo-realistic images; and,
  • Discuss ray tracing and animation techniques.

CMSC 170: Introduction to Artificial Intelligence

Catalog Course Description

NumberCMSC 170
TitleIntroduction to Artificial Intelligence
DescriptionBasic principles of Artificial Intelligence; knowledge representation; natural language processing; pattern recognition; and, expert systems.
PrerequisiteCMSC 124
Semester offeredFirst
Credit3
Number of Hours5 (2 lecture, 3 laboratory)

Objectives

At the end of the course, the student should be able to:

  • Explain the basic principles of artificial intelligence;
  • Apply logic and structured concepts in knowledge representation;
  • Discuss the applications of artificial intelligence;
  • Implement heuristic search algorithms;
  • Design a natural language processor; and
  • Implement a simple expert system.

CMSC 172: Robot Modeling

Catalog Course Description

NumberCMSC 172
TitleRobot Modeling
DescriptionRobotics manipulators and their characteristics; conversion from joint space to real world coordinates; inverse kinematics; workspace analysis; differential motion.
PrerequisiteCMSC 161
Semester offeredSecond
Credit3
Number of Hours5 (2 lecture, 3 laboratory

Objectives

At the end of the course, the student should be able to:

  • Identify popular robot geometries and their workspaces;
  • Perform kinematics on a particular robotics architecture;
  • Discuss the significance of continous path motions;
  • Design path planning algorithms; and
  • Design algorithms for navigation and sensing problems.

CMSC 180: Introduction to Parallel Computing

Catalog Course Description

NumberCMSC 180
TitleIntroduction to Parallel Computing
DescriptionParallel computational models, machine architectures, performance models, algorithms, and programming.
PrerequisiteCMSC 132
Semester offeredFirst
Credit3
Number of Hours5 (2 lecture, 3 laboratory)

Objectives

At the end of the course, the student should be able to:

  • Explain the limitations of serial computers;
  • Classify parallel computers;
  • Measure parallel performance; and
  • Implement simple parallel programs.

CMSC 191: Special Topic

Catalog Course Description

NumberCMSC 191
TitleSpecial Topic
DescriptionSpecial Topics in Computer Science
Credit3
Number of Hours3 (lecture)

Special topic courses offered currently and in the past are listed in the Special Topics section.