Computer Science

Stuart Building
10 W. 31st St.
Chicago, IL 60616
312.567.5067 fax

Eunice Santos

Associate Chair
Bogdan Korel

Faculty with Research Interests
For more information regarding faculty visit the Department of Computer Science website.

The study of computer science is the inquiry into the nature of computation and its use in solving problems in an information-based society. Computer science is an evolving discipline, but it has a well-defined core of knowledge and a set of characteristic methodologies. The methods and skills required of the computer scientist include formalization and abstraction, algorithm design, programming, organization of unstructured knowledge, modeling, language development, and software system architecture and design. The graduate program in computer science at Illinois Institute of Technology stresses high achievement in both fundamental knowledge and practical problem solving. It offers the student a solid background in the core areas and exposure to cutting-edge computer technologies.

Research Facilities

The department has research computing facilities that include several state of the at computer clusters and workstations. The equipment includes a large-scale Sun “ComputerFarm” consisting of 172 processors and 562 cores connected via a Linux-based IBM cluster, an Opteron cluster from Microsoft, and a Cray XD1 Connected Management. An advanced technology Access Grid node has been installed by the department, which allows researchers, teachers, and students at different locations worldwide to interact via a network multimedia environment. Research in Data-Intensive Distributed Systems is facilitated by a 12-node cluster with 118 cores, 382 GB RAM, and 32TB of hard disk space. Research labs in the department have advanced computer work-stations with multicore servers.

Research Areas

Algorithms, artificial intelligence, bioinformatics, cloud computing, computational science, computer architecture, computer graphics, computer networking and telecommunications, computer vision, cyber security, data structures, database systems, distributed and parallel processing, I/O systems, image processing, information retrieval, machine learning, natural language processing, scientific computing, social computing, software engineering, and system software.

Accelerated Programs

The department offers accelerated courses for credit in several areas of computer science. These courses go beyond traditional core topics and are designed for working professionals who are interested in keeping abreast of rapidly changing technologies. Accelerated courses provide an opportunity for degree-seeking students at the university to complete M.S. and M.C.S. degree requirements in a shorter time period. If taken by non-degree students, these courses can be applied towards requirements for an M.S. or M.C.S. degree at the university.

Admission Requirements

Cumulative undergraduate GPA minimum: 3.0/4.0
Cumulative master of science GPA minimum (for Ph.D. applicants): 3.5/4.0

GRE minimum score for tests taken on or after Oct.1, 2011:


292 (quantitative + verbal); 2.5 analytical writing


298 (quantitative + verbal); 3.0 analytical writing


310 (quantitative + verbal); 4.0 analytical writing

TOEFL score (international students from non-English speaking countries): 70

PTE score (international students from non-English speaking countries): 47

IELTS score (international students from non-English speaking countries): 5.5

Meeting the minimum GPA and test score requirements does not guarantee admission. Test scores and GPA are just two of several important factors considered. Applicants to master’s degree programs in computer science should hold a bachelor’s degree in computer science with a minimum overall GPA of 3.0/4.0 or its equivalent. For international students from non-English speaking countries, a minimum TOEFL score of 70 is required. All applicants must submit scores from the GRE general test. (The GRE requirement is waived for applicants to the Master of Computer Science program who hold bachelor’s degrees from accredited U.S. institutions with a minimum cumulative GPA of 3.0/4.0.)  Applicants with bachelor’s degrees in other disciplines can be admitted to Master of Science or Master of Computer Science programs. However, students whose training does not include the equivalent of CS 201 (Accelerated Introduction to Computer Science), CS 330 (Discrete Structures), CS 331 (Data Structures and  Algorithms), CS 350 (Computer Organization and Assembly Language Programming) and CS 351 (Systems Programming) will be required to complete all of the courses in which a deficiency exists. Some students may be able to complete their deficiencies with the following six-credit hour sequence with grades of “B” or better.:

CS 401Introduction to Advanced Studies I3
CS 402Introduction to Advanced Studies II3

In addition, students who have not had at least one course in calculus will be required to take a calculus course.

Applicants to the Ph.D. program should hold an M.S. degree in computer science with a minimum GPA of 3.0/4.0 for their bachelor’s degree and 3.5/4.0 for their M.S. degree, or a minimum GPA of 3.5/4.0 for their bachelor’s degree if they apply without a M.S. degree. For non-English speaking applicants without a U.S. degree, a minimum TOEFL score of 70 is required.

Course Descriptions

CS 511
Topics in Computer Graphics

Covers advanced topics in computer graphics. The exact course contents may change based on recent advances in the area and the instructor teaching it. Possible topics include: Geometric modeling, Subdivision surfaces, Procedural modeling, Warping and morphing, Model reconstruction, Image based rendering, Lighting and appearance, Texturing, Natural phenomena, Nonphotorealistic rendering Particle systems, Character animation, Physically based modeling and animation.

Prerequisite(s): [(CS 411)]
Lecture: 3 Lab: 0 Credits: 3
CS 512
Computer Vision

Introduction to fundamental topics in computer vision and the application of statistical estimation techniques to this area. Intended to give the student a good basis for work in this important field. Topics include: Feature extraction, Probabilistic modeling, Camera calibration, Epipolar geometry, Statistical estimation, Model reconstruction, Statistical filtering, Motion estimation, Recognition, Shape from single image cues.

Prerequisite(s): [(CS 430)]
Lecture: 3 Lab: 0 Credits: 3
CS 513
Geospatial Vision and Visualization

Geospatial information has become ubiquitous in everyday life as evidenced by on-line mapping services such as NOKIA Here Map, Microsoft Bing Map, the "place" features on social network websites such as Facebook, and navigation apps on smart phones. Behind the scenes is digital map content engineering that enables all types of location-based services. Course material will be drawn from the instructor's research and development experience at NOKIA Location and Commerce (formerly NAVTEQ), the Chicago-based leading global provider of digital map, traffic, and location data. This course will provide a comprehensive treatment of computer vision, image processing and visualization techniques in the context of digital mapping, global positioning and sensing, next generation map making, and three-dimensional map content creations. Real world problems and data and on-site industry visits will comprise part of the course curriculum.

Lecture: 3 Lab: 0 Credits: 3
CS 520
Data Integration, Warehousing, and Provenance

This course introduces the basic concepts of data integration, data warehousing, and provenance. We will learn how to resolve structural heterogeneity through schema matching and mapping. The course introduces techniques for querying several heterogeneous datasources at once (data integration) and translating data between databases with different data representations (data exchange). Furthermore, we will cover the data-warehouse paradigm including the Extract-Transform-Load (ETL) process, the data cube model and its relational representations (such as snowflake and star schema), and efficient processing of analytical queries. This will be contrasted with Big Data analytics approaches that (besides other differences) significantly reduce the upfront cost of analytics. When feeding data through complex processing pipelines such as data exchange transformations or ETL workflows, it is easy to lose track of the origin of data. Therefore, in the last part of the course we cover techniques for representing and keeping track of the origin and creation process of data (its provenance). The course emphasizespractical skills through a series of homework assignments that help students develop a strong background in data integration systems and techniques. At the same time, it also addresses the underlying formalisms. For example, we will discuss the logic based languages used for schema mapping and the dimensional data model as well as their practical application (e.g., developing an ETL workflow with rapid miner and creating a mapping between two example schemata). The literature reviews will familiarize students with data integration and provenance research.

Prerequisite(s): [(CS 425)]
Lecture: 3 Lab: 0 Credits: 3
CS 521
Object-Oriented Analysis and Design

This course describes a methodology that covers a wide range of software engineering techniques used in system analysis, modeling and design. These techniques integrate well with software process management techniques and provide a framework for software engineers to collaborate in the design and development process. The methodology features the integration of concepts, including software reusability, frame works, design patterns, software architecture, software component design, use-case analysis, event-flow analysis, event-message analysis, behavioral-life cycle analysis, feature, multiple-product, risk and rule analysis, and automatic code generation. (Credit will not be given for CS 521 if CS751 is taken)

Prerequisite(s): [(CS 445) OR (CS 487)]
Lecture: 3 Lab: 0 Credits: 3
CS 522
Advanced Data Mining

Continued exploration of data mining algorithms. More sophisticated algorithms such as support vector machines will be studied in detail. Students will continuously study new contributions to the field. A large project will be required that encourages students to push the limits of existing data mining techniques.

Prerequisite(s): [(CS 422)]
Lecture: 3 Lab: 0 Credits: 3
CS 525
Advanced Database Organization

Comprehensive coverage of the problems involved in database system implementation and an in-depth examination of contemporary structures and techniques used in modern database management systems. Teaches advanced skills appropriate for DBMS architects and developers , database specialist, and the designers and developers of client/server and distributed systems. Focus is on transaction management, database structures and distributed processing.

Prerequisite(s): [(CS 425)]
Lecture: 3 Lab: 0 Credits: 3
CS 529
Information Retrieval

The course covers the advanced topics in Information Retrieval. The topics such as Summarization, cross-lingual, Meta-Search, Question Answering, Parallel and distributed IR systems are discussed. The students get involved in research ideas, and get involved in individual and group projects.

Prerequisite(s): [(CS 429)]
Lecture: 3 Lab: 0 Credits: 3
CS 530
Theory of Computation

Computability topics such as Turing machines, nondeterministic machines, undecidability, and reducibility. Computational complexity topics such as time complexity, NP-completeness and intractability, time and space hierarchy theorems. Introduces the complexity classes P, NP, NL, L, PSPACE, NC, RNC, BPP and their complete problems.

Prerequisite(s): [(CS 430)]
Lecture: 3 Lab: 0 Credits: 3
CS 531
Topics in Automata Theory

Topics selected from mathematical systems and automata theory, decision problems, realization and minimization, algebraic decomposition theory and machines in a category.

Prerequisite(s): [(CS 430)]
Lecture: 3 Lab: 0 Credits: 3
CS 533
Computational Geometry

This course covers fundamental algorithms and data structures for convex hulls, Voronoi diagrams, Delauney triangulation, Euclidean spanning trees, point location, and range searching. Also included are lower bounds and discrepancy theory. Optimization in geometry will be covered. This includes fixed dimensional linear programming and shortest paths. Graphic data structures such as BSP trees will be covered.

Prerequisite(s): [(CS 430)]
Lecture: 3 Lab: 0 Credits: 3
CS 535
Design and Analysis of Algorithms

Design of efficient algorithms for a variety of problems, with mathematical proof of correctness and analysis of time and space requirements. Topics include lower bounds for sorting and medians, amortized analysis of advanced data structures, graph algorithms (strongly connected components, shortest paths, minimum spanning trees, maximum flows and bipartite matching) and NP-Completeness.

Prerequisite(s): [(CS 430)]
Lecture: 3 Lab: 0 Credits: 3
CS 536
Science of Programming

Formal specification of how programs execute operational semantics , how mathematical functions programs compute denotational semantics , and how to use logic to characterize properties and invariants of the program execution (axiomatic semantics).

Prerequisite(s): [(CS 331) OR (CS 401)]
Lecture: 3 Lab: 0 Credits: 3
CS 537
Software Metrics

Theoretical foundations for software metrics. Data collection. Experimental design and analysis. Software metric validation. Measuring the software development and maintenance process. Measuring software systems. Support for metrics. Statistical tools. Setting up a measurement program. Application of software measurement.

Prerequisite(s): [(CS 487)]
Lecture: 3 Lab: 0 Credits: 3
CS 538
Combinatorial Optimization

Linear programs and their properties. Efficient algorithms for linear programming. Network flows, minimum cost flows, maximum matching, weighted matching, matroids.Prerequisite:CS 430 and a linear algebra course.

Prerequisite(s): [(CS 430)]
Lecture: 3 Lab: 0 Credits: 3
CS 539
Game Theory: Algorithms and Applications

This course focuses on computational issues in the theory of games, economics, and network design. Interest in the algorithmic aspects of games is motivated by the computational issues of fundamental aspects of games and economic theory, e.g. Nash equilibrium and market equilibrium. Computing and approximating Nash equilibrium will be studied. Of considerable interest to the computer science community are problems that arise from the Internet and computer networks and are similar to issues that arise in traditional transport networks, e.g. Wardrop equilibrium.

Prerequisite(s): [(CS 430) OR (CS 530)]
Lecture: 3 Lab: 0 Credits: 3
CS 540
Syntactic Analysis of Programming Languages

Formal definition of syntax with emphasis on context-free languages. Elementary techniques for scanning and parsing programming languages. Symbol table management. Semantic routines and code generation. The class will write a simple translator.

Prerequisite(s): [(CS 440)]
Lecture: 3 Lab: 0 Credits: 3
CS 541
Topics in Compiler Construction

Advanced topics in compiler construction, including incremental and interactive compiling, error correction, code optimization, models of code generators, etc. The objective of the course is to provide an in-depth coverage of compiler optimization techniques, including both classical optimization and areas of current interest in compiler research.

Prerequisite(s): [(CS 440)]
Lecture: 3 Lab: 0 Credits: 3
CS 542
Computer Networks I: Fundamentals

This course focuses on the engineering and analysis of network protocols and architecture in terms of the Internet. Topics include content distribution, peer-to-peer networking, congestion control, unicast and multicast routing, router design, mobility, multimedia networking quality of service, security and policy-based networking.

Prerequisite(s): [(CS 455)]
Lecture: 3 Lab: 0 Credits: 3
CS 544
Computer Networks II: Network Services

Qualitative and quantitative analysis of networks. A combination of analytical and experimental analysis techniques will be used to study topics such as protocol delay, end-to-end network response time, intranet models, Internet traffic models, web services availability, and network management.

Prerequisite(s): [(CS 542) OR (ECE 545)]
Lecture: 3 Lab: 0 Credits: 3
CS 545
Distributed Computing Landscape

Introduction to the theory of concurrent programming languages. Topics include formal models of concurrent computation such as process algebras, nets, and actors; high-level concurrent programming languages and their operational semantics; and methods for reasoning about correctness and complexity of concurrent programs.

Prerequisite(s): [(CS 450)]
Lecture: 3 Lab: 0 Credits: 3
CS 546
Parallel and Distributed Processing

This course covers general issues of parallel and distributed processing from a user's point of view which includes system architectures, programming, performance evaluation, applications, and the influence of communication and parallelism on algorithm design.

Prerequisite(s): [(CS 430 and CS 450)]
Lecture: 3 Lab: 0 Credits: 3
CS 547
Wireless Networking

This course introduces cellular/PCS systems, short-range mobile wireless systems, fixed wireless systems, satellites, and ad hoc wireless systems. It explains in detail the underlying technology as well as regulations, politics, and business of these wireless communications systems. It looks beyond the hype, examining just what is and is not possible with present-day and future wireless systems. As an advanced graduate course, it will combine extensive reading and in-class discussion of the research literature with in-depth independent research projects of students' own choosing.

Prerequisite(s): [(CS 455)]
Lecture: 3 Lab: 0 Credits: 3
CS 548
Broadband Networks

The course studies the architectures, interfaces, protocols, technologies, products and services for broadband (high-speed) multimedia networks. The key principles of the protocols and technologies used for representative network elements and types of broadband network are studied. Specifically, cable modems, Digital Subscriber Lines, Power Lines, wireless 802.16 (WiMax), and broadband cellular Internet are covered for broadband access; for broadband Local Area Networks (LANs), Gigabit Ethernet, Virtual LANs and wireless LANs (802.11 WiFi and Bluetooth) are discussed; for broadband Wide Area Networks (WANs) the topics covered include optical networks (SONET/SDH,DWDM, optical network nodes, optical network nodes, optical switching technologies), frame-relay, ATM, wire-speed routers, IP switching, and MPLS. Also, quality of service issues in broadband networks and a view of the convergence of technologies in broadband networks are covered.

Prerequisite(s): [(CS 455)]
Lecture: 3 Lab: 0 Credits: 3
CS 549
Cryptography and Network Security

This course provides an introduction to the theory and practice of cryptography and network security. The course covers conventional encryption such as classical encryption techniques, modern encryption techniques and encryption algorithms. Students are introduced to the basic number theory, which is used as the foundation for public-key encryption. The public-key cryptography such as encryption methods and digital signatures is covered. Message authentication and hash functions are also discussed. Students will learn techniques of key management, secret sharing and conducting interactive proofs. In addition, the practical network and security protocols are discussed.

Prerequisite(s): [(CS 430)]
Lecture: 3 Lab: 0 Credits: 3
CS 550
Advanced Operating Systems

Advanced operating system design concepts such as interprocess communication, distributed processing, replication and consistency, fault tolerance, synchronization, file systems. Study of systems highlighting these concepts.

Prerequisite(s): [(CS 450)]
Lecture: 3 Lab: 0 Credits: 3
CS 551
Operating System Design and Implementation

This course covers in detail the design and implementation of processes, interprocess communication, semaphores, monitors, message passing, scheduling algorithm, input/output, device drivers, memory management, file system design, security and protection mechanisms. The hardware-software interface and the user process-system call-kernel interface are examined in detail. Students modify and extend a multiuser operating system.

Prerequisite(s): [(CS 450)]
Lecture: 3 Lab: 0 Credits: 3
CS 552
Distributed Real-Time Systems

With the advancement of computer hardware, embedded devices, and network technology, real-time applications have become pervasive, ranging from smart automobiles to automated traffic control. Different from general-purpose applications, correct executions of real-time applications depend on both functional correctness and temporal correctness. This course is to study the fundamentals of distributed real-time computing with the focus on its temporal aspects.

Prerequisite(s): [(CS 450)]
Lecture: 3 Lab: 0 Credits: 3
CS 553
Cloud Computing

This course is a tour through various topics and technologies related to cloud computing. Students will explore solutions and learn design principles for building large network-based systems to support both compute-intensive and data-intensive applications across geographically distributed infrastructure. Topics include resource management, programming models, application models, system characterizations, and implementations. Discussions will often be grounded in the context of deployed cloud computing systems such as Amazon EC2 and S3, Microsoft Azure, Google AppEngine, Eucalyptus, Nimbus, OpenStack, Google's MapReduce, Yahoo's Hadoop, Microsoft's Dryad, Sphere/Sector, and many other systems. The course involves lectures, outside invited speakers, discussions of research papers, programming assignments, and a major project (including both a written report and an oral presentation).

Prerequisite(s): [(CS 450) OR (CS 455)]
Lecture: 3 Lab: 0 Credits: 3
CS 554
Data-Intensive Computing

This course is a tour through various research topics in distributed data-intensive computing, covering topics in cluster computing, grid computing, supercomputing, and cloud computing. The course will explore solutions and learn design principles for building large network-based computational systems to support data-intensive computing. This course is geared for junior/senior-level undergraduates and graduate students in computer science.

Prerequisite(s): [(CS 450)]
Lecture: 3 Lab: 0 Credits: 3
CS 555
Analytic Models and Simulation of Computer Systems

Analytic and simulation techniques for the performance analysis of computer architecture, operating systems and communication networks. Rigorous development of queuing models. Study of simulation languages and models.

Prerequisite(s): [(CS 450)]
Lecture: 3 Lab: 0 Credits: 3
CS 556
Cyber-Physical Systems: Languages and Systems

Different from general-purpose and traditional computer applications, cyber-physical systems have both continuous and discrete components, hence requiring new methodologies to integrate traditional continuous control theory/systems with traditional discrete software systems. The focus of this course is to discuss and understand the challenges in emerging cyber-physical systems and to explore possible solutions from the perspectives of systems specification, system modeling, programming languages, systems designs, and software engineering. This course will focus on the languages and systems aspects of cyber-physical systems.

Lecture: 3 Lab: 0 Credits: 3
CS 557
Cyber-Physical Systems: Networking and Algorithms

The goal of the course is to provide students with the necessary foundations to apply wireless sensor networking, scheduling theory, and algorithms in the field of computer science. The focus is to discuss and understand the challenges in emerging cyber-physical systems, open distributed real-time systems, and wireless sensor networks. The course will examine different perspectives of wireless networks such as various MAC protocols, routing protocols, scheduling protocols, localization, clock synchronization, data aggregation and data fusion, compressive and cooperative sensing, security, fault detection and diagnosis, online program, and networked control systems. The course will also examine the interaction of different systems.

Lecture: 3 Lab: 0 Credits: 3
CS 558
Advanced Computer Security

This course will teach various modern topics in network and computer security. It will provide a thorough grounding in cyber-security for students who are interested in conducting research on security and networking and for students who are more broadly interested in real-world security issues and techniques. Students will undertake a semester-long research project with the goal of technical publications. Lecture topics will include, but not limited to: (1) Unwanted traffic, such as denial of service (DoS), and spam; (2) Malware, such as botnet, worm, and virus; (3) Network configuration and defense, such as firewall, access control, and intrusion detection systems; (4) Cyber physical system security, such as critical infrastructure protection (e.g., smart grid); and (5) Hot topics, such as software-defined networking (SDN), network verification, data center and enterprise network security, web security and more.

Prerequisite(s): [(CS 450) OR (CS 455) OR (CS 458)]
Lecture: 3 Lab: 0 Credits: 3
CS 560
Computer Science in the Classroom

Emphasis on how to organize a selected computer science course. Discussion of what to teach, the problems typically encountered in teaching, and how to best organize the concepts in a computer science course.

Lecture: 3 Lab: 0 Credits: 3
CS 561
The Computer and Curriculum Content

Presentation techniques from white board to web-based instructional units using currently available software. Emphasis on incorporating the computer as a teaching tool in the presentation of class material. Single Concept Learning Modules (SCLM) are developed.

Lecture: 3 Lab: 0 Credits: 3
CS 565
Computer Assisted Instruction

Hardware and software for the effective use of the computer in an educational environment, CAI (Computer-Assisted/Aided Instruction) being one of the major areas of investigation .

Prerequisite(s): [(CS 560) OR (CS 561)]
Lecture: 3 Lab: 0 Credits: 3
CS 566
Practicum in the Application of Computers to Education

Provides supervised experience in the development of computer-based teaching units. Evaluation of different theoretical and/or technical approaches to the use of computer in the classroom.

Prerequisite(s): [(CS 560 and CS 561)]
Lecture: 1 Lab: 4 Credits: 3
CS 570
Advanced Computer Architecture

Computer system design and architecture such as pipelining and instruction-level parallelism, memory-hierarchy system, interconnection networks, multicore and multiprocessors, and storage architecture. Selected study on current experimental computer systems.

Prerequisite(s): [(CS 450 and CS 470)]
Lecture: 3 Lab: 0 Credits: 3
CS 572
Advanced Topics in Computer Architecture

Current problems in computer architecture.

Prerequisite(s): [(CS 570)]
Lecture: 3 Lab: 0 Credits: 3
CS 579
Online Social Network Analysis

This course will explore the latest algorithms for analyzing online social networks, considering both their structure and content. Fundamentals of social graph theory will be covered including distance, search, influence, community discovery, diffusion, and graph dynamics. Fundamentals of text analysis will also be covered with an emphasis on the type of text used in online social networks and common applications. Topics include sentiment classification, information extraction, clustering, and topic modeling. Emphasis will be placed on the application of this technology to areas such as public health, crisis response, politics, and marketing.

Prerequisite(s): [(CS 430)]
Lecture: 3 Lab: 0 Credits: 3
CS 580
Topics in Machine Learning

This course covers advanced topics in machine learning. The exact course contents may change based on recent advances in the area and the instructor teaching it. Possible topics include active learning, reinforcement learning, online learning, non-parametric learning, inductive learning, statistical relational learning, dimensionality reduction, ensemble methods, transfer learning, outlier detection, specific application areas of machine learning, and other relevant and/or emerging topics.

Lecture: 3 Lab: 0 Credits: 3
CS 581
Topics in Artificial Intelligence

Covers various advanced topics in AI, including both theory and practice. Content may vary by instructor. Possible topics include: Planning: STRIPs planning; Partial-order planning; Situation calculus; Theorem proving; GraphPlan/SatPlan; Transformational planning; Simulated annealing; Motion planning; Case-based reasoning; Multi-agent coordination; Negotiation planning; Representation and Reasoning: Logical representation; Frame problem; Probabilistic reasoning; Bayesian networks; Game Playing: Minimax search; Evaluation functions; Learning evaluation functions; Markov Decision Processes; Reinforcement learning for games; Developing AI agents; Multi-agent planning.

Prerequisite(s): [(CS 480)]
Lecture: 3 Lab: 0 Credits: 3
CS 582
Computational Robotics

Covers basic algorithms and techniques used in Computational Robotics, to give the student a good basis for work in this highly relevant field. Topics include: Locomotion, Non-visual sensors and algorithms, Uncertainty modeling, data fusion, State space models, Kalman filtering, Visual sensor, Sampling theory, Image features, Depth reconstruction, Multiple view geometry, Ego-motion, Active vision, Reasoning, Spatial decomposition, Geometric representations, Topological representations, Path planning, Spatial uncertainty, Active control, Pose maintenance, Dead reckoning, Correlation-based localization, Sensorial maps, Task planning and task interference, Multi-agent coordination.

Prerequisite(s): [(CS 430)]
Lecture: 3 Lab: 0 Credits: 3
CS 583
Probabilistic Graphical Models

This course will cover probabilistic graphical models -- powerful and interpretable models for reasoning under uncertainty. The generic families of models such as directed, undirected, and factor graphs as well as specific representations such as hidden Markov models and conditional random fields will be discussed. The discussions will include both the theoretical aspects of representation, learning, and inference, and their applications in many interesting fields such as computer vision, natural language processing, computational biology, and medical diagnosis.

Lecture: 3 Lab: 0 Credits: 3
CS 584
Machine Learning

Introduce fundamental problems in machine learning. Provide understanding of techniques, mathematical concepts, and algorithms used in machine learning. Provide understanding of the limitations of various machine learning algorithms and the way to evaluate performance of learning algorithms. Topics include introduction, regression, kernel methods, generative learning, discriminative learning, neural networks, support vector machines, graphical models, unsupervised learning, and dimensionality reduction.

Prerequisite(s): [(CS 430)]
Lecture: 3 Lab: 0 Credits: 3
CS 585
Natural Language Processing

An introduction to the problems of computing with human languages. Parsing. Semantic representations. Text generation. Lexicography. Discourse. Sublanguage studies. Applications to CAI, database interfaces and information retrieval.

Prerequisite(s): [(CS 430)]
Lecture: 3 Lab: 0 Credits: 3
CS 586
Software Systems Architectures

This course covers the state-of-the-art in architectural design of complex software systems. The course considers commonly-used software system architectures, techniques for designing and implementing these architectures, models and notations for characterizing and reasoning about architectures, and case studies of actual software system architectures.

Prerequisite(s): [(CS 487)]
Lecture: 3 Lab: 0 Credits: 3
CS 587
Software Project Management

Concepts of software product and process quality. Role of TQM in software project management. Use of metrics, feasibility studies, cost and effort estimates. Discussion of project planning and scheduling. The project team and leadership issues. The Capability Maturity Model: basic tenets and application of process evaluation.

Prerequisite(s): [(CS 487)]
Lecture: 3 Lab: 0 Credits: 3
CS 588
Advanced Software Engineering Development

Software development process improvement is a major objective of this course. This is achieved through a series of individual programming and process projects. Students learn to plan their projects, apply measurements, estimate size, schedule tasks, and classify defects in order to improve the quality of both their development process and their software products.

Prerequisite(s): [(CS 487)]
Lecture: 3 Lab: 0 Credits: 3
CS 589
Software Testing and Analysis

Concepts and techniques for testing and analysis of software. Software testing at the unit, subsystem, and system levels. Specification-based testing. Code-based testing. Model-based testing. Methods for test generation and validation. Static and dynamic analysis. Formal methods and verification. Reliability analysis.

Prerequisite(s): [(CS 487)]
Lecture: 3 Lab: 0 Credits: 3
CS 590
Seminar in Computer Science

Investigation and discussion by faculty and students concentrated on some topic of current interest. May be taken more than once. Prerequisite: Instructor permission required.

Lecture: 0 Lab: 0 Credits: 3
CS 591
Research and Thesis of Masters Degree

Instructor permission required.

Credit: Variable
CS 594
Research Problems

Instructor permission required.

Credit: Variable
CS 595
Topics in Computer Science

This course will treat a specific topic, varying from semester to semester, in which there is a particular student or staff interest. May be taken more than once.

Credit: Variable
CS 597
Reading and Special Problems

May be taken more than once. (Credit: Variable) Instructor permission required.

Credit: Variable
CS 612
Topics in Computer Vision

Covers advanced topics in computer vision to enhance knowledge of students interested in this highly important area. The topics in this course may change between semesters depending on the instructor teaching the course and the current state of the art in this area. Possible topics include: Image based modeling and rendering, Multiple view geometry, Auto-calibration, Object recognition, Motion analysis, Tracking, Perceptual user interfaces, Face and gesture recognition, Active vision.

Prerequisite(s): [(CS 512)]
Lecture: 0 Lab: 0 Credits: 3
CS 630
Advanced Topics in Algorithms

Theoretical analysis of various types of algorithms. Topics vary, and may include approximation, quantum, on-line, distributed, randomized, and parallel algorithms. Requires CS 430. Instructor permission required.

Prerequisite(s): [(CS 430)]
Lecture: 3 Lab: 0 Credits: 3
CS 642
Advanced Topics in Networking

Introduction to advanced networking research. A particular focus area will be considered, keeping current with advances in computer networking. Quantitative methods will be emphasized.

Prerequisite(s): [(CS 542)]
Lecture: 3 Lab: 0 Credits: 3
CS 681
Topics in Computational Linguistics

CS 585 Covers various topics in linguistics as they may be applied to various computational problems in AI, NLP, or IR. The topics in this course may change between semesters depending on the instructor teaching the course and the current state of the art in this area. Possible topics include: Systemic Functional Linguistics, Clausal structure, Group structure, Complex structure, Cognitive Linguistics, Process semantics.

Prerequisite(s): [(CS 585)]
Lecture: 3 Lab: 0 Credits: 3
CS 689
Advanced Topics in Software Engineering

Course content is variable and reflects the current trends in software engineering. Instructor permission required.

Lecture: 3 Lab: 0 Credits: 3
CS 691
Research and Thesis Ph.D.

Instructor permission required.

Credit: Variable
CS 695
Doctoral Seminar

Doctoral seminar.

Lecture: 0 Lab: 0 Credits: 1
CS 750
Computer Aided Software Engineering

This course presents the state-of-the-art of computer-aided software engineering technologies. CASE encompasses a collection of automated tools and methods that provide automated support to the software specification, design, development, testing, maintenance, and management of large and complex software systems. Students will develop working understanding of CASE methodologies and tools.

Prerequisite(s): [(CS 487)]
Lecture: 2 Lab: 0 Credits: 2
CS 763
Automated Software Testing

This course will examine both the state-of-the-art and the state-of-practice in automated software testing on a system level and an unit level. Relevant issues include theoretical foundations of automated testing, automation tools and techniques, empirical studies and industrial experience. Key topics include, but are not limited to: Fundamentals of automated software testing, automated test design, modeling and generation, automated test execution, automated test management, automated test metrics, automated tools, automated feature and regression testing Environments to support cost-effective automated software testing, discussions on the barriers to industrial use of automated testing.

Prerequisite(s): [(CS 487)]
Lecture: 2 Lab: 0 Credits: 2
CSP 527
Client-Server Applications Development

Through hands-on experience in developing a client-server database project and developing and managing a client-server Internet project, this course teaches advanced skills for effective design and implementation of client-server applications. Students will examine the architectural and functionality decisions, technologies, configurations, languages, and techniques associated with client-server systems. Active/passive client-server technologies, as well as public, enterprise-wide, and inter-enterprise approaches to decision and operation support are discussed and implemented.

Prerequisite(s): [(CS 425)]
Lecture: 3 Lab: 0 Credits: 3
CSP 541
Internet Technologies

This course focuses on the technologies and protocols used by Internet WAN's and LAN's. The fundamental architecture, organization, and routing principles of the Internet are described. Part of the course will focus on emerging Internet technologies.

Prerequisite(s): [(CS 455)]
Lecture: 3 Lab: 0 Credits: 3
CSP 542
Internet Design and Analysis

This course examines the principles for network design. The design process is studied from requirements gathering to deployment. The student will gain experience in estimating application load, network sizing, component choice, and protocol choice. Internetworking between popular components and protocols will be studied. Analytical and simulation techniques are described and used to design several local- and wide-area networks.

Prerequisite(s): [(CS 455)]
Lecture: 3 Lab: 0 Credits: 3
CSP 543
Multimedia Networking

This course covers the architectures, protocols, and design issues for multimedia networks. Topics covered include coding, compression, streaming, synchronization, QoS, and adaptation. Current tools for multimedia networking will be surveyed. Issues with multimedia application development will be explored. Students will design and develop multimedia applications.

Prerequisite(s): [(CS 455)]
Lecture: 3 Lab: 0 Credits: 3
CSP 544
System and Network Security

This course will present an in-depth examination of topics in data and network security such as: Access control, authentication, security assessment, network and data security tools, and security policies. A significant hands-on component includes network incidents to detect and fix.

Prerequisite(s): [(CS 430 and CS 455)]
Lecture: 3 Lab: 0 Credits: 3
CSP 545
Wireless Networking Technologies and Applications

This course will present the foundation of wireless technologies and examine state-of-the-art wireless systems, services, network technologies, and security.

Prerequisite(s): [(CS 542)]
Lecture: 3 Lab: 0 Credits: 3
CSP 550
Internet Programming

This course discusses current fundamental concepts and development techniques for distributed applications. Topics covered include multithreaded programs, sockets, message-passing systems, remote method invocation and procedure calls, peer-to-peer networks, and underlying technologies for internet applications.

Prerequisite(s): [(CS 450)]
Lecture: 3 Lab: 0 Credits: 3
CSP 551
Advanced UNIX Programming

This course provides a hand-on introduction to UNIX programming topics such as standard application programmer interfaces, concurrent programming, UNIX processes and threads, shell programming, UNIX interprocess communications, client-server designs, and application portability.

Prerequisite(s): [(CS 450)]
Lecture: 3 Lab: 0 Credits: 3
CSP 570
Data Science Seminar

This required seminar course surveys current applications of data science, bringing in lecturers from industry and academia to discuss real-world problems and how they are addressed within a data analytic framework. Students are required to attend all lectures and to give a short presentation or paper on one of the topics at the end of the semester. Permission is required from the instructor or department.

Lecture: 0 Lab: 0 Credits: 0
CSP 571
Data Preparation and Analysis

Surveys industrial and scientific applications of data analytics with case studies including exploration of ethical issues via case studies. Students will work with a variety of real world data sets and learn how to prepare data sets for analysis by cleaning and reformatting. We will also cover a variety of data exploration techniques including summary statistics and visualization methods.

Lecture: 3 Lab: 0 Credits: 3
CSP 572
Data Science Practicum

Students will work in small groups to solve real-world data analysis problems for actual scientific or industrial clients. Innovation and clarity of presentation will be key elements of evaluation. Students will also have an option to fulfill course requirements through a data analytics internship with an industry partner.

Lecture: 0 Lab: 0 Credits: 6
CSP 581
Applied Artificial Intelligence Programming

To learn AI programming algorithms and techniques in common lisp. Time is split between common Lisp topics and discussions of implementation strategies for AI algorithms.

Prerequisite(s): [(CS 440)]
Lecture: 3 Lab: 0 Credits: 3
CSP 585
Object-Oriented Design Patterns

This course introduces the principles of design patterns for Object-Oriented software systems. A catalog of design patterns is shown, to illustrate the roles of patterns in designing and contracting complex software systems. The catalog of design patterns also provides a pragmatic reference to a well-engineered set of existing patterns currently in use. Also discussed is the impact of post-object oriented software development on design patterns.

Prerequisite(s): [(CS 445)]
Lecture: 3 Lab: 0 Credits: 3
CSP 586
Software Modeling Development with UML

Students will obtain a significant exposure to the UML technology. This will include exposure to modeling, model-driven development, executable models, and round-trip engineering.

Prerequisite(s): [(CS 445) OR (CS 487)]
Lecture: 3 Lab: 0 Credits: 3
CSP 587
Software Quality Management

Students will learn methods of software quality management. this will include exposure to software quality assurance, quality measures, and quality control. These quality management methods will be explained at the applications level.

Prerequisite(s): [(CS 487)]
Lecture: 3 Lab: 0 Credits: 3
CSP 595
Topics in Computer Science Professional Master

Lecture: 3 Lab: 0 Credits: 3
SCI 511
Project Management

Successful project management links the basic metrics of schedule adherence, budget adherence, and project quality. But, it also includes the 'people components' of customer satisfaction and effective management of people whether it is leading a project team or successfully building relationships with co-workers. Through course lectures, assigned readings, and case studies, the basic components of leading, defining, planning, organizing, controlling, and closing a project will be discussed. Such topics include project definition, team building, budgeting, scheduling, risk management and control, evaluation, and project closeout.

Lecture: 3 Lab: 0 Credits: 3
SCI 522
Public Engagement for Scientists

This course presents strategies for scientists to use when engaging a variety of audiences with scientific information. Students will learn to communicate their knowledge through correspondence, formal reports, and presentations. Students will practice document preparation using report appropriate formatting, style, and graphics. Written assignments, discussion questions, and communication exercises will provide students with a better understanding of the relationship between scientists and their audiences whether in the workplace, laboratory, etc.

Lecture: 3 Lab: 0 Credits: 3