I. Mandatory Courses:

8070512 - Advanced Operating Systems - (3 Lecture/Recitation/Discussion Credit Hours)

Parallel and distributed operating systems. Load sharing, scheduling, reliability, recovery, memory management. Distributed file systems, distributed agreement, and object-oriented operating systems.  

(Prerequisites: Operating Systems and Computer Architecture)

8070520 - Advanced Computer Architecture - (3 Lecture/Recitation/Discussion Credit Hours)

Instruction set architecture. Pipelining, vector processors, cache memory, high bandwidth memory design, virtual memory, input and output. Benchmarking techniques. New developments related to single CPU systems.

(Prerequisites: Operating Systems, Computer Architecture)

8070530 - Design and Theory of Algorithms (3 Lecture/Recitation/Discussion Credit Hours)

Analysis of algorithms. Algorithm design techniques. Efficient algorithms for classical problems. Intractable problems and techniques to handle them.

(Prerequisites: Algorithms and Data Structures, Computability and Formal Language Theory)

8070565 - Design of Programming Languages - (3 Lecture/Recitation/Discussion Credit Hours)

Syntax and Semantics, Data Types, Control, Object-Oriented Languages, Functional Programming Languages, Logic Programming, Parallel Programming. Applications. 

(Prerequisites: Formal languages and Compiler Design)

8070580 - Advanced Database Systems (3 Lecture/Recitation/Discussion Credit Hours)

Distributed and object-oriented databases and knowledgebase systems. Design theory, query optimization, and transaction processing.

(Prerequisites: Database Systems)


II. Elective Courses:

8070502 - Pattern Recognition and Analysis - (3 Lecture/Recitation/Discussion Credit Hours)

Algorithms for classifying and understanding data. Statistical and syntactic methods, supervised and unsupervised machine learning. Cluster analysis and ordination. Exploratory data analysis. Methodology for design of classifiers.

(Prerequisites: Algorithms and Data Structures, Linear Algebra, Probability and Statistics)

8070503 - Computer Vision - (3 Lecture/Recitation/Discussion Credit Hours)

Visual information processing problems. Human and machine vision systems. Image formation and transforms. Encoding, enhancement, edge detection, segmentation. 2D and 3D object description and recognition. Scene analysis. Applications.

(Prerequisite: Algorithms and Data Structures, Linear Algebra and Probability and Statistics)

8070507 - Computer System Performance and Measurement - (3 Lecture/Recitation/Discussion Credit Hours)

Queuing network modeling, general analytic techniques, workload characterization, representing specific subsystems, parameterization. Software and hardware monitors, performance measures. Case studies, software packages.

(Prerequisites: Operating Systems, Probability and Statistics)

8070508 - Modelling and Discrete Simulation - (3 Lecture/Recitation/Discussion Credit Hours)

Simulation examples and languages. Mathematical models, Petri Nets, model validation, random variant generation. Analysis of simulation data. Case studies.

(Prerequisites: Algorithms and Data Structures, Probability and Statistics)

8070509 - Neural Networks - (3 Lecture/Recitation/Discussion Credit Hours)

Neuron models: McCulloch-Pitts model, nearest neighbor model. Neural network models: multilayer perception, nearest neighbor based multilayer perception, associative memory. Learning algorithms: the back propagation algorithm, self-organization learning, winner-take-all competitive learning, and evolutionary learning. Applications: character recognition, signal restoration.

(Prerequisites: 8070530)

8070514 - Formal Methods in Software Development - (3 Lecture/Recitation/Discussion Credit Hours)

Formal specification languages, integrating verification with development. Design and implementation of term project.

(Prerequisites: Mathematical Logic)

8070516 - Genetic Algorithms - (3 Lecture/Recitation/Discussion Credit Hours)

Biological Background, Search Space, Genetic Algorithms: Operators, Parameters, Selection, Encoding, Crossover and Mutation. GA Examples and Applications.

(Prerequisites: 8070530)

8070522 - Parallel Processing Computer Systems - (3 Lecture/Recitation/Discussion Credit Hours)

Massively parallel SIMD processors, multiprocessor architectures, interconnection networks, synchronization and co. Memory and address space management, process management and scheduling. Parallel compilers, languages, performance evaluation.

(Prerequisites: 8070520)

8070524 - Advanced Computer Networks and Communications - (3 Lecture/Recitation/Discussion Credit Hours)

Advanced topics in emerging computer networking technologies, including high-speed wide area networks and local area networks, wireless and mobile computing networks, optical networks, and multimedia networking.

(Prerequisites: Computer Networks)

8070526 - Agents Technology - (3 Lecture/Recitation/Discussion Credit Hours)

Action selection and planning, Collaboration between people and agents, Communication between people and agents, Expert assistants. Agent architectures, Interacting with stochastic environments, Reinforcement learning, Multi-agent systems, Game theory and auctions.

(Prerequisites: 8070541)

8070535 - Algorithmic Graph Theory - (3 Lecture/Recitation/Discussion Credit Hours)

Classical concepts in Graph Theory. Algorithmic aspects of graphs such as finding paths, network flow, spanning trees and matching.

(Prerequisites: Algorithms and Data Structures, Computability and Formal Language Theory, Linear Algebra)

8070538 - Design of Parallel Algorithms - (3 Lecture/Recitation/Discussion Credit Hours)

Current research topics and issues. Models of parallel computation. Implementation of algorithms on SIMD and MIMD machines. Relationship to VLSI.

(Prerequisites: Computer Architecture, 8070530)

8070541 - Artificial Intelligence - (3 Lecture/Recitation/Discussion Credit Hours)

Types of intelligence, knowledge representation, cognitive models. Goal-based systems, heuristic search and games, expert systems. Language understanding, robotics and computer vision, theorem proving and deductive systems, and learning.

(Prerequisites: Artificial Intelligence and Symbolic Programming)

8070543 - Virtual Reality - (3 Lecture/Recitation/Discussion Credit Hours)

Stereoscopic display, Force feedback simulation, haptic devices, viewer tracking, collision detection, visibility computation, time-critical rendering, multiple levels of details (LOD), Image-base VR system, Distributed VR, collaboration over computer network, Interactive modeling, User interface issues, Applications in medicine, simulation, and training.

(Prerequisites: Computer Graphics)

8070545 - Introduction and Laboratory in Knowledge-Based Systems - (3 Lecture/Recitation/Discussion Credit Hours, 3 Lab Hours)

Principled development and deployment of knowledge-based systems. Extensive reading in the historical literature of rule-based systems and approaches to task specific architectures for problem solving. Issues in knowledge acquisition, design problem solving, and qualitative modeling.

(Prerequisites: 8070541 or equivalent)

8070547 - Machine Learning - (3 Lecture/Recitation/Discussion Credit Hours)

Computational study of learning and data mining. Strengths and limitations of various learning paradigms, including supervised learning, learning from scalar reward, unsupervised learning, and learning with domain knowledge.

(Prerequisites: 8070541, Artificial Intelligence, and Symbolic Programming)

8070550 - Multimedia - (3 Lecture/Recitation/Discussion Credit Hours)

Multimedia data technologies. Compression and decompression. Multimedia applications and content authoring. Multimedia servers and file systems. Networked and distributed multimedia systems.

(Prerequisites: Computer Graphics)

8070555 - Net-Centric Computing - (3 Lecture/Recitation/Discussion Credit Hours)

Introduction to net-centric computing . The Web as an example of client-server computing. Building Web applications. Communication and networking. Distributed object systems. Collaboration technology and groupware.

(Prerequisites: Computer Networks, Operating Systems)

8070560 - Foundations of Computing - (3 Lecture/Recitation/Discussion Credit Hours)

Models of computation: Partial recursive functions, Turing machines, alternative models of computing. Basic theory and limitations of computability. Undecidability. Resource-bounded computational complexity, non-determinability, NP-completeness.

(Prerequisites: Computability and Formal Language Theory)

8070570 - Advanced Software Engineering - (3 Lecture/Recitation/Discussion Credit Hours)

Methods and techniques supporting later lifecycle activities, including software testing and maintenance, reuse, and reverse engineering. Domain-specific and visualization techniques.

(Prerequisites: Software Engineering)

8070575 - Human Computer Interaction - (3 Lecture/Recitation/Discussion Credit Hours)

Principles of HCI. Modeling the user. Interaction. Window management system design. Help systems. Evaluation techniques. Computer-supported collaborative work.

(Prerequisites: 8070570)

8070585 - Artificial Neural Networks - (3 Lecture/Recitation/Discussion Credit Hours)

Overview of neuro-engineering technology. Basic neural network architectures. Feed forward and feedback networks. Temporal modeling. Supervised and unsupervised learning. Implementation. Basic applications to pattern recognition.

(Prerequisites: 8070509)

8070588 - Social, Ethical, and Professional Issues - (3 Lecture/Recitation/Discussion Credit Hours)

Short introductory of each of the topics: History of computing; Social context of computing; Methods and tools of analysis; Professional and ethical responsibilities; Risks and liabilities of safety-critical systems; Intellectual property; Privacy and civil liberties; Social implications of the Internet; Computer crime; Economic issues in computing; Philosophical foundations of ethics.

(Prerequisites: Consent of Department)

8070590 - Independent Study - (Variable from 1 to 3 Credit Hours)

Independent study of some topic, system, or language not covered in a regular course.

(Prerequisite: Consent of Department)

8070591 - Selected Topics - (Variable from 1 to 3 Credit Hours)

Selected topics in computer science of current interest and importance but not covered in a regular course.

(Prerequisite: Consent of Department)

8070599 - Master's Thesis Research - (Variable from 1 to 6 Credit Hours-Reenrollment)

Master's degree Plan A: individual student original research that will lead to an MS Thesis.

(Prerequisite: Consent of Department)

8070598 - Master's Project Research - (Variable from 1 to 6 Credit Hours-Reenrollment)

Master's degree Plan B: individual student project; original research, research replication, or survey and reporting on a topic such as system design and development, or system conversion or installation.

(Prerequisite: Consent of Department)