You are here

Courses

Undergraduate Courses for Computer Science Majors

Visit the online academic catalog to view all computer science courses.

150  INTRODUCTION TO COMPUTER SCIENCE. (3, 1 , 3). Problem solving, structured design of algorithms, implementation of algorithms, and testing and debugging of programs. Data types, control structures, and abstractions. The laboratory component focuses on algorithm design and implementation. Fa, Sp. Prereq: MATH 109 with a minimum grade of C. Coreq: MATH 110.

260  INTRODUCTION TO DATA STRUCTURES AND SOFTWARE DESIGN. (3, 0, 3). Integrated software engineering principles, fundamental data structures and algorithm design and development. Focus on requirements, specifications, design and testing. Fundamental data structures will include arrays and stacks. Fa, Sp. Prereq: CMPS 150 with a minimum grade of C. Coreq: MATH 270.

261  ADVANCED DATA STRUCTURES AND SOFTWARE ENGINEERING. (3, 0, 3). Continuation of CMPS 260. Data structures topics include construction, traversal, and modification of trees (binary, AVL, 2-3 trees, B-trees), heaps, hash tables, and graphs. Also sorting and searching techniques on linear structures including arrays and sequential files. Fa, Sp. Prereq: CMPS 260 with a minimum grade of C. Coreq: MATH 270.

310  COMPUTERS IN SOCIETY. (2, 0, 2). Technology and Humanity, social and political impact of computers. Privacy and information: wire tapping and encryption, internet security, communication in cyberspace, and censorship. Protecting software and intellectual property: patents and cyberspace copyrights. Computer crimes: software piracy, hacking, information theft, digital forgery, and internet crimes. Fa, Sp. Prereq: CMPS 260 with a minimum grade of C or consent of the instructor.

327  INTRODUCTION TO VIDEO GAME DESIGN AND DEVELOPMENT. (3, 0, 3). Design, implementation, and testing of video games. Incremental game engine development, graphics, user input, animation, sound, music and artificial intelligence. Fa. Prereq: CMPS 261 with a minimum grade of C.

340 DESIGN AND ANALYSIS OF ALGORITHMS (3, 0, 3) Algorithm analysis and asymptotic notation.  Advanced data structures analysis.  Design and analysis of; divide-and-conquer algorithms, dynamic programming, greedy algorithms, and amortized analysis; multithreaded algorithms, linear programming, number-theoretic algorithms, computational geometry and approximation algorithms.  Prereq:  CMPS 261 with a minimum grade of C.

341  FORMAL FOUNDATIONS OF COMPUTER SCIENCE. (3, 0, 3). Formal logic and its applications. Proof of correctness. Sets and combinatorics. Induction, recursion, and recurrence equations. Relations, functions, and graphs: Shortest path and minimal spanning tree, planarity, Eulerian paths, Hamiltonian cycles. Finite-state machines. Fa, Sp. Prereq: CMPS 261 with a minimum grade of C.

351  COMPUTER ORGANIZATION AND ASSEMBLY LANGUAGE PROGRAMMING. (3, 0, 3). Overview of computer organization. Performance evaluation, MIPS architecture, assembly and machine language, data representation, hardware/software interface, assembly and linking process, implementation of a data path. Fa, Sp. Prereq: CMPS 260 and EECE 140 both with a minimum grade of C.

358 PROGRAMMING IN C#/.net. (3, 0, 3). C# syntax and semantics, use of interfaces, packages, threads, I/O, and collections. Creation of GUI applications, server pages, servlets, Jars, remote methods, and database communication. Sp. Preq: CMPS 261 with a minimum grade of C.

359  TOPICS IN SOFTWARE DEVELOPMENT. (1-3, 0, 1-3). Course may be repeated twice when topics vary. Fa, Sp. Prereq: CMPS 261 with a minimum grade of C.

360  PROGRAMMING IN JAVA. (3, 0, 3). Java syntax and semantics, use of interfaces, packages, threads, I/O, and collections. Creation of GUI applications, server pages, servlets, Jars, remote methods, and database communication. Sp. Preq: CMPS 261 with a minimum grade of C.

411(G)  SYSTEM SIMULATION. (3, 0, 3). Construction and verification of simulation models. Sampling techniques used in simulation, pseudo random number generators and their tests. Prereq: CMPS 341, CMPS 351 and MATH 301 with a minimum grade of C.

415(G)  COMPUTER GRAPHICS. (3, 0, 3). Algorithms, analysis, and software architecture for graphical information systems, visualization, realistic rendering, and interactive user interfaces. Project on extensive image representation, transformation, and rendering. Fa. Prereq: CMPS 341, 351 both with a minimum grade of C; or CMPS 405, 406 both with a minimum grade of B.

419  STUDENT CONSULTATION. (0, 9, 3).
Practical experience in assisting others in the process of testing and maintaining software. Cannot count as a CMPS elective for computer science majors. Fa, Sp, Su. Prereq: CMPS 261 and permission of instructor.

420(G)  ARTIFICIAL INTELLIGENCE. (3, 0, 3). Theories and techniques. The background and foundations of AI, intelligent agent-based representation, problem solving and search algorithms, game playing, introduction to LISP, knowledge representation and knowledge-based systems. Introduction to other sub-areas such as: natural language processing, connectionist models and evolutionary algorithms. Fa. Prereq: CMPS 341, 351 both with a minimum grade of C; or CMPS 405, 406 both with a minimum grade of B.

425(G)  INTRODUCTION TO ROBOTICS. (3, 0, 3). Robotic manipulation systems: geometric transformations in 3-D space, forward and inverse manipulator kinematics and dynamics, trajectory generation, open-loop kinematics based manipulation control, robotic languages, and AI applications to robotics. Prereq: CMPS 341, 351, and MATH 302 all with a minimum grade of C.

427(G)  VIDEO GAME DESIGN AND DEVELOPMENT. (3, 0, 3). Design, implementation, and testing of video games. Game engine development, graphics, user input, animation, sound, music and artificial intelligence, with an emphasis on 3D graphics. Sp. Prereq: CMPS 327 or permission of instructor.

430(G)  COMPUTER ARCHITECTURE. (3, 0, 3). Hierarchical multilevel structure of computer systems; instruction set; microprogrammed and hardwired control; memory; basics of pipelines and multiprocessors; performance evaluations; I/O organization; buses and channels; computer arithmetic. Fa, Sp. Prereq: CMPS 351 with a minimum grade of C; or CMPS 405, 406, both with a minimum grade of B.

440(G)  THEORY OF COMPUTATION. (3, 0, 3). Abstract basis of machines and programming: automata, context free grammars and Turing machines; equivalence and non-equivalence of classes of devices; Chomsky hierarchy; incomputability; computational complexity. Sp. Prereq: CMPS 341, CMPS 351 both with a minimum grade of C.

450(G)  PROGRAMMING LANGUAGES. (3, 0, 3).
Formal, functional, and practical issues of design and implementation of imperative, functional, and declarative languages; denotational semantics; data types and abstraction, control abstraction, separate compilation units, and concurrency. Fa. Prereq: CMPS 440 with a minimum grade of C.
(Expanded course description)

451(G)  COMPILER CONSTRUCTION. (3, 0, 3). Introduction to compilers and language translation. Aspects of lexical, syntactic and semantic analysis including language theory and implementation. Finite state machines, regular expressions, top-down, bottom-up parsing techniques. Code generation and optimization, subroutine calls, symbol table management, LL and LR parser generators. Sp. Prereq: CMPS 450 with a minimum grade of C.

452(G)  USER INTERFACE DESIGN. (3, 0, 3). Introduction and implementation. Human factors of interactive software, interactive styles, design principles and considerations, development methods and tools, interface quality and evaluation methods. Sp. Prereq: MATH 301; CMPS 341, 351, all with a minimum grade of C; or CMPS 405, CMPS 406 both with a minimum grade of B.

453(G)  INTRODUCTION TO SOFTWARE METHODOLOGY. (3, 0, 3).
Project planning, requirements engineering, specification development techniques, structured design methods, software validation, and quality assurance. CASE tools and team dynamics. Fa. Prereq: CMPS 341, 351 both with a minimum grade of C; or CMPS 405 and 406 both with a minimum grade of B.

455(G)  OPERATING SYSTEMS. (3, 0, 3).
Process management in a multiprogramming environment; CPU scheduling, concurrency, memory management, deadlock, virtual memory, and file systems. Fa, Sp. Prereq: CMPS 453 with a minimum grade of C and experience with C and C++.

460(G)  DATABASE MANAGEMENT SYSTEMS. (3, 0, 3). Introduction to database design and implementation using the entity-relationship model, and mapping high-level database designs. Relational model concepts, relational costraints, and the relational algebra. Database declaration, implementaion and manipulation. Embedded SQL application development. Other topics such as normalization, optimization, and concurrency control. Sp. Prereq: CMPS 341 with a minimum grade of C; or CMPS 405 with a minimum grade of B.

490  SENIOR PROJECT. (3, 0, 3).

497,498 SPECIAL PROJECTS. (3, 0, 3). Prereq: GPA of 3.00 or better; CMPS 341, CMPS 351 and MATH 301, all with a minimum grade of C; and permission of instructor.

499  SPECIAL TOPICS IN COMPUTER SCIENCE. (3, 0, 3). May be repeated for credit. Alternate subtitles will appear on students transcripts. Prereq: CMPS 341 and 351 with a minimum grade of C.