Computer Science Minors
The Minors
Students wishing to major in another field while also developing competency in the use of computers are encouraged to choose one of the minors described below.
The Minor in Computer Science
The computer science minor is intended for students who have a general interest in the workings and uses of computers. Minimum requirements for the minor in computer science are:
a. COMP 150 Computer Programming I / 3 units
b. COMP 151 Computer Programming II / 3 units
c. 12 additional units, at least 9 of which are in upper-division courses, excluding COMP 498. One course at most from ELEC
310, 340, 410, and 450 can count toward these 12 units. COMP 300 and ELEC 310 cannot both apply toward the 12 units.
Note: Neither COMP 100 nor COMP 498 may be applied toward the requirements for the minor in computer science.
The Minor in Information Science
The information science minor is intended for students who have a special interest in the analysis, design, implementation,
and use of computer-based information systems and organizations. Minimum requirements for the minor in information science are:
a. COMP 150 Computer Programming I / 3 units
b. COMP 151 Computer Programming II / 3 units
c. COMP 285 Data Structures and Algorithms / 3 units
d. 9 additional units, at least 6 of which are in upper-division courses chosen from:
1. The computer science offerings listed in this bulletin, excluding COMP 100 and COMP 498. COMP 345 is highly recommended; and,
2. ITMG 350 – Management Information Systems.

Lower Division Courses (COMP)
100 Introductory Computer Programming / 3 UNITS
An elementary introduction to computer programming and applications for non-majors and non-minors. Computer organization; problem solving; algorithms; structured programming in a simple computer language; computer applications; and current issues and trends in computer science. This course does not satisfy any of the requirements for the computer science major or minor and is not a substitute for COMP 150. (every semester)
150 Computer Programming I / 3 UNITS
Algorithms and programming in a selected computer language; expressions, statements, basic data types; sequence, decision, iteration; functions and procedures; arrays; recursion; file input and output; loop invariants; syntax analysis; and program design, documentation, validation, and debugging.
Prerequisite: MATH 115 or equivalent. COMP 100 is not a prerequisite. (every semester)
151 Computer Programming II / 3 UNITS
Continuation of COMP 150. Basic data structures, including lists, stacks, queues, and binary trees; abstract data types; sorting and searching algorithms; exception handling; event
driven programming; Prerequisite: COMP 150 or equivalent. (every semester)
160 Programming Languages / 3 UNITS
Introduction to a particular high-level programming language such as Ada, C, COBOL, Lisp, or Prolog. Programming assignments appropriate to the language studied. Prerequisite: COMP 150 or equivalent. This course does not satisfy any of the requirements for the major in Computer Science.
280 Introduction to Assembly Language / 3 UNITS
Machine structure; machine language; assembly language instructions and addressing modes; data representations; subroutines; macros; traps and interrupts; and input and output. Prerequisite: COMP 151. (fall semester)
285 Data Structures and Algorithms / 3 UNITS
Data structures, algorithm analysis and general programming design and applications; balanced trees, hashing, priority queues, sets, and graphs; more on sorting and searching; Prerequisites: COMP 151 and MATH 160, or equivalent courses. (fall semester)
Upper-Division Courses (COMP)
300 Principles of Digital Hardware / 4 UNITS
Combinational and sequential logic, registers, arithmetic units.
Introduction to computer architecture. Three lectures and one
laboratory per week. Prerequisites: COMP 280 and MATH 160,
or consent of instructor. (spring semester)
305 Object-oriented Design and Programming / 3 UNITS
Classes, encapsulation, inheritance, polymorphism, class
derivation, abstract classes, namespaces, function overloading
and overriding, function name overload resolution, container
classes, template classes; unified modeling language (UML);
constructing conceptual models, system sequence diagrams;
design patterns; case studies. Prerequisite: COMP 285 or
equivalent. (spring semester)
310 Operating Systems / 3 UNITS
Principles of computer operating systems; process management;
memory management; file systems; protection; deadlock.
Concurrent programming. Prerequisites: COMP 285 and 300, or
equivalent courses. (fall semester)
340 Numerical Analysis / 3 UNITS
Approximate computations and round-off errors; Taylor
expansions; numerical solution of equations and systems of
equations; systems of linear equations; numerical integration;
numerical solution of differential equations; interpolation; and
problem solving on the computer. Prerequisites: COMP 150 and
MATH 151. Cross-listed as MATH 340. (spring semester)
345 Database Management Systems Design / 3 UNITS
Introduction to database concepts; data models; query facilities;
and file organization and security. Prerequisite: COMP 285.
350 Computer Graphics / 3 UNITS
The development of high-level, device-independent graphics
routines; basic line drawing algorithms, text design, and other graphics primitives; 2-D representations of coordinate systems, image segmentation, and windowing. Prerequisites: COMP 285
and MATH 151.
355 Digital Modeling and Simulation / 3 UNITS
Mathematical modeling; probabilistic and deterministic
simulations; pseudo-random number generators; event
generators; queuing theory; game theory; and continuous
models involving ordinary and partial differential equations.
Prerequisites: COMP 305 and MATH 151.
360 Principles of Programming Languages / 3 UNITS
The organization of programming languages with emphasis
on language semantics; language definition, data types, and
control structures of various languages. Prerequisite: COMP
285; COMP 280 is recommended.
370 Automata, Computability, and Formal Languages / 3 UNITS
Finite state machines; formal grammars; computability and
Turing machines. Prerequisites: COMP 285, or upper-division
mathematics course. (spring semester)
375 Networking / 3 UNITS
Introduction to the design and implementation of computer
and communication networks. The focus is on the concepts
and the fundamental design principles that have contributed
to the global Internet’s success. Topics covered will include
MAC layer design (Ethernet/802.11), the TCP/IP protocol
stack, routing algorithms, congestion control and reliability,
and applications (HTTP, FTP, etc.) and advanced topics such
as peer-to-peer networks and network simulation tools. Recent
trends in networking such as multimedia networking, mobile/
cellular networks and sensor networks will also be discussed.
Prerequisite: COMP 151 or equivalent.
380 Neural Networks / 3 UNITS
A study of the fundamental concepts, architectures, learning
algorithms and applications of various artificial neural
networks, including perceptron, kohonen self organizing maps,
learning vector quantization, backpropagation, and radial
basis functions. Prerequisites: COMP 285 and MATH 151, or
consent of instructor.
465W Software Engineering / 3 UNITS
Theoretical and practical aspects of software development;
project planning; requirements and specification; general and
detailed design; implementation; validation and verification;
formal documentation. Students will participate in developing
documentation for a large software project. Prerequisite: COMP
305. (fall semester)
480 Algorithms / 3 UNITS
Advanced theory of algorithms. Topics may include: algorithm
analysis; algorithm design techniques; and computational
complexity. Prerequisites: COMP 285 and MATH 151.
494 Special Topics / 3 UNITS
Topics of special interest chosen by the instructor.
Prerequisites: COMP 305 and consent of the instructor. 494
may be repeated for credit with a different topic.
495 Senior Project / 2 UNITS
The course involves participation in a capstone senior project
of substantial interest to computer scientists.
