skip to main content

Computer Science Courses

CS 105 Introduction to Computing

Introduction to essential concepts and practices in computing. Design, assemble, and operate basic computer hardware and software in a collaborative environment.

Prerequisite(s): None
CS 105 Syllabus, Fall 2015

CS 135 Computer Science I

Introduction to modern problem solving and programming methods. Emphasis is placed on algorithm development. Introduction to procedural and data abstraction, emphasizing design, testing, and documentation. (Formerly CS 201; implemented Spring 2005.)

Prerequisite(s): MATH 127 R or MATH 128 or satisfactory score on readiness exam.
CS 135 Syllabus, Fall 2015

CS 202 Computer Science II

Emphasis on problem solving and program development techniques. Typical numerical and non-numerical problems are examined. Design, implementation, and abstraction principles of elementary data structures. 

Prerequisite(s): CS 135 with a "C" or better.
CS 202 Syllabus, Fall 2015

CS 219 Computer Organization

Introduction to organization and integration of computer components. Topics include: computer abstractions and performance, arithmetic operations, instruction set architecture, assembly programming, datapath, pipelining, memory hierarchy, I/O, and parallel architectures.

Prerequisite(s): CS 202 and CPE 201
CS 219 Syllabus, Fall 2015

CS 282 Simulation Physics

By applying the laws of physics, it is possible to realistically model nearly everything that bounces, flies, rolls, and slides. This allows the creation of compelling, believable content for simulations, animations and computer games. This course provides the necessary computational tools and mathematical foundations to achieve this objective and enrich such simulations and games with physics-based realism.

Prerequisite(s):CS 202 Computer Science II and PHYS180 Physics for Scientists and Engineers

CS 302 Data Structures

Data structures and algorithms fundamental to computer science; abstract data-type concepts; measures of program running time and time complexity; algorithm analysis and design techniques. (Formerly CS 308; implemented Spring 2005.)

Prerequisite(s): CS 202 with a "C" or better.
CS 302 Syllabus, Fall 2015

CS 326 Programming Languages, Concepts and Implementations

An overview of programming languages; features, structures, and implementation; examples taken from various programming paradigms. Introduction to formal specifications of languages.

Prerequisite(s): CS 302 with a "C" or better
CS 326 Syllabus, Fall 2015

CS 328 Fundamentals of Game Design

Fundamental topics related to game design. Topics include: game design requirements, game design principles, evaluation, peer review, prototyping.

Prerequisite(s): CS 202
CS 328 Syllabus, Fall 2014

CS 330 Design Patterns

Introduction to design patterns: Strategy, Observer, Factory, Singleton, Command, Adapter, Façade, Template Method, Iterator, Composite, State, Proxy. Object Oriented design principles, Java/UML.

Prerequisite(s): CS 202 with a "B" or better.
CS 330 Syllabus, Fall 2014

CS 365 Mathematics of Computer Science

Computing related mathematical constructs and concepts. Topics covered include: propositional/predicate logic, proofs, sets functions algorithms, matrices, sequences, induction, recursion, combinatorics, probability, relations, graphs.

Prerequisite(s): CS 202 with a "C" or better; MATH 182 with a "C" or better.
CS 365 Syllabus, Fall 2015

CS 381 The Game Development Pipeline

Introduction to the technical elements of modern videogame and the pipeline for assembling them, plus issues of interface design, quality assurance, and business practice.

Prerequisite(s): CS 281
CS 381 Syllabus, Spring 2014

CS 382 Introduction to Artificial Intelligence

The class will introduce fundamental ideas that have emerged over the past fifty years of AI re-search. It will also provide a useful toolbox of AI algorithms and highlight the relation between AI and fields such as Robotics, Vision and Bio-Inspired Machine Intelligence.

Prerequisite(s): CS 302 Data Structures

CS 415 Parallel Computing

Parallel algorithms and architectures. Taxonomy of systems, SIMD, MIMD, systolic arrays. Parallel languages and programming paradigms. Applications using a multiple processor parallel network.

Prerequisite(s): CS 302 with a "C" or better.
CS 415 Syllabus, Spring 2014

CS 420 Human Computer Interaction

Usability goals, design principles, design processes, prototyping, interface metaphors, interaction styles, interaction devices, software tools, evaluation paradigms and techniques, user manuals, collaborative work, information visualization.

Prerequisite(s): CS 302
CS 420 Syllabus, Fall 2015

CS 425 Software Engineering

Software processes, project management, software requirements, system models, architectural design, detailed design, user interface design, implementation, integration, verification, validation, testing, evolution, rapid development, software tools (Major capstone course)

Prerequisite(s): CS 446; ENG 102; CH 201; junior or senior standing
CS 425 Syllabus, Fall 2015

CS 426 Senior Projects in Computer Science

Supervised group or team projects with emphasis on implementation of engineered design. (Major capstone)

Prerequisite(s): CS 425; ENG 102; CH 201; and junior or senior standing.
CS 426 Syllabus, Spring 2015

CS 442 Cloud Computing

Cloud characteristics and security issues. Service, deployment and billing models. Hypervisors and virtualization. Data replication and persistence approaches. Administration and development of clouds.

Prerequisite(s): CPE 400
CS 442 Syllabus, Spring 2016

CS 446 Principles of Operating Systems

Concurrent processes, interprocess communication, processor management, virtual and real memory management, deadlock, file systems, disk management, performance issues, case studies. Practical experience with UNIX.

Prerequisite(s): CS 302 with a "C" or better; CPE 301
CS 446 Syllabus, Fall 2015

CS 447 Computer Systems Administration

Account maintenance, backups, restoration, system configuration, resource allocation and monitoring, network management, peripheral administration, emphasis on UNIX systems.

Prerequisite(s): CS 446
CS 447 Syllabus, Spring 2015

CS 450 Fundamentals of Integrated Computer Security

Network security, database and system security, access control, policy and ethics development, attacks, and counter attack measures, security tools and malicious code, current trends and research. Projects completed in a high level language.

Prerequisite(s): CS 446
CS 450 Syllabus, Fall 2015

CS 456 Automata and Formal Languages

Fundamental concepts of computation. Relationship between grammars, languages and machines, emphasizing regular and context free languages, finite state acceptors and Turing machines. Complexity and computability. (Formerly CS 467; implemented Spring 2005.)

Prerequisite(s):CS 365; MATH 283 R
CS 456 Syllabus, Fall 2015

CS 457 Database Management Systems

An overview of existing systems; physical data organization; relational, network and hierarchical models; data manipulation languages, data definition languages; database protection; database application using INGRES.

Prerequisite(s): CS 446

CS 460 Compiler Construction

Introduction to compiler writing techniques, grammars for syntax definition, use of compiler writing tools, compilers for simple languages, case studies of actual compilers. (Formerly CS 423; implemented Spring 2005.)

Prerequisite(s): CS 326
CS  460 Syllabus, Fall 2015

CS 466 Numerical Methods I

Numerical solution of linear systems, including linear programming; iterative solutions of non-linear equations; computation of eigenvalues and eigenvectors, matrix diagonalization. (Formerly CS 483; implemented Spring 2005.) (Same as MATH 466.)

Prerequisite(s): MATH 330

CS 467 Numerical Methods II

Numerical differentiation and integration; numerical solution of ordinary differential equations, two point boundary value problems; difference methods for partial differential equations. (Formerly CS 484; implemented Spring 2005.) (Same as MATH 467.)

Prerequisite(s): MATH 285

CS 474 Image Processing and Interpretation

Image files, thresholding, histograms, convolution, edge detection, segmentation, frequency domain filtering, morphology, registration, combining images.

Prerequisite(s): CS 302 with a "C" or better; MATH/STAT 352
CS 474 Syllabus, Fall 2015

CS 477 Analysis of Algorithms

Analysis and design of algorithms on sequences, sets, graphs and trees. Geometric, algebraic and numeric algorithms, FFTs, reductions. Parallel algorithms. (Formerly CS 465; implemented Spring 2005.)

Prerequisite(s): CS 365 or EE 291
CS 477 Syllabus, Fall 2015

CS 479 Pattern Recognition

Pattern recognition systems, statistical methods, discrimination functions, clustering analysis, unsupervised learning, feature extraction and feature processing.

Prerequisite(s): CS 302 with a "C" or better; MATH/STAT 352
CS 479 Syllabus, Spring 2015

CS 480 Computer Graphics

Software, hardware and mathematical tools for the representation, manipulation and display of two- and three dimensional objects: applications of these tools to specific problems.

Prerequisite(s): CS 302 with a "C" or better; MATH 182 with a "C" or better.
CS 480 Syllabus, Fall 2015

CS 481 Advanced Computer Game Design

The engineering, science, and art of creating advanced computer games. Design and implementation of game components in producing usable and engaging computer games.

Prerequisite(s): CS 381

CS 482 Artificial Intelligence

Problem solving, search, and game trees. Knowledge representation, inference, and rule-based systems. Semantic networks, frames, and planning. Introduction to machine learning, neural-nets, and genetic algorithms. (Formerly CS 476; implemented Spring 2005.)

Prerequisite(s): CS 365
CS 482 Syllabus, Fall 2015

CS 483 Artificial Intelligence Programming

Programming in an artificial intelligence language. Examples from intelligent agents, connectionist models, and expert systems. (Formerly CS 477; implemented Spring 2005.)

Prerequisite(s): CS 482

CS 485 Computer Vision

Principles, design and implementation of vision systems. Camera models and image formation, feature detection, segmentation. Camera calibration, 3-D reconstruction, stereo vision. Introduction to advanced topics.

Prerequisite(s): CS 302 with a "C" or better.
CS 485 Syllabus, Spring 2015

CS 491 Topics

Topics will vary. May be repeated for different topics.

Prerequisite(s): CS 302 with a "C" or better.
CS 491 Syllabus, Fall 2015: Robotics and Mobile Sensor Networks
CS 491 Syllabus, Spring 2015: Game Theory in Wireless Networks Design
CS 491 Syllabus, Spring 2015: Robotics for Humanity
CS 491 Syllabus, Spring 2015: Security and Privacy in Mobile Computing
CS 491 Syllabus, Spring 2014: Data Science and Big Data
CS 491 Syllabus, Fall 2014

CS 493 Directed Study in Computer Science

Directed study. May be repeated for different topics.

Prerequisite(s): CS 302 with a "C" or better.

CS 494 Internship in Computer Science

Individual internships in industry are arranged with appropriate companies. Written report is required upon completion of the work. Maximum of 3 credits.
Internship Requirements

Prerequisite(s): CS 302 with a "C" or better.

Take the next step...