Courses Catalog

Graduate Course

5014: RESEARCH METHODS IN COMPUTER SCIENCE

Prepares students for computer science research, technical communication, and design and evaluation of experiments.

5024: MODELS AND ANALYSIS

Provide students with knowledge of the tools and models for the non-determinism inherent in computer systems, sets, combinatorics, and probability. Specific studies of queueing systems, fault tolerance, information coding, and data security are also examined.

5034: MODELS OF COMPUTATION

Formal models for computational processes and their meaning. Formal languages, automata, and computability. Semantics of programming languages. Properties of programs. Techniques of abstraction and specification. Co: 5024. (3H,3C). I.

5044: Object-Oriented Programming with Java (MIT only)

This course covers the basic concepts of object-oriented programming and their relationships to the principles of software engineering. Emphasis is placed on the programming structures of interfaces, classes, objects, inheritance, and polymorphism and how these structures aid in the development of extensible software systems. Practical experience is gained in the design, construction, and debugging of systems in a strongly-typed object oriented language such as Java. This course provides the programming skills needed for developing software in other courses, and provides the context for more advanced modules that deal with software engineering and project management. (3H, 3C).

5104: COMPUTABILITY AND FORMAL LANGUAGES

Formal theory of computability, the halting problem, models of computation, and Church's thesis, and formal languages. X-grade allowed. Pre: 5034; (3H,3C). II.

5114: THEORY OF ALGORITHMS

Methods for constructing and analyzing algorithms. Measures of computational complexity, determination of efficient algorithms for a variety of problems such as searching, sorting and pattern matching. Geometric algorithms, mathematical algorithms, and theory of NP-completeness. Pre: 5034; (3H,3C). II.

5204: OPERATING SYSTEMS

Issues in the design and functioning of operating systems. Emphasis on synchronization of concurrent activity in both centralized and distributed systems. Deadlock, scheduling, performance analysis, operating system design, and memory systems including distributed file systems. Pre: 3204, 5034; (3H,3C). II.

5214: MODELING AND EVALUATION OF COMPUTER SYSTEMS

An overview of modeling, simulation, and performance evaluation of computer systems, i.e., operating systems, database management systems, office automation systems, etc. Fundamentals of modeling, the life cycle of a simulation study, workload characterization, random number and variate generation, procurement, measurement principles, software and hardware monitors, capacity planning, system and program tuning, and analytic modeling. (3H,3C).II.

5224: SYSTEMS SIMULATION

An in-depth treatment of systems simulation and simulation programming languages (SPLs). Input data modeling, simulation model formulation and representation, conceptual frameworks for modeling, a comparative study of some SPLs, principles of SPL design, statistical analysis of simulation output data, credibility assessment stages, model development environments. Pre: 5204 and STAT 4105 or 4714 or 4705; (3H,3C). I.

5244: INTERNET SOFTWARE (MIT Only)

This course covers the languages and technologies needed to develop software for the Internet and world-wide web. Advanced Java technologies for distributed computation, component-based systems, interoperability with legacy systems, and database access are presented. Principles and technologies for agent-based systems and electronic commerce are also studied.

5304: TRANSLATOR DESIGN AND CONSTRUCTION

Fundamental theory of parsing and translation and practical applications of this theory. Lexical analysis, parsing techniques based on top-down (LL, Recursive Descent) and bottom-up (LR, Precedence), code generation, code optimization techniques, and runtime systems. Pre: 4114 or 5034; (3H,3C). II.

5314: PROGRAMMING LANGUAGES

In-depth investigation of the principles of programming systems, not necessarily restricted to programming languages, both from the point of view of the user implementor. Algorithms of implementation, syntax and semantic specification systems, block structures and scope, data abstraction and aggregates, exception handling, concurrency, and applicative/functional/data-flow languages. Pre: 4114; (3H,3C). II.

5465-5466 (MATH 5465-5466): NUMERICAL ANALYSIS

A survey of the construction, analysis, and implementation of numerical algorithms in linear algebra, nonlinear equations and optimization, approximation by polynomials, quadrature, and ordinary differential equations. Pre: 4525 or equivalent and a high-level programming language; (3H,3C). 5465: I; 5466: II.

5474 (MATH 5474): FINITE DIFFERENCE METHODS FOR PARTIAL DIFFERENTIAL EQUATIONS

Finite difference methods for initial and boundary value problems for partial differential equations. Consistency, stability, convergence, dispersion, and dissipation. Methods for linear and nonlinear elliptic and parabolic equations, first- and second-order hyperbolic equations, and nonlinear conservation laws. Pre: 3414 and 4525 or Equivalent and a high-level programming language; (3H,3C). I.

5484 (MATH 5484): FINITE ELEMENT METHODS FOR PARTIAL DIFFERENTIAL EQUATIONS

Weak formulations of boundary-value problems for elliptic partial differential equations. Finite element spaces. Approximation theory for finite element spaces. Error estimates. Effects of numerical integration and curved boundaries. Nonconforming methods. Concrete examples of the application of the finite element method. Efficient implementation strategies. Time dependent problems. Pre: 3414 and 4525 or Equivalent, and a high-level programming language; (3H,3C). II.

5485, 5486 (MATH 5485, 5486): NUMERICAL ANALYSIS AND SOFTWARE

Presentation and analysis of numerical methods for solving common mathematical and physical problems. Methods of solving large sparse linear systems of equations, algebraic eigenvalue problems, and linear least squares problems. Numerical algorithms for solving constrained and unconstrained optimization problems. Numerical solutions of nonlinear algebraic systems. Convergence, error analysis. Hardware and software influences. Efficiency, accuracy, and reliability of software. Robust computer codes. Pre: MATH 4445 and MATH 4446; (3H,3C). I,II.

5504 (EE 5504): COMPUTER ARCHITECTURE (formerly 5515)

Advanced computer architectures, focusing on multiprocessor systems and the principles of their design. Parallel computer models, program and network properties, principles of scalable designs. Case studies and example applications of pipeline processors, interconnection networks, SIMD and MIMD processors. Pre: EE 4504 or CS 4504; (3H,3C). I,II.

5525: DATA ANALYTICS

Basic techniques in data analytics including the preparation and manipulation of data for analysis and the creation of data files from multiple and dissimilar sources. The data mining and knowledge discovery process. Overview of data mining algorithms in classsification, clustering, association analysis, probabilistic modeling, and matrix decompositions. Detailed study of classification methods including tree-based methods, Bayesian methods, logistic regression, ensemble, bagging and boosting methods, neural network methods, use of support vectors and Bayesian networks. Detailed study of clustering methods including k-means, hierarchical and self-organizating map methods. Cross-listed with STAT 5525. (3H,3C).

5526: DATA ANALYTICS II

This course covers the fundamental theories and practical algorithms for data analytics from a variety of perspectives. Topics include: Bayesian learning theory, linear models, linear and logistic regressions, discriminant analysis, neural network, support vector machines, kernel methods, graphical models, and hidden Markov models. The key objectives of this course are two-fold: (1) to teach the theoretical concepts of data analytics and (2) to provide extensive hands-on experience in applying the concepts to real-world applications. Cross-listed with STAT 5526. (3H,3C).

5560: NETWORK AND COMPUTER SECURITY

Introduces both fundamental security principles as well as real-world applications of network and computer security. Covers a wide range of topics including authorization and access control, basic cryptography, authentication systems, e-commerce security, sensor network security, and legal and ethical issues. (3H, 3C).

5565 (EE 5565): NETWORK ARCHITECTURE AND PROTOCOLS (formerly 5516)

Local area networks, wide area networks, and internets. Protocols and the ISO Open Systems Interconnect reference model. Design, analysis, and performance evaluation. Emphasis on data link, network, and transport protocols. Pre: EE 4504 or CS 4504; (3H,3C). I,II.

5566: NETWORK ARCHITECTURE AND PROTOCOLS II

Performance evaluation, design, and management of networks. Use of queuing and other analytical methods, simulation, and experimental methods to evaluate and design networks and protocols. Network management architectures and protocols. Pre: 5565. (3H, 3C).

5604: INFORMATION STORAGE AND RETRIEVAL

Analyzing, indexing, representing, storing, searching, retrieving, processing and presenting information and documents using fully automatic systems. The information may be in the form of text, hypertext, multimedia, or hypermedia. The systems are based on various models, e.g., Boolean logic, fuzzy logic, probability theory, etc., and they are implemented using inverted files, relational thesauri, special hardware, and other approaches. Evaluation of the systems' efficiency and effectiveness. Pre: Graduate standing; (3H,3C). I.

5614: DATABASE MANAGEMENT SYSTEMS

Emphasizes concepts, data models, mechanisms, and language aspects concerned with definition, organization, and manipulation of data at a logical level. Concentrates on relational model, plus some semantic, logic-based, object-oriented, and knowledge-based modeling. Functional dependency and normalization of relations. Relational algebra, relational calculus, mapping languages, graphical languages.

5624: INTRODUCTION TO DATA MINING

This course examines the basic principles of data mining, including data analysis and uncertainty, modeling, data mining algorithms, patterns and rules discovering, spatial-temporal data analysis, data integration and management, and various data mining applications. (3H,3C). I.

5704: SOFTWARE ENGINEERING

Study of the principles and tools applicable to the methodical construction and controlled evolution of complex software systems. Tools for all phases of the life cycle are presented; particular attention focuses on the design, testing, and maintenance phases. Attention to measurement models of the software process and product which allow quantitative assessment of cost, reliability, and complexity of software systems. Pre: 5034; (3H,3C). I.

5714 (ISE 5714): USABILITY ENGINEERING

Design and evaluation of effective user interfaces, beginning with principles for designing the product. Development process for user interaction separate from interactive software development. Development process includes iterative life cycle management, systems analysis, design, usability specifications, design representation techniques, prototyping, formative user-based evaluation. Integrative and cross-disciplinary approach with main emphasis on usability methods and the user interaction development process. Pre: Graduate standing; (3H,3C). II. Alternate years.

5724: MODELS AND THEORIES OF HUMAN-COMPUTER INTERACTION

Survey of models and theories of users and their use of computer equipment; conditions of application for various approaches. Task analysis, task modeling, representations and notations. Pre: Graduate standing; (3H,3C). I.

5734: COMPUTER-SUPPORTED COOPERATIVE WORK

Review and critique of state-of-the-art computing systems supporting cooperative work. Introduction to toolkits, software architectures and implementation issues relevant to development of systems for cooperative work. Analysis of group interactions and concerns in collaborative activities such as writing, design, meetings, communication, and decision-making. Pre: Graduate standing; (3H,3C). II. Alternate years.

5744: SOFTWARE DESIGN AND QUALITY (MIT Only)

This course focuses attention on critical aspects of the software lifecycle that have significant influence on the overall quality of the software system including: (1) techniques and approaches to software design, (2) quantitative measurement and assessment of the system during implementation, testing, and maintenance, and (3) the role of verification and validation in assuring software quality.

5804: INTRODUCTION TO ARTIFICIAL INTELLIGENCE

A graduate level overview of the areas of knowledge representation, machine vision, natural language processing, search, logic and deduction, problem solving, planning, and robotics. Pre: Knowledge of data structures; (3H,3C). I.

5814: DIGITAL PICTURE PROCESSING

Representation and processing of greytone images. Construction and simulation of grey scales, digitization, thresholding, local neighborhood operations, template matching and filtering, enhancement and restoration, segmentation, connected components, matching, morphology. Pre: 1706 and MATH 1114; (3H,3C). II.

5894: FINAL EXAMINATION

Pass/fail only. (3H,3C).

5904: PROJECT AND REPORT

Variable credit course.

5944: GRADUATE SEMINAR

Pass/fail only. (1H,1C).

5974: INDEPENDENT STUDY

Pass/fail only. Variable credit course.

5984: SPECIAL STUDY

5994: RESEARCH AND THESIS

Variable credit course.

6104: ADVANCED TOPICS IN THEORY OF COMPUTATION

This course treats a specific, advanced topic of current research interest in the area of theory of computation. Papers from the current literature or research monographs are likely to be used instead of a textbook. Student participation in a seminar style format may be expected. Pre: 5104 or 5114; (3H,3C). I. Even years.

6204: ADVANCED TOPICS IN SYSTEMS

This course treats a specific advanced topic of current research interest in the area of systems. Papers from the current literature or research monographs are likely to be used instead of a textbook. Student participation in a seminar style format may be expected. Pre: 5204 or 5214; (3H,3C). II. Even years.

6304: ADVANCED TOPICS IN LANGUAGES AND TRANSLATION

This course treats a specific advanced topic of current research interest in the area of languages and translation. Papers from the current literature or research monographs are likely to be used instead of a textbook. Student participation in a seminar style format may be expected. Pre: 5304 or 5314; (3H,3C). I. Even years.

6404: ADVANCED TOPICS IN MATHEMATICAL SOFTWARE

This course treats a specific advanced topic of current research interest in the area of mathematical software. Papers from the current literature or research monographs are likely to be used instead of a textbook. Student participation in a seminar style format may be expected. Pre: 5485; (3H,3C). II. Odd years.

6504: ADVANCED TOPICS IN COMPUTER ARCHITECTURE

This course treats a specific advanced topic of current research interest in the area of architecture. Papers from the current literature or research monographs are likely to be used instead of a textbook. Student participation in a seminar style format may be expected. Pre: 5515 or 5516; (3H,3C). II. Odd years.

6564: MULTIMEDIA NETWORKING

This course examines and explores recent advances in multimedia networking technologies. Major topics include multimedia compression and standards, quality of service (QoS) support mechanisms and protocols, performance analysis, network calculus, IP multicasting, Internet multimedia applications, and multimedia transport over wireless networks. Pre: 5565. (3H,3C) I.

6570: Advanced Foundations of Networking

This course covers mathematical foundations that are necessary for theoretical study of networking. It focuses on algorithms and optimization techniques that are most commonly used to solve complex problems in networking. Major topics include complexity theory with applications to networking problems, design and proof of approximation algorithms, design of meta-heuristic algorithms, formulation techniques for network optimization, linear and non-linear optimization techniques with applications to networking, design of distributed algorithms with proof of convergence for networks systems. Pre: 5565. (3H, 3C).

6604: ADVANCED TOPICS IN DATA AND INFORMATION

This course treats a specific advanced topic of current research interest in the area of data and information. Papers from the current literature or research monographs are likely to be used instead of a textbook. Student participation in a seminar style format may be expected. Pre: 5604 or 5614; (3H,3C). II. Even years.

6704: ADVANCED TOPICS IN SOFTWARE ENGINEERING

This course treats a specific advanced topic of current research interest in the area of software engineering. Papers from the current literature or research monographs are likely to be used instead of a textbook. Student participation in a seminar style format may be expected. Pre: 5704 or 5714; (3H,3C). I. Odd years.

6724: ADVANCED TOPICS IN HUMAN-COMPUTER INTERACTION

Addresses a specific advanced topic of current research interest in the area of human-computer interaction (HCI). Research monographs and papers from the current literature will be used as a source of material too new yet to be in a textbook. Student participation in a seminar-style format. Each offering of this course will address a different subtopic area of HCI. May be repeated for credit. Pre: 5714 or 5724 or 5734; (3H,3C). I.

6804: ADVANCED TOPICS IN INTELLIGENT SYSTEMS

This course treats a specific advanced topic of current research interest in the area of intelligent systems. Papers from the current literature or research monographs are likely to be used instead of a textbook. Student participation in a seminar style format may be expected. Pre: 5804 or 5814; (3H,3C). I. Odd years.

7994: RESEARCH AND DISSERTATION

Variable credit course.

Advanced Undergraduate Courses (CS)

The following 4000-level courses may be taken for graduate credit:

4104: DATA AND ALGORITHM ANALYSIS

This course emphasizes the understanding of data structures and algorithms from an analytical perspective rather than from an implementation standpoint. The concepts developed allow discussion of the efficiency of an algorithm and the comparison of two or more algorithms with respect to space and run-time requirements. Analytical methods are used to describe theoretical bounds as well as practical ones. In general, this course addresses the constraints that affect problem solvability. Pre: 2604 and MATH 3134 or MATH 3124. (3H,3C). I.

4114: INTRODUCTION TO FORMAL LANGUAGES AND AUTOMATA THEORY

The course presents a study of formal languages and the correspondence between language classes and the automata that recognize them. Formal definitions of grammars and acceptors, deterministic and nondeterministic systems, grammar ambiguity, finite state and push-down automata, and normal forms will be discussed. Pre: MATH 3134 or MATH 3034. (3H,3C). II.

4124: THEORY OF COMPUTATION

Theoretical analysis of the computational process; fundamental concepts such as abstract programs, classes of computational machines and their equivalence, recursive function theory, unsolvable problems, Church's thesis, Kleene's theorem, program equivalence, and generability, acceptability, decidability will be covered. Pre: MATH 3134 or MATH 3034. (3H,3C). I.

4204: COMPUTER GRAPHICS

Hardware and software techniques for the display of graphical information. 2D and 3D geometry and transformations, clipping and windowing, software systems. Interactive graphics, shading, hidden surface elimination, perspective depth. Modeling and realism. Pre: 2604 and MATH 3134 or MATH 3034. (3H,3C). I,II.

4214: SIMULATION AND MODELING

Overview of discrete-event digital computer simulation and modeling. Fundamentals of model development, Monte Carlo simulation, the life cycle of a simulation study, input and output data analysis, world views and time control, random number and variate generation, credibility assessment of simulation results, simulation languages, applications of simulation using the General Purpose Simulation System (GPSS). Pre: 1706 and STAT 4714 or 4105 or 4705. (3H,3C). I.

4224: PERFORMANCE EVALUATION OF COMPUTER SYSTEMS

Overview of techniques for measuring, improving, and tuning the performance of computer systems. Procurement, workload characterization, measurement principles, the representation of measurement data, software and hardware monitors, capacity planning, bottleneck detection, system and program tuning, simulation and analytic models and their applications, case studies. Pre: 3204 and STAT 4714 or 4105 or 4705. (3H,3C). II.

4234: PARALLEL AND DISTRIBUTED COMPUTATION

Survey of parallel computer architectures, including interconnection networks and synchronization techniques. Algorithms and programming languages for parallel computers. Applications. Interprocess communications, communication protocols, communication network architectures, and distributed programming interfaces. Performance implications. Pre: 3204. (3H,3C). II.

4304: COMPILER DESIGN AND IMPLEMENTATION

This course includes the theory, the design, and the implementation of a large language translator system. Lexical analysis, syntactic analysis, code generation, and optimization are emphasized. Pre: 3204. (3H,3C). II.

4504 (EE 4504): COMPUTER ORGANIZATION

Information representation and transfer; instructions and data access methods; the control unit and microprogramming; memories; input/output and interrupts; secondary storage; the von Neumann SISD organization; high level language machines; the RISC concept; special purpose processors including operating system, file, text, floating point, communication, etc. Multicomputers; multiprocessors; concurrent processing support; Pipeline machines, processor arrays, database machines; the data flow/data directed approach; computer networks. Pre: CS 3204 and EE 2504. (3H,3C). I,II.

4570 (ECE 4570): Wireless Networks and Mobile Systems

Multidiscriplinary, project-oriented design course that considers all acpects of wireless and mobile systems including wireless networks and link protocols, mobile networking including support for the Internet Protocol suite, mobile middleware, and mobile applications. Students complete multiple experiments and design projects. Pre: ECE 4564 or CS 4254 (3H, 3C). II.

4604: INTRODUCTION TO DATA BASE MANAGEMENT SYSTEMS

Emphasis on introduction of the basic data base models, corresponding logical and physical data structures, comparisons of models, logical data design, and data base usage. Terminology, historical evolution, relationships, implementation, data base personnel, future trends, applications, performance considerations, data integrity. Pre: 2604 and senior standing with a major or minor in CS. (3H,3C). II.

4704: SOFTWARE ENGINEERING

Introduction to the basic principles of software engineering. Issues in the software life cycle. Emphasis on methods for software design and testing. Project management and quality assurance. Significant software project required. Pre: 3204. (2H,3L,3C). I.

4804: INTRODUCTION TO ARTIFICIAL INTELLIGENCE

Overview of the areas of problem solving, game playing, and computer vision. Search trees and/or graphs, game trees, block world vision, syntactic pattern recognition, object matching, natural language, and robotics. Pre: 2604 and senior standing with a major or minor in CS. (3H,3C). I.