Course Descriptions
CPTR125 (3)
Introduction to Computer Programming
Programming in a selected language. May be repeated for a total of three unique languages. Satisfies general education requirements for computing majors. Only 3 credits of CPTR125 may apply toward a computing major or minor.
CPTR151 (4)
Computer Science I
An introduction to programming methodology using C++, UNIX usage, problem-solving, algorithm development, control structures, arrays, program style, design correctness and documentation techniques, as well as a brief overview of computer systems and computer history.
CPTR152 (3)
Computer Science II
A continuation of CPTR151 examines program specifications, design, coding, correctness, and style with additional coverage of pointers and arrays, and an in-depth study of recursion and data structures. Includes files, lists, stacks, queues, trees, graphs, and an overview of computer ethics.
CPTR276 (3)
Data Structures and Algorithms
A study of techniques for the design and analysis of algorithms using the appropriate data structures covered in CPTR152. Topics include the following: asymptotic complexity bounds, graph and tree algorithms, fundamental algorithmic strategies (such as greedy, divide-and-conquer, backtracking, branch-and-bound, heuristics, pattern matching and string/text algorithms), numerical approximation and dynamic programming.
CPTR295 (1-3)
Directed Computer Language Study
Directed study of computer language in consultation with the instructor. Normally, the language is not included in other courses taught by the department. A programming project may be required.
CPTR310 (3)
Database Application Programming
A study of basic database principles and web applications using technologies such as PHP, MySQL, Three Tier Architectures, scripting languages and data manipulation. Manipulating database using SQL. Sessions, authentication and security.
CPTR416 (3)
Internet Technologies
A study of current technologies and their effects, including web server software, e-commerce, various scripting languages, human-computer interaction, perception, and related issues.
CPTR425 (3)
Programming Languages
Survey of current programming languages, including structure, runtime systems, the specification of syntax, and semantics. Definition of syntax for formal languages with emphasis on context-free languages. Techniques for scanning and parsing programming languages. Automated grammar analysis parsers.
CPTR427 (3)
Object-Oriented Design and Programming
Emphasizes the study of object-oriented analysis and design methodologies and the application of these to the development of advanced software. Includes survey of object-oriented programming languages and environments.
CPTR436 (3)
Numerical Methods and Analysis
A study of common numerical techniques applicable on a computer. Includes interpolation, extrapolation, approximation techniques, numerical methods for linear problems, root finding, function fitting, numerical integration, location of extremes, efficiency of numerical algorithms, and minimization of computational error.
CPTR437 (3)
Formal Theory of Computation
Includes post productions, Turing machines, and recursive functions. Recursive and recursively enumerable sets. Undecidability results of computation.
CPTR440 (3)
Operating Systems
Process management, including asynchronous concurrent processes and deadlock. Virtual storage management and job and process scheduling. Multiprocessing. Disk scheduling and file and database systems. Performance and security.
CPTR450 (3)
Network Computing and Architecture
Concepts applicable to constructing a computer network and the application of computing algorithms and solutions using networked computers and devices. Study topics such as physical transmission media, protocols and associated layers, TCP/IP, application programming interfaces and frameworks, sockets, clustering and security.
CPTR459 (2)
Secondary Methods: Computer Science
Considers computers science programs in the secondary school and presents information and materials for teaching computer science in secondary schools. Topics include organization and maintenance of equipment, publications, legal issues, dealing with diversity of abilities, problem-solving skills, and strategies for debugging programs.
CPTR460 (3)
Software Engineering
Surveys basic software engineering topics associated with the processes, documents, and products of the entire software life cycle. Topics include software avolution, project organization, and management, feasibility studies, product definition, design, implementation, and testing issues, and the role of the software engineer within the life cycle.
CPTR465 (3)
Computer Architecture
Focus on hardware aspects of computing and logical concepts. Includes data representation for numbers and other data types, Boolean algebra, digital logic circuit representations of basic computational building blocks, CPU components, interrupt schemes and buses. Relevance of supporting concepts is discussed, including system software, assemblers, assembly language programming and operating systems.
CPTR466 (2)
Software Engineering Group Project
The implementation of a group project and the study of topics related to the group project, including CASE tools, RGL's, and graphical user interfaces. Emphasizes written documents and oral presentations associated with group project rather than lecture.
CPTR467 (3)
Database Concepts and Theory
Study of issues relevant to abstract and concrete aspects in both the creation of database management system software and its use. Indexing, buffering and other internal and physical database design issues. Relational model algebra, calculus and query languages (including SQL). Functional dependencies and normalization. Study of and modeling using Entity-Relationship and other relevant paradigms. Common application databases. Introduction to the use of transactions, query optimization and non-relational database models. Design and programming assignments using databases.
CPTR475 (1-4)
Topics in: __________
Selected topics of current interest in computer science such as Robotics, advanced languages, or others. Repeatable with different subjects.
CPTR485 (3)
Computer Graphics
Introduction to computer graphics examining raster and/or vector images, 2D and 3D images, polygons, transformations, segments, widowing, clipping, and hidden line removal.
CPTR487 (3)
Artificial Intelligence
Provides the conceptual basis for understanding current trends in Artificial Intelligence. Topics include both symbolic and numeric processing, intelligent search methods, problem representation, machine learning, expert systems, and a survey of some social implications of AI.
CPTR495 (1-3)
Independent Study
Directed study of material of special interest chosen in consultation with the instructor. No more than 6 credits may be earned in CPTR495.
CPTR496 (1-3)
Special Projects
Project chosen in consultation with instructor. No more than 6 credits may be earned in CPTR495.
CPTR536 (3)
Compiler Construction
Storage allocation for programs, subroutine linkage, and code generation and optimization. Simple translator written in course.
CPTR548 (3)
Advanced Database Systems
Database design and theory. Concurrency, distributed databases, integrity, security, query optimization, transaction processing, object-oriented databases. A survey of the design and implementation tradeoffs considered for these topics in the creation of available database packages. Includes a term project and reading from the literature.
CPTR555 (3)
Advanced Operating Systems
System structures and algorithms, reliability, security, distributed systems, study of operating systems highlighting these concepts, and recently published research in these and other areas. Includes a term project and readings from the literature.
CPTR556 (3)
Real Time Systems
A survey of the system architecture and software engineering aspects of real time systems such as operating systems, and process-control software. Includes a term project and readings from current literature.
CPTR557 (3)
Advanced Network Computing and Architecture
A study of the concepts, conceptual design and implementation of the client/server, multi-tier and distributed models of computing. Consider topics such as physical media, protocols and layers, application programming interfaces, clustering, distributed computing and security from the perspective of a programmer using these tools as well as a system programmer and architect that creates and implements such tools, algorithms and models.
CPTR560 (3)
Advanced Software Engineering
A study of applied software product development issues, including requirement analysis, systems and software design methodologies, software-project planning models (e.g., COCOMO), implementation, testing and reuse, language, tool and hardware selection, software economics, productivity measurement, risk management, statistical process evaluation, and control.
CPTR561,562 (2,2)
Software Engineering Group Project I, II
The implementation of a group project and the study of topics related to the group project including CASE tools, 4GLs and graphical user interfaces. Generally, the project begun in CPTR561 carries over to CPTR562.
CPTR568 (3)
Advanced Computer Architecture
Functional analysis of computer hardware and supporting software systems. Includes a comparative study of past, present and proposed architectures as well as computer performance analysis and optimization. Additional topics may include parallel architectures and detailed CPU design issues.
CPTR585 (3)
Advanced Computer Graphics
Advanced topics and current research in computer imaging may include shading, ray tracing, radiosity, color spaces, lighting models, texture mapping, and recently published research in computer imagery. Includes term project and readings from the literature.
CPTR587 (3)
Advanced Artificial Intelligence
Provides a forum for exploring current topics in machine intelligence through a survey of recent research results, independent readings, and hands-on projects. Typical topics include machine vision, speech recognition, natural language processing, and machine learning systems.
CPTR625 (3)
Analysis of Algorithms
Techniques for analyzing and designing algorithms, including average/worst case analysis, asymptotics, recurrences, empirical studies, intractability proofs (i.e., NP-Completeness) and heuristic alternatives. Application of techniques such as divide-and-conquer, graph, greedy, dynamic programming, backtracking, branch-and-bound, and probabilistic algorithms.
CPTR637 (3)
Formal Methods
A survey of the different paradigms associated with formal methods. Applies formal methods to the specification, verification, and validation of software systems. Case studies are examined and a programming project is included.
CPTR660 (0)
Thesis/Project Extension
CPTR689 (1-4)
Topics in: ____________
Topics in computer science such as graphics, parallel processors, compiler design and optimization, communications and signal processing, distributed systems, graph theory, artificial intelligence, and formal theory. Repeatable with different topics to 6 credits.
CPTR690 (1-4)
Independent Study
Directed study of material of special interest chosen in consultation with the instructor. May be repeated to 6 credits.
CPTR698 (1-4)
Master's Research Project
Special project chosen in consultation with student's advisor and instructor.
CPTR699 (1-6)
Master's Thesis
To be repeated up to 6 credits.
