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
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
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.