CMPSC 305 — Object-Oriented Programming for Mathematics and Science I (3)
— (Old Name: COMP 350)
Techniques and strategies for object-oriented programming, graphical user interfaces, overview of computer organization.
CMPSC 306 — Object-Oriented Programming for Mathematics and Science II (3)
— (Old Name: COMP 351)
Advanced techniques and strategies for object-oriented programming, graphical user interfaces, overview of computer organization.
Prerequisite:CMPSC 305
Data representation, digital logic, instruction set/control logic,
machine/assembly languages, advanced architectures, memory hierarchy, I/O
devices, overall system design.
Prerequisite: Permission of program
Program design, addressing modes, subroutines, parameter passing, stacks, bit
manipulation, text processing, DOS functions, macros, I/O, high level language
interfaces.
Prerequisite: previous experience in a high-level programming language
CMPSC 402 — UNIX AND C (3)
— (Old Name: COMP 430)
UNIX operating system,
functions, libraries, programming style, operators and variables, data types,
control statements, pointers, arrays, strings, lists, input/output,
macros. (Students CANNOT take this course after having taken CMPSC 422.) Prerequisite: Ada, Pascal, or FORTRAN.
CMPSC 422 — Object-Oriented Programming with C++ (3)
— (Old Name: COMP 432)
Inheritance, polymorphism, containers, iterators, templates, exception
handling, and overview of object-oriented design.
Prerequisite: Three credits of a high level programming language such
as Ada, C, Pascal, or permission of program.
Inheritance, polymorphism, exception handling, applet programming, Java
graphics, and an overview of object-oriented design.
Prerequisite: 3 credits of a high-level programming language such as
Ada, C, C++, Pascal, or permission of program
Object-oriented design methodologies and programming.
Prerequisite: 3 credits of an
object-oriented programming language such as Ada, C++, or Java
CMPSC 428 — INTRODUCTORY ADA AND PROGRAM DESIGN (3)
— (Old Name: COMP 408)
Structured program design using Ada; strong typing, data abstraction, packages,
subprograms, separate compilation, visibility, exceptions, generic units.
Prerequisite: previous experience in a high-level programming language
CMPSC 429 — ADVANCED ADA PROGRAMMING LANGUAGE (3)
— (Old Name: COMP 409)
Advanced types, exceptions, generic units and tasking, and their use in
software systems.
Prerequisite:CMPSC 428.
Relational database model, query languages, integrity, reliability, and normal
forms for design.
Prerequisite:CMPSC 462, MATH 315 and Ada, Pascal, C, C++, Java,
or FORTRAN
Data transmission, basic signaling, data encoding, error control,
communication protocols, security, network topologies, routing, switching,
internetworking, emerging high speed networks.
Prerequisite:CMPSC 312 and experience in a
high-level programming language
History of AI, problem solving, search techniques, knowledge representation,
LISP, learning.
Prerequisite: A high level programming language such as Ada, Pascal, C,
or C++
Concurrent:CMPSC 462
Algorithm efficiency and accuracy, function interpolation and polynomial
approximation, numerical differentiation and integration, initial-value
problems, and approximation of eigenvalues.
Prerequisite:MATH 430,
Pascal, C, FORTRAN, or an object-oriented programming language .
Coordinate systems, clipping, curves and regions, geometric transformations,
parallel and projective projections, hidden line and surface removal,
interactive techniques, animation.
Prerequisite:MATH 430, an
object-oriented programming language
CMPSC 460 — PRINCIPLES OF PROGRAMMING LANGUAGES (3)
— (Old Name: COMP 416)
Design and implementation of high level programming languages and survey of
programming language paradigms.
Prerequisites: CMPSC 312, 469, 462.
Asymptotic notations, lists, stacks, queues, trees, balanced trees,
self-adjusting data structures, hash tables, priority queues, bionomial heaps.
Prerequisite: Pascal, Ada, C, C++ or Java
Concurrent:MATH 315
CMPSC 463 — DESIGN AND ANALYSIS OF ALGORITHMS (3)
— (Old Name: COMP 463)
Recurrences, algorithms design techniques, searching, sorting, selection, graph
algorithms, NP-completeness, approximation algorithms.
Prerequisites:CMPSC 462,
MATH 315 and Introductory Probability
CMPSC 469 — FORMAL LANGUAGES WITH APPLICATIONS (3)
— (Old Name: COMP 404)
Regular, context free, and recursive languages; notations for language
specification and applications.
Prerequisite:MATH 315 and Ada,
Pascal, C, C++, Java, or FORTRAN
Programming language structure, basic automata theory, design of a complier,
scanning and parsing, semantic processing (including type checking), code
generation, and error detection.
Prerequisite:CMPSC 469, CMPSC 462.
Process management, synchronization, deadlocks, memory management, virtual
memory, CPU and process scheduling, file systems, disk scheduling, security,
protection, distributed systems.
Prerequisites: CMPSC 312, 462,
programming experience in a high-level language
Requirements analysis, specification, design, expectation and testing
strategies, development handling, development libraries, approaches to project
management, and documentation.
Prerequisite:CMPSC 462,
MATH 315
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