Prerequisites: two semesters of Calculus, one semester of Probability and Statistics. Mathematical topics necessary for graduate study in computer science: review of sets, relations, functions; elementary combinatorics; summation calculus, recurrences, generating functions; logic; graphs and trees. This is a remedial course which does not carry credit towards a Computer Science degree.
An advanced introduction to theoretical computer science. This course will cover the fundamentals of automata, formal languages, and computability theory.
Pre-Req: 91.404 Analysis of Algorithms
Advanced algorithms and complexity analysis. Dynamic programming; greedy algorithms; amortized analysis; shortest path and network flow graph algorithms; NP-completeness; approximation algorithms; number-theoretic algorithms; string matching; computational geometry. Additional topics may include linear programming, parallel algorithms, fast Fourier transforms, polynomial, integer, and matrix algorithms. Readings may include conference and journal papers from the algorithms literature.Abstract types, lists, trees, graphs, sets; relevant algorithms and their worst and average case analyses; fast transforms; polynomial, integer, and matrix algorithms; NP-completeness.
Pre-Req: 91.404 Analysis of Algorithms
Advanced algorithms topics, such as design and analysis of geometric and combinatorial algorithms, computability andcomplexity.
Pre-Req: 91.503 Algorithms or Instructor permission
This course covers polynomial-time hierarchy and polynomial space, circuit complexity, structure of NP, probabilistic machines and complexity classes, complexity of counting, interactive proof systems, probabilistically checkable proofs, complexity of approximation problems, and average-case NP-completeness.
Pre-Reqs. 91.502 Foundations of CS, and 91.503 Algorithms
This course is a survey of Web programming technologies. It begins with a discussion of what Web servers and clients are, how they interact, and how one sets them up. We then explore a wide variety of Web technologies including HTML, JavaScript, JavaServer Pages, Java Servlets, and XML and its many related technologies. Our goal in this course is to provide the basic understanding and knowledge of how the Internet and World Wide Web operate and the technical knowledge required to establish and maintain an Internet/Web site and to develop and introduce new capabilities and features on such sites.
A continuation of 91.513 with a focus on current topics and topics of special interest. Examples of recent topics include: The semantic Web and ontologies, Web services, Peer-to-peer networks, Information Search and Retrieval, Autonomous intelligent agents and Multi-modal presentations.
Pre-Req: 91.513 Internet & Web Systems I
This course provides insight into multiprocessing operating systems including processor memory, peripheral, and file systems management in batch, timesharing, real time, and distributed systems targeted for various hardware. Particular emphasis will be placed on techniques of virtual memory as well as the problems of concurrency in both centralized and distributed systems. An OS simulation is a required programming project. Some topics to be covered are process synchronization; high-Level mechanisms for concurrency; processor scheduling and system analysis; deadlock; virtual memory; distributed systems; computer security.
"
The design and implementation of an interactive multiprocessing operating system to run on a bare hardware system. Separate teams manage the major subsystems with in-class design reviews to coordinate system integration. A functioning system is a class requirement.
Pre-Req: 91.515 Operating Systems I
This course will focus on existing and proposed technologies for storing digital information. Both hardwre and software issues will be examined, beginning with device and controller organization and proceeding through aggregation techniques, interconnect architectures and host consideration. At each level, specific components will be evaluated with respect to critical storage criteria, such as bandwith and latency, fault tolerance, infrastructrure requirements and cost.
Object-oriented techniques for analysis, specification, and design. Static information models and state-based dynamic behavior models applied to rapid prototyping projects that both use and implement object-oriented CASE tools.
Continuation of 91.522; a team-based project course that applies object-oriented methods to designing, implementing, and maintaining interactive and distributed software systems with emphasis on quality and reusability. (Undergraduates may substitute this course for 91.412.)
The purpose of this class is to ground students in the basics of how humans interact with technology, and make students aware of the breadth of topic areas related to human-computer interaction (HCI). This course emphasizes theoretical constructs such as the Model-Human Processor, and includes seminal readings by the original researchers. Further, the course emphasizes techniques for understanding users' tasks, formulating users' requirements, and assessing proposed designs using heuristic evaluation. As part of understanding users' needs, students will consider social, organizational, and ethical perspectives on information technology. Students are also exposed to specialty topics in human-computer interaction such as multi-user computing, universal access to computer applications, and internationalizing interfaces. This course includes a project to design, develop, document, and orally present a prototype interface. At the end of the course students will be able to cite basic principles of human interaction and devise and carry out a usability engineering plan to aid in developing new human interfaces.
This course is a graduate-level introduction to methods used to evaluate the design of human-computer interaction (HCI). Students will apply examples of all three of the major types of HCI evaluation techniques: inspection, analytical, and empirical techniques. The course also covers HCI experiment design and data analysis, includingthreats to experimental validity. The course project consists of a formal usability test. This project requires students to learn principles of ethical treatment of human subjects, complete the University's Institutional Review Board
applications and training for human-subject testing, conduct testing sessions, analyze data, recommend design changes, and document results in a professional manner. At course completion, students will have demonstrated skills for assessing the effectiveness of interface designs and will understand how evaluation fits into computer products' lifecycles.
Topics of mutual interest to the instructor and student(s).
A one-semester course designed to provide students with hands-on understanding of the underlying concepts of programming languages, the principles of their design, and the fundamental methods for their implementation. An executable metalanguage such as Scheme or SML is used throughout the course, facilitating the design of high-level, concise interpreters that are easy to comprehend. The approach is analytical because the salient features of the imperative, functional, object-oriented, and logic programming paradigms are described in the executable meta-language.
Pre-Req: 91.301 Org Programming Languages or 91.406 Compiler Construction I
This course implements a compiler for a complete language. Topics include grammars, syntax, elements of parsing and recursive descent, semantics, basic code generation, fast compilation runtime support. Programming project required.
Consistent and complementary definitions of programming languages. Axiomatic, operational, denotational, translational, and other semantic approaches. Formal program specification. Verification using the techniques of Floyd and Hoare.
This course covers the basic topics for the interdisciplinary field of visual analytics. This course is not just for computer science students but also for analysts and scientists in different disciplines. The topics include visual analytics science and technology, perception, cognitive processes and human tasks and reasoning, data and knowledge representation, visualization and interaction, statistical and analytic methods, data mining and knowledge discovery, and evaluation and usability. Numerous examples of systems, tools and applications will be presented.
Pre-Requisites: 91.301 Org Programming Languages or 91.304 Foundations of Comp Science; or Instructor permission
This course looks at classical and novel methodologies for the visualization of large and complex data sets. The course covers both scientific and information visualization starting with data modeling, human perception and cognition, basic and advanced techniques, interaction, formal models, real time systems, and frameworks for integrated analysis and visualization. Examples used come from numerous areas including the biomedical literature and security.
Search and games, knowledge representation paradigms, natural language understanding, planning, perception. Use of the LISP language for one or more programming projects.
This introductory machine learning course will give an overview of many models and algorithms used in modern machine learning, including decision-tree and rule-based learning, statistical learning, neural networks, hypothesis evaluation, support vector machines, Bayesian belief networks, genetic algorithms, clustering, ensemble methods, explanation-based learning and reinforcement learning. The course will give the student the basic ideas and intuition behind these methods, as well as a more formal understanding of how and why they work. We will also read papers on current machine learning research and papers on how discoveries are made by human scientists. Students will have an opportunity to experiment with machine learning techniques and apply them a selected problem in the context of a term project.
Introduction to the hardware, software and mathematics of 2- and 3-dimensional interactive computer graphics systems, including standards, modeling, transformations, hidden-surface removal, shading, and realism.
Lighting models, photo-realism, animation, constructive solid geometry, and distributed graphics.
A broad interpretation of robotics to mean systems that interact with people, each other, and the world around them, using sensors, actuators, communications, and a control program. Project- and lab-based course that involves electronics, embedded coding, mechanical design, and research.
This course will focus on the artificial intelligence side of robotics in a project- and lab-based course. Topics to be covered include robot architectures, mapping and localization, learning, vision, multi-agent systems and current research areas.
Topics of mutual interest to the instructor and student(s).
An advanced study of computer system organization. Topics include data-path design, control, ALU's, memory organization, distributed processing, theories of parallel computing, advanced architectures, computer communication.
A survey of parallel computer architectures, parallel programming languages, and parallel algorithms, with emphasis on solving practical problems with parallel computers. A final project, typically a substantial parallel program, is required. Usually offered during the Spring semester.
The two main topics are routing and transport functions, and ATM networks. Routing and transport layer functions in conventional data networks will be examined, with a heavy emphasis on the TCP/IP protocol suite. The ATM is seen as a promising technology for integrated voice/data/video services. The concept of the ATM network will be reviewed. Traffic management functions in ATM networks will explored in detail, including analytic representation of traffic bandwidth and congestion control techniques.
Pre-Req: 91.563 Data Communications I
Topics of mutual interest to the instructor and student(s)
Pre-Reqs: 92.321 Discrete Structures I , 91.404 Analysis of Algorithms and 91.413 Data Communications I
Resource sharing; computer traffic characterizations; multiplexing; network structure; packet switching and other switching techniques; design and optimization; protocols; routing and flow control; simulation and measurement; communications processors.
Continuation of 91.563
Pre-Req: 91.563 Data Communications I
The two main purposes of this seminar course are to involve students in current human-computer interaction (HCI) research and to learn to critique others' HCI research. Each offering of the seminar will center on a theme of applying HCI techniques to a particular type of interaction such as human interfaces for robots, pervasive computing, or social media. Students will be expected to read and critique a number of papers from the current literature in the designated topic area. Further, class members will form a research team (led by the course instructor) to perform original research in the topic area. Class members will co-author a paper based on their research results with the goal of submitting it to a conference. By the end of the course, students will be able to describe the state-of-the-art in the course topic, recognize examples of good and poor research techniques, document research to high academic standards, and become productive members of HCI research teams.
Topics of mutual interest to the instructor and student(s).
Pre-Req: 91.555 Comp Networks or 91.563 Data Communication I
Study of various database models including hierarchical, network, relational, entity-relationship, and object-oriented models. This course also covers data design, integrity, security, concurrency, recovery, query processing, and distribution.
Continuation of Data Base I. Various issues in the implementation of database systems will be covered.
Pre-Req: 91.573 Data Base I
Topics of mutual interest to the instructor and student(s).
Topics of mutual interest to the instructor and student(s).
This course covers advanced topics in approximation algorithms for NP-hard problems, including combinatorial algorithms and LP-based algorithms for set cover, k-cut, k-center, feedback vertex set, shortest superstring, knapsack, bin packing, maximum satisfiability, scheduling, Steiner tree, Steiner Forest, Steiner network, facility location, k-median, semidefinite programming. It also covers counting problems, shortest vector, hardness of approximation, and open problems for research.
Pre-Req: 91.503 Algorithms
This is a proposed new 600-level course. The topics are advanced topics in Information Retrieval and Mining, including (but not limited to) Search and Information Retrieval, Visual Text Mining, Document Retrieval and Analysis, Non-textual Retrieval (including Image-, Sound, Video-Retrieval). The course's format is a seminar: (advanced, doctoral) students will be reading and presenting the current state-of-the-art literature. Course requirements include weekly bibliography reports (at least 2 new entries each week) class presentations, two term papers, and a term project.
Pre-Req: 91.514 Internet & Web Systems II; and Instructor permission
This course will cover state-of-art wireless networking research topics, including communications, management, security, sensors, and mobile applications. Students will read and summarize current research and published papers, and do experimental projects.
This course allows subtitle (topics), and students can take this course multiple times with different subtitle (topics). The subtitle (topic) of this course is to be determined when the course is offered.
Pre-Req: 91.563 Data Communications I
This is a topic course, with a subtitle to be determined by the instructor. it covers advanced topics in network security of mutual interests to the faculty and students.
Pre-Req: 91.561 Computer & Network Security I
This course covers advanced topics in database management systems, including query processing and optimization, indexing, transaction management, data warehousing, data mining, etc. It also covers spartio-temporal databases, search engines, stream and sensor databases, and open problems for research.
Pre-Req: 91.573 Data Base I
Pre-Req: 73.151 Intro to Music Ed