This is a graduate-level introduction to mathematics of information theory. We will cover both classical and modern topics, including information entropy, lossless data compression, binary hypothesis testing, channel coding, and lossy data compression.
6.005 Software Construction introduces fundamental principles and techniques of software development, i.e., how to write software that is safe from bugs, easy to understand, and ready for change. The course includes problem sets and a final project. Important topics include specifications and invariants; testing; abstract data types; design patterns for object-oriented programming; concurrent programming and concurrency; and functional programming.
6.0002 is the continuation of 6.0001 Introduction to Computer Science and Programming in Python and is intended for students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems and to help students, regardless of their major, feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class uses the Python 3.5 programming language.
6.0001 Introduction to Computer Science and Programming in Python is intended for students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems and to help students, regardless of their major, feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class uses the Python 3.5 programming language.
This course is an introduction to the theory and practice of the process of designing games and playful experiences. Students are familiarized with methods, concepts, techniques, and literature used in the design of games. The strategy is process-oriented, focusing on aspects such as: Rapid prototyping, play testing, and design iteration using a player-centered approach.
Covers over 5,000 reports published by the National Academies Press for the National Academy of Sciences, National Academy of Engineering, Institute of Medicine and National Research Council in the US.
With the growing availability and lowering costs of genotyping and personal genome sequencing, the focus has shifted from the ability to obtain the sequence to the ability to make sense of the resulting information. This course is aimed at exploring the computational challenges associated with interpreting how sequence differences between individuals lead to phenotypic differences in gene expression, disease predisposition, or response to treatment.
This course is an introduction to principles and techniques of visual communication, and provides opportunities for science and engineering majors to acquire practical skills in the visual computer arts, in a studio environment. Students will learn how to create graphics for print and web, animations, and interactive media, and how to use these techniques to effectively communicate scientific and engineering concepts for learning and teaching. This class involves three hands-on creative projects, which will be presented in class.
Introduction to computer programming within a numerical computing environment (MATLAB or similar) including types of data representation, graphical display of data, and development of modular programs with application to engineering analysis and problem solving.