Computer Science Course Descriptions (COMP)



CMPSC 312 — COMPUTER ORGANIZATION AND ARCHITECTURE (3)
Data representation, digital logic, instruction set/control logic, machine/ assembly languages, advanced architectures, memory hierarchy, I/O devices, overall system design.
Prerequisite: CMPSC 121 or equivalent.

CMPSC 313 — ASSEMBLY LANGUAGE PROGRAMMING (3)
Program design, addressing modes, subroutines, parameter passing, stacks, bit manipulation, text processing, DOS functions, macros, I/O, high level language interfaces.
Prerequisite: CMPSC 312

CMPSC 402 — UNIX AND C (3)
UNIX OS including file system, utilities, and shell scripting; C programming, including I/O, pointers, arrays, dynamic memory, macros, and libraries.
Prerequisite: CMPSC 121

CMPSC 425 — ADVANCED OBJECT-ORIENTED PROGRAMMING (3)
Advanced object-oriented programming paradigm, exception handling, application programming interface, secure programming, network programming, threads and synchronization.
Prerequisite: CMPSC 122

CMPSC 426 — OBJECT-ORIENTED DESIGN (3)
Object-oriented analysis and design; design patterns such as creational, structural, and behavioral patterns; UML; and unified process.
Prerequisite: CMPSC 425, CMPSC 462

CMPSC 428 — PROGRAMMING IN ADA (3)
Structured program design using Ada; strong typing, data abstraction, packages, subprograms, separate compilation, visibility, exceptions, generic units.
Prerequisite: CMPSC 121

CMPSC 430 — DATABASE DESIGN (3)
Relational database model, query languages, integrity, reliability, normal forms for design.
Prerequisite: CMPSC 462,

CMPSC 436 — COMMUNICATIONS AND NETWORKING (3)
Data transmission, basic signaling, data encoding, error control, communication protocols, security, network topologies, routing, switching, internetworking, emerging high speed networks.
Prerequisite: CMPSC 312

CMPSC 438 — COMPUTER NETWORK ARCHITECTURE AND PROGRAMMING (3)
Network architectures, communication protocols, internetworking, network security, client-server computing, web application development, programming with APIs.
Prerequisite: CMPSC 312, CMPSC 425; CMPET 401 cannot be taken for credit after CMPSC 438.

CMPSC 441 — ARTIFICIAL INTELLIGENCE (3)
Problem solving, search techniques including local search and genetic algorithms, knowledge representation, planning, learning, and neural networks.
Prerequisite: CMPSC 122; MATH 315

CMPSC 452 — NUMERICAL ANALYSIS (3)
Algorithm efficiency and accuracy, function interpolation and polynomial approximation, numerical differentiation and integration, initial-value problems, and approximation of eigenvalues.
Prerequisite: MATH 220

CMPSC 457 — COMPUTER GRAPHICS ALGORITHMS (3)
Graphics systems/hardware, color models, transformations, projections, clipping, hidden line/surface removal, aliasing, parametric curves/surfaces, 3D modeling, animation.
Prerequisite: CMPSC 122; MATH 220

CMPSC 460 — PRINCIPLES OF PROGRAMMING LANGUAGES (3)
Design and implementation of high level programming languages and survey of language paradigms including imperative, functional, and object-oriented programming.
Prerequisites: CMPSC 312, CMPSC 462, CMPSC 469

CMPSC 462 — DATA STRUCTURES (3)
In-depth theoretical study of data structures such as balanced trees, hash tables, priority queues, B-trees, binomial heaps, and Fibonacci heaps.
Prerequisite: CMPSC 360
Concurrent: MATH 315

CMPSC 463 — DESIGN AND ANALYSIS OF ALGORITHMS (3)
Recurrences, algorithms design techniques, searching, sorting, selection, graph algorithms, NP-completeness, approximation algorithms, local optimization algorithms.
Prerequisites: CMPSC 462,
Concurrent: MATH 414 or STAT 301

CMPSC 469 — FORMAL LANGUAGES WITH APPLICATIONS (3)
Regular, context free, recursive, and recursively enumerable languages; associated machine models; applications.
Prerequisite: CMPSC 360, MATH 315

CMPSC 470 — COMPILER CONSTRUCTION (3)
Compiler design and implementation; scanning, parsing, semantic analysis, optimization (including static analysis), code generation, garbage collection, and error detection.
Prerequisite: CMPSC 312, CMPSC 425, CMPSC 462, CMPSC 469

CMPSC 472 — OPERATING SYSTEM CONCEPTS (3)
Theoretical and practical issues of operating systems design and implementation, process management, concurrent programming, memory management, scheduling, I/O, and security.
Prerequisites: CMPSC 312, CMPSC 462

CMPSC 487W — SOFTWARE ENGINEERING AND DESIGN (3)
Software development process, life cycle; requirements analysis, specification, design, prototyping, testing, project management, and documentation.
Prerequisite: ENGL 202C, CMPSC 425, CMPSC 462

CMPSC 495 — INTERNSHIP (1-18)
Supervised off-campus, nongroup instruction including field experiences, practica, or internships. Written and oral critique of activity required.
Prerequisite: Prior approval of proposed assignment by instructor

CMPSC 496 — INDEPENDENT STUDIES (1-18)
Creative projects, including research and design, which are supervised on an individual basis and which fall outside the scope of formal courses.

CMPSC 497 — SPECIAL TOPICS (1-9)
Formal courses given infrequently to explore, in depth, a comparatively narrow subject which may be topical or of special interest.
Typical special topic courses offered include Advanced Data Structures and Algorithms, Computer Security.



 
Math/Computer Sciences Home Page

| CS Home | Entrance Req | Degree Req | Courses | Prereq Chart | Faculty | Students |
 
Prospective CS Students      Current CS Students