Home
Curriculum
People
Facilities
Links



Curriculum

     
Course Descriptions Degree Programs Scholarships

Explanation of Course Descriptions

In the following course descriptions, the course number is followed by the course name. After the name, the contact and credit hours are given in parentheses. The first number within the parentheses represents the number of lecture hours per week. The second number represents the number of laboratory hours per week, and the last number represents the total credit hours awarded for satisfactory completion of the course.

At the end of each description, the prerequisites and corequisites for the course are mentioned and abbreviations which represent the semesters in which a course is taught are given. The abbreviations are as follows:

Fa. means that the course is offered in the Fall.
Sp. means that the course is offered in the Spring.
Su. means that the course is offered in the Summer.

NOTE: Courses appearing in the undergradute bulletin that are not currently offered by the department have been omitted from the following list.

Course Index

Course Descriptions

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. (Expanded course description)


207. COMPUTERS IN ORGANIZATIONS. (2, 2, 3). Fundamental concepts of computer usage in business. Fourth generation language programming in lab. Prereq: MATH 105; ENGL 101; BSAT 100 or equivalent.


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. Fa. Prereq: Prior programming experience in a high-level programming language. Coreq: MATH 270 or equivalent. (Expanded course description)


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, linked lists, stacks and queues. Fa, Sp. Prereq: CMPS 150 with a minimum grade of C. Coreq: MATH 270. (Expanded course description)


261. ADVANCED DATA STRUCTURES AND SOFTWARE ENGINEERING. (3, 0, 3). Continuation of CMPS 260. Introduction to programming methodology, software testing techniques, software metrics and algorithm analysis. 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 and MATH 270 with a minimum grade of C. (Expanded course description)


300. COMPUTER LITERACY. (3, 0, 3). Impact of computers on society. Experience with software packages. Restr: This course is not open to Computer Science majors and minors nor to any student with earned credit for CMPS 200. Fa, Sp, Su. Prereq: ENGL 101; MATH 105.


301. COMPUTING FOR THE NATURAL SCIENCES. (3, 0, 3). Computing techniques emphasizing solutions to problems encountered in the mathematical and natural sciences. This course is not open to computer science majors or minors. Fa, Sp. Prereq: MATH 105 with a minimum grade of C.


303. COMPUTING FOR THE SOCIAL SCIENCES. (3, 0, 3). Computing techniques emphasizing solutions to problems encountered in the social sciences. This course is not open to computer science majors or minors. Fa, Sp. Prereq: MATH 105 with a minimum grade of C.


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. (Expanded course description)


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. (Expanded course description)


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.(Expanded course description)


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. (Expanded course description)


352. SCIENTIFIC COMPUTING. (3, 0, 3) Computer-oriented methods for solving numerical problems in science and engineering. Accuracy of floating point representation and operations. Matrix computations: orthogonal transformations, LU factorization, condition number, direct and indirect methods for solving linear systems. Application of integration and differentiation. Fast Fourier Transform (FFT). Survey of available tools for numerical computation. High performance computers and visualization methods. Fa. Prereq: CMPS 351 and MATH 270 with a minimum grade of C. (Expanded course description)


353. PRINCIPLES OF FILE ORGANIZATION AND PROCESSING. (3, 0, 3) File structures - their manipulation and management, applications to commercial systems, and techniques for data storage and retrieval. The COBOL programming language is used in this course. Fa, Sp. Prereq: CMPS 260 with a minimum grade of C. (Expanded course description)


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 250 or 260 with a minimum grade of C. (Expanded course description)


To enroll in any 400-level course, students must be admitted to the Upper Division; to enroll in a 400(G)-level course in which there are graduate students, students must have junior or higher standing.


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. Fa. Prereq: CMPS 150. Coreq: CMPS 406.


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. Fa. Prereq: CMPS 150 and 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 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. (Expanded course description)


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. (Expanded course description)


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. (Expanded course description)


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. (Expanded course description)


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. (Expanded course description)


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. (Expanded course description)


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. (Expanded course description)


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++. (Expanded course description)


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. (Expanded course description)


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 student's transcripts. Prereq: CMPS 341 and 351 with a minimum grade of C.