Computer Science Courses (COMP)

Courses

COMP 100 | INTRODUCTORY COMPUTER PROGRAMMING

Units: 3 Repeatability: No

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.

COMP 150 | COMPUTER PROGRAMMING I

Units: 3

Prerequisites: MATH 115 or Passing the appropriate departmental placement test within the previous year or MATH 130 or MATH 150

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. Prereq: MATH 115 with a minimum grade of C-, or pass Level 2 mathematics placement exam. COMP 100 is not a prerequisite.

COMP 151 | COMPUTER PROGRAMMING II

Units: 3 Repeatability: No

Prerequisites: COMP 150

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;.

COMP 160 | PROGRAMMING LANGUAGES

Units: 1-3 Repeatability: Yes (Can be repeated for Credit)

Prerequisites: COMP 150

Introduction to a particular high-level programming language such as C, C++, Python, Ruby, MATLAB, and Maple. Programming assignments appropriate to the language studied. Prereq: COMP 150 with a grade of C- or better. This course does not satisfy any of the requirements for the major in computer science.

COMP 280 | INTRODUCTION TO COMPUTER SYSTEMS

Units: 3.5 Repeatability: No

Prerequisites: COMP 151

Introduction to computer systems; data representation; machine/assembly languages; memory organization; virtual memory; and concurrency. Prerequisites COMP 151.

COMP 285 | DATA STRUCTURES & ALGORITHMS

Units: 3

Prerequisites: (COMP 151 and MATH 160)

Data structures, algorithm analysis and general programming design and applications; balanced trees, hashing, priority queues, sets, and graphs; more on sorting and searching; Prereq: COMP 151 with a grade of C- or better and MATH 160 with a grade of C- or better.

COMP 300 | PRINCIPLES OF DIGITAL HARDWARE

Units: 4 Repeatability: No

Prerequisites: MATH 160 and COMP 280

Combinational and sequential logic, registers, arithmetic units. Introduction to computer architecture. Three lectures and one laboratory per week.

COMP 305 | OBJECT-ORIENTED DESIGN AND PROGRAMMING

Units: 3

Prerequisites: COMP 285

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. Prereq: COMP 285 with a grade of C- or better.

COMP 310 | OPERATING SYSTEMS

Units: 3.5-4 Repeatability: No

Prerequisites: COMP 280

Principles of computer operating systems; process management; memory management; file systems; protection; deadlock. Concurrent programming.

COMP 340 | NUMERICAL ANALYSIS

Units: 3

Prerequisites: MATH 151 and COMP 150

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. Prereq: COMP 150 with a grade of C- or better and MATH 151 with a grade of C- or better. Cross-listed as MATH 340.

COMP 341 | NUMERICAL ANALYSIS II

Units: 3

Prerequisites: MATH 250 and MATH 320 and MATH 330 (Can be taken Concurrently) and COMP 340

Estimation of eigenvalues and eigenvectors of matrices; numerical solutions of differential equations, existence, and stability theory; and computer lab assignments. Prereq: MATH 250, 320, 330 (may be taken concurrently), and COMP 340, all with a grade of C- or better. Cross-listed as MATH 341.

COMP 345 | DATABASE MANAGEMENT SYSTEMS DESIGN

Units: 3

Prerequisites: COMP 285

Introduction to database concepts; data models; query facilities; and file organization and security. Prereq: COMP 285 with a grade of C- or better.

COMP 350 | COMPUTER GRAPHICS

Units: 3

Prerequisites: MATH 151 and COMP 285

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. Prereq: COMP 285 with a grade of C- or better and MATH 151 with a grade of C- or better.

COMP 355 | DIGITAL MODELING AND SIMULATION

Units: 3

Prerequisites: MATH 151 and COMP 305

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. Prereq: COMP 305 with a grade of C- or better and MATH 151 with a grade of C- or better.

COMP 360 | PRINCIPLES OF PROGRAMMING LANGUAGES

Units: 3-4

Prerequisites: COMP 285

The organization of programming languages with emphasis on language semantics; language definition, data types, and control structures of various languages. Prereq: COMP 285 with a grade of C- or better; COMP 280 is recommended.

COMP 370 | AUTOMATA, COMPUTABILITY AND FORMAL LANGUAGES

Units: 3

Prerequisites: COMP 285

Finite state machines; formal grammars; computability and Turing machines. Prereq: COMP 285 with a grade of C- or better, or upper division mathematics course.

COMP 375 | NETWORKING

Units: 3

Prerequisites: COMP 151

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. Prereq: COMP 151 with a grade of C- or better.

COMP 380 | NEURAL NETWORKS

Units: 3

Prerequisites: COMP 285 and MATH 151

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. Prereq: COMP 285 with a grade of C- or better and MATH 151 with a grade of C- or better.

COMP 385 | COMPILER CONSTRUCTION

Units: 3 Repeatability: No

Prerequisites: COMP 300 and COMP 310

Students in this class will implement a scanner, a compiler, and an interpreter. The goal of this course is to establish a competence in data transformation and translation within the context of computer language compilation and interpretation. Students will exercise their individual contribution capabilities and teamwork skills while implementing a trio of software systems that will require a significant associated verification/test effort. Every Spring.

COMP 465W | SOFTWARE ENGINEERING

Units: 3

Prerequisites: COMP 305

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. Prereq: COMP 305 with a grade of C- or better.

COMP 480 | ALGORITHMS

Units: 3

Prerequisites: MATH 151 and COMP 285

Advanced theory of algorithms. Topics may include: algorithm analysis; algorithm design techniques; and computational complexity. Prereq: COMP 285 with a grade of C- or better and MATH 151 with a grade of C- or better.

COMP 494 | SPECIAL TOPICS

Units: 3 Repeatability: Yes (Can be repeated for Credit)

Prerequisites: COMP 305

Topics of special interest chosen by the instructor. Prereq: COMP 305 with a grade of C- or better and consent of the instructor. COMP 494 may be repeated for credit with a different topic.

COMP 495 | SENIOR PROJECT

Units: 2

Prerequisites: COMP 465W

The course involves participation in a capstone senior project of substantial interest to computer scientists. Emphasis is on the design and implementation of computer systems for real-world problems. A final written report and oral presentation in the presence of other students and faculty are required. Prereq: COMP 465W with a grade of C- or better and senior standing.

COMP 498 | INTERNSHIP

Units: 1-3 Repeatability: Yes (Can be repeated for Credit)

Practical experience in the application of the principles of computer science. Students will be involved in a software or hardware project. Enrollment is arranged on an individual basis according to the student’s interest, background, and the availability of positions. A written report is required. Units may not normally be applied toward the major or minor in computer science. COMP 498 may be repeated for a total of three units.

COMP 499 | INDEPENDENT STUDY

Units: 1-3 Repeatability: Yes (Can be repeated for Credit)

Prerequisites: COMP 151

Individual study including library or laboratory research or program writing. A written report is required. Prereq: COMP 151 and consent of instructor. COMP 499 may be repeated for a total of three units.