You are here

Courses

Undergraduate Courses for Computer Science Majors

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

CMPS 120 - BASIC CONCEPTS OF COMPUTER SCIENCE AND ROBOTICS. (3,0,3). Concepts of computing and the interaction of computers with the physical world. Construction and operation of a robot by integrating electronics, mathematics, physics and computer programming. Prereq: Permission of instructor

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 or MATH 110 or MATH 143 with a grade of “C” or better

CMPS 207 -FUNDAMENTALS IN COMPUTER PROGRAMMING (3, 2, 2) Object-oriented programming.Prereq: CMPS 150 with a grade of “C” or better. Restriction: Not open to Computer Science majors or to any student with earned credit for CMPS 260

CMPS 250 - HONORS INTRODUCTION TO DATA STRUCTURES AND SOFTWARE DESIGN. (4, 1, 4). Accelerated coverage of CMPS 150 and CMPS 260. Students passing CMPS 250 with a “C” or better will also receive credit for CMPS 150. Prereq: MATH 109 and MATH 110 or MATH 143 with a grade of “C” or better. Restriction: Permission of the instructor required

260  INTRODUCTION TO DATA STRUCTURES AND SOFTWARE DESIGN. (3, 0, 3). Integrated software engineering principles, fundamental data structures and algorithm design and development. Requirements, specifications, design and testing. Fa, Sp. Prereq: CMPS 121 or CMPS 150 with a grade of “C” or better. MATH 109 and MATH 110, or MATH 143 with a grade of “C” or better, or a MATH ACT score of 28 or higher.

261  ADVANCED DATA STRUCTURES AND SOFTWARE ENGINEERING. (3, 0, 3). Programming methods, software testing, and algorithm analysis. Construction, traversal, and modification of trees, heaps, and has tables. Sorting and searching techniques on linear structures including arrays and sequential files. Prereq: CMPS 250 or CMPS 260 with a grade of “C” or better. MATH 109 and MATH 110, or MATH 143 with a grade of “C” or better.

310  COMPUTERS IN SOCIETY. (2, 0, 2). Technology and Humanity, Social and Political impacts of computers. Privacy and Information: wire tapping and encryption, internet security, communication in cyberspace, censorship. Protecting software and their intellectual property: patent, cyberspace copyright. Computer crimes: software privacy, hacking, information theft, digital forgery, 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 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. Algebraic structures, finite-state machines, turing machines, and computational notions. Fa, Sp. Prereq: CMPS 261 and MATH 270 both with a grade of “C” or better

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 grade of “C” or better

CMPS 352 - SCIENTIFIC COMPUTING. (3, 0, 3) Software tools and algorithmic methods for solving large scale numerical problems in applied science, engineering and real-life applications. Floating point and matrix computations, numerical integration and differentiation. Numerical methods to compute graphics, visualization and video game development. Prereq: CMPS 341 with a grade of “C” or better

CMPS 353 - PRINCIPLES OF FILE ORGANIZATION AND PROCESSING. (3, 0, 3). File structures - their manipulation and management, application to commercial systems, techniques for data storage and retrieval. Prereq: CMPS 260 with a grade of “C” or better

358 PROGRAMMING IN .NET/C#. (3, 0, 3). C# syntax and semantics with emphasis on object oriented programming, threads, I/O, collections, use of Visual Studio. Creation of GUI applications, network applications, database connectivity and web applications. Prereq: CMPS 261 with a grade of “C” or better, or permission of instructor

359  TOPICS IN SOFTWARE DEVELOPMENT. (1-3, 0, 1-3). May be repeated for credit when topics vary. Alternate subtitles will appear on student’s transcript. Prereq: CMPS 261 with a grade of “C” or better, or permission of instructor required

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. Prereq: CMPS 250 or CMPS 260, with a grade of “C” or better

CMPS 405 - FUNDAMENTAL PRINCIPLES OF COMPUTER PROGRAMMING. (3, 0, 3). Program design and data abstraction; iteration and recursion. Fundamental data structures and their operations. Sorting and searching. A matriculation course for graduate students in computer science and engineering lacking computer science background. No credit toward any computer science or computer engineering degree.Prereq: CMPS 150. Coreq: CMPS 406

CMPS 406 - FUNDAMENTALS OF COMPUTING THEORY. (3, 0, 3) Review of mathematical background. Algorithmic problems and their solutions. Methodology for algorithmic problem solving, abstraction and design; case study. Basics of program correctness and complexity analysis. A matriculation course for graduate students in computer science and engineering lacking computer science background. No credit toward any computer science or computer engineering degree.Prereq: CMPS 150 and CMPS 341. Coreq: CMPS 405

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 grade of “C” or better

413 COMPUTER COMMUNICATION AND NETWORKS. (3, 0, 3). Design and implementation of computer networks and applications. Network layers, Internet protocol stack, network architectures. Network programming interfaces, including sockets. Prereq: CMPS 341 and CMPS 351 both with a grade of “C” or better.

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 with a grade of “C” or better, or CMPS 405 and CMPS 406 both with a grade of “B” or better and MATH 362 with a grade of “C” or better

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 with a grade of “C” or better, or CMPS 405 with a grade of “B” or better

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, CMPS 351, and MATH 302 or MATH 462G, all with a grade of “C” or better

CMPS 426(G) GAME ENGINE ALGORITHMS AND ARCHITECTURE. (3, 0, 3). Algorithms and architectural design principles involved in the development of a game and game engine. Advanced data structures and algorithms for pathfinding and collision detection, physics-based methods for modeling game dynamics, 3D transformations, data-driven design, quality issues for games and game engines, and methods of testing. Prereq: CMPS 327 or permission of instructor required

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 grade of “C” or better, or CMPS 405 and CMPS 406 both with a grade of “B” or better

CMPS 432(G) PARALLEL AND DISTRIBUTED COMPUTING. (3, 0, 3). Architecture and system models of networked computing components that coordinate through message passing. Many-core and many-task methods; grid, GPU-based, and cloud computing; programming systems and models including MPI, web services, and map reduce; virtualization. Prereq: CMPS 341 and CMPS 430G both with a grade of “C” or better.

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 with a grade of “C” or better

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 341 and CMPS 351 both with a grade of “C” or better

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 450G with a grade of “C” or better

452(G)  HUMAN COMPUTER INTERFACE DESIGN. (3, 0, 3). Human factors of interactive software and styles, design principles and considerations, development methods and tools, interface quality, and evaluation methods. Prereq: CMPS 341 with a grade of “C” or better, or CMPS 405 and CMPS 406 both with a grade of “B” or better

453(G)  INTRODUCTION TO SOFTWARE METHODOLOGY. (3, 0, 3). Software engineering ethics, software processes, project planning, requirement engineering, agile methods, system modeling, architectural design, testing, security, resilience, distributed software engineering, consideration of tradeoffs, and impact of software solutions. Prereq: CMPS 341 with a grade of “C” or better

455(G)  OPERATING SYSTEMS. (3, 0, 3). Process and thread management, concurrency, deadlock, CPU scheduling; memory management, virtual memory, file systems; virtualization, and protection and security. Prereq: CMPS 341 and CMPS 351 both with a grade of “C” or better.

460(G)  DATABASE MANAGEMENT SYSTEMS. (3, 0, 3). Concepts, architecture, data models, design and implementation using entity-relationship model (or class diagram). Declaration and manipulation of data using SQL. Advanced SQL, including stored procedures, triggers, and transactions. Embedded SQL and web-based database application development, normalization, optimization, and database security. Prereq: CMPS 341 with a grade of “C” or better.

490  SENIOR PROJECT. (3, 0, 3). Major software development project requiring integration and application of knowledge and skills acquired in algorithms, data structures, programming, and software design. Prereq: CMPS 340 and CMPS 341, both with C or better, and student must have completed a minimum of 90 credits. Restriction: Permission of instructor required.

497,498 SPECIAL PROJECTS. (3, 0, 3). Prereq: GPA of 2.50 or better, and CMPS 341 and CMPS 351 each with a grade of “C” or better. Restriction: Permission of instructor required

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 CMPS 351 with a grade of “C” or better