CS-419. Principles of Programming Languages
A study of the principles that govern the design and implementation of programming languages. Topics include language structure, data types, and control structures. Programming projects will familiarize students with the features of programming languages through their implementation in interpreters.
CS-421. Simulation and Data Analysis
Methods of handling large databases including statistical analysis and computer simulations. The emphasis will be upon discrete simulation models with a discussion of relevant computer languages, SLAM, GPSS, and/or SIMSCRIPT.
CS-423. Theory of Computation
This course formalizes many topics encountered in previous computing courses. Topics include: languages, grammars, finite automata, regular expressions and grammars, context-free languages, push-down automata, Turing machines and computability.
CS-424. Systems Analysis
A study of the design and implementation of large computer projects. Special emphasis is placed on applications to business systems. Students will use a CASE tool for automated systems analysis and design.
CS-425. Database Management
Practical experience in solving a large-scale computer problem including determination of data requirements, appropriate data organization, data manipulation procedures, implementation, testing and documentation.
CS-426. Operating System Principles
Analysis of the computer operating systems including Batch, Timesharing, and Realtime systems. Topics include sequential and concurrent processes, processor and storage management, resource protection, processor multiplexing, and handling of interrupts from peripheral devices.
CS-427. Compiler Design
A study of compiler design including language definition, syntactic analysis, lexical analysis, storage allocation, error detection and recovery, code generation and optimization problems.
CS-430. Computer Architecture
A study of the design, organization, and structure of computers, ranging from the microprocessors to the latest 'supercomputers.'
CS-434. Software Engineering
A course in 'programming in the large.' Topics include software design, implementation, validation, maintenance and documentation. There will be one or more team projects. Prerequisite CS-226 or equivalent
CS-435. Advanced Database Concepts
Practical experience involving unstructured data collections. Topics cover big data, data mining, predictive modeling, decision analysis, and indexing and retrieval including probabilistic, clustering, thesauri, and passage based retrieval strategies.
CS-440. Artificial Intelligence
This course will provide an overview of artificial intelligence (AI) application areas and hands-on experience with some common AI computational tools. Topics include search, natural language processing, theorem proving, planning, machine learning, robotics, vision, knowledge-based systems (expert systems), and neural networks.
CS-450. Object-Oriented Programming
Object-oriented concepts and their application to human-computer interaction. Concepts to be covered include objects, classes, inheritance, polymorphism, design patterns, GUI interface guidelines and design of interfaces. There will be programming projects in object-oriented languages.
CS-455. Computer Networks
This course introduces basic concepts, architecture, and widely used protocols of computer networks. Topics include the Open System Interconnection (OSI) model consisting of physical link layer, data layer, network layer, transport layer, session layer, presentation layer, and application layer, medium access sublayer and LAN; various routing protocols; Transmission Control Protocol (TCP) and Internet Protocol (IP) for internetworking.
CS-463. Operations Research
A survey of operations research topics such as decision analysis, inventory models, queueing models, dynamic programming, network models, and linear programming. (Cross-listed with MTH-463)
CS-464. Numerical Analysis
An introduction to numerical algorithms as tools to providing solutions to common problems formulated in mathematics, science, and engineering. Focus is given to developing the basic understanding of the construction of numerical algorithms, their applicability, and their limitations. (Cross-listed with MTH-464)
CS-467. Computer Graphics
Introduction to equipment and techniques used to generate graphical representations by computer. Discussion of the mathematical techniques necessary to draw objects in two and three-dimensional space. Emphasis on application programming and the use of a high-resolution color raster display.
CS-483. Web Development
An introduction to the development of dynamic, database-driven sites, including active server pages, PHP, authentication, session tracking and security, and the development of shopping cart and portal systems.
CS-498. Topics in Computer Science
Variable creditStudy of one or more special topics in computer science. May be repeated for credit provided a different topic is selected.