Curriculum

List of Courses Taken by VLIS Students


Students will complete 144 units. The degree is designed to be completed in 16 months on the assumption that a student completes an internship. If a student forgoes an internship, the program can be completed in 12 months.

The curriculum consists of multiple parts: the total units requirement, core requirement, the concentration requirement, the electives requirement, the VLIS seminar requirement, and the capstone project requirement.

The core requirement consist of four courses (48 units):

  • Very Large Information Systems course,
  • Software Engineering for IT course,
  • either Machine Learning or Information retrieval, and
  • a course on security or privacy.
  • The curriculum requirement requires two courses (24 units) in the student's concentration area.

    One course (12 units) is elective and may be any course in the School of Computer Science. The elective requirement allows the student to focus in an additional area of expertise.

    The curriculum requires the VLIS seminar (12 units). The seminar prepares the student for the capstone project.

    The capstone project is a large scale project that integrates the academic work of the student into a final experience. The project is typically completed fulltime over one semester or summer (48 units). Part-time students typically split the capstone project across two semesters.

    Core Courses

    Introduction to Computer Security (18-730)

    Introduction to Computer Security provides an introduction to techniques for defending against hostile adversaries in modern computer systems and computer networks. Topics include operating system security; network security-cryptography and cryptographic protocols, firewalls, and network denial-of-service attacks and defenses; user authentication technologies; security for network servers; web security; and security for mobile code technologies, such as Java and Javascript. More advanced topics will additionally be covered as time permits, such as: intrusion detection; techniques to provide privacy in Internet applications; and protecting digital content (music, video, software) from unintended use.

    Privacy Policy, Law, and Technology (08-733), Fall

    Privacy issues have been getting increasing attention from law makers, regulators, and the media. As a result, businesses are under pressure to draft privacy policies and post them on their web sites, chief privacy officers are becoming essential members of many enterprises, and companies are taking pro-active steps to avoid the potential reputation damage of a privacy mistake. As new technologies are developed, they increasingly raise privacy concerns -- the World Wide Web, wireless location-based services, and RFID chips are just a few examples. In addition, the recent focus on national security and fighting terrorism has brought with it new concerns about governmental intrusions on personal privacy. This course provides an indepth look into privacy, privacy laws, and privacy-related technologies and self-regulatory efforts. Students will study privacy from philosophical, historical, legal, policy, and technical perspectives and learn how to engineer systems for privacy.
    This course is intended primarily for graduate students and advanced undergraduate students (juniors and seniors) studying computer science, computer engineering, information systems, engineering and public policy, and related fields; however, it is appropriate for other students who have strong technical backgrounds. This course will include a lot of reading, writing, and class discussion. Students will be able to tailor their assignments to their skills and interests, focusing more on programming or writing papers as they see fit. However, all students will be expected to do some writing and some technical work. A large emphasis will be placed on research and communication skills, which will be taught throughout the course.

    Technology Dialectics (08-800), Fall

    How can you harness cross-disciplinary knowledge to improve your technology? This course teaches students how to conduct research and develop technology across disciplines, so that the resulting technology is provably appropriate for a given personal, societal, organizational, and/or legal context. Students learn to fuse scientific research methods (naturalistic observation, survey, interviews, and experimentation), which describe existing phenomena, with computer science methods and engineering approaches. Topics include formulating problem statements, modeling real-world constraints, including end-user participation, determining validity, assessing generalizability, generating guarantees, and a unifying paradigm ("Technology Dialectics") for providing provably appropriate solutions. This course is ideal for new graduate students who intend to conduct and publish graduate research across disciplines. It offers a good primer for multidisciplinary, interdisciplinary, and transdisciplinary research and development.

    Information Retrieval (11-741), Spring

    This course studies the theory, design, and implementation of text-based information systems. The IR core components of the course include important retrieval models, including Boolean, vector space, probabilistic, inference net, language modeling; clustering algorithms; automatic text categorization; and experimental evaluation. The course covers a variety of current research topics, including cross-lingual retrieval, document summarization, machine learning, and topic detection and tracking.

    Artificial Intelligence: Machine Learning (15-601), Fall/Spring

    This course focuses on computer programs that automatically improve their performance through experience. This course covers the theory and practice of machine learning from a variety of perspectives. Topics include: decision trees, neural network learning, statistical learning methods, genetic algorithms, Bayesian learning methods, explanation-based learning, and reinforcement learning. We study theoretical concepts such as inductive bias, the PAC and Mistake-bound learning frameworks, minimum description length principle, and Occam’s Razor. Programming assignments include hands-on experiments with various learning algorithms.

    Software Engineering for IT (11-791), Fall

    This course covers the fundamentals of software engineering for information technology, including project management and software methodology. A basic understanding of programming is required. Students will analyze, design, and plan a specific software project. There are no programming assignments in this course, but students may implement their plan from this course in 11-792.

    Very Large Information Systems (08-741), Fall

    This course teaches principals of distributed and parallel database technology: distributed query processing, parallel query processing, distributed transaction processing, failure and recovery, federated databases, publish/subscribe, etc., and provides a forum to combine lessons learned from the core curriculum into a unified framework.

    Concentration

    Every student is required to complete at least two courses in their selected concentration. The concentration is defined by the student. Here are some example concentrations, and example courses:

    Databases

    Language Technologies

    Management

    Elective Courses

    The following are permitted elective courses students might take:

    Capstone Project

    For the capstone project, students will work at Carnegie Mellon on a research project, or on an industry-sponsored project, during a semester or the summer. The project, which consists of three months of full time work related to the student's concentration, must be approved by the program director. Students will record their experiences in a project report.

    Part-Time Study

    MSIT VLIS accepts part-time students into the program. Part-time students are expected to complete the degree in three years. Typically part-time students complete the capstone project half time during two summer semesters.