This course introduces the theory of error-correcting codes to computer scientists. This …
This course introduces the theory of error-correcting codes to computer scientists. This theory, dating back to the works of Shannon and Hamming from the late 40's, overflows with theorems, techniques, and notions of interest to theoretical computer scientists. The course will focus on results of asymptotic and algorithmic significance. Principal topics include: Construction and existence results for error-correcting codes. Limitations on the combinatorial performance of error-correcting codes. Decoding algorithms. Applications in computer science.
This course considers the interaction between law, policy, and technology as they …
This course considers the interaction between law, policy, and technology as they relate to the evolving controversies over control of the Internet. In addition, there will be an in-depth treatment of privacy and the notion of "transparency" -- regulations and technologies that govern the use of information, as well as access to information. Topics explored will include: Legal Background for Regulation of the Internet Fourth Amendment Law and Electronic Surveillance Profiling, Data Mining, and the U.S. PATRIOT Act Technologies for Anonymity and Transparency, The Policy-Aware Web
Students are introduced to the concepts of digital organisms and digital evolution. …
Students are introduced to the concepts of digital organisms and digital evolution. They learn about the research that digital evolution software makes possible, and compare and contrast it with biological evolution.
Students conduct an experiment to study the acceleration of a mobile Android …
Students conduct an experiment to study the acceleration of a mobile Android device. During the experiment, they run an application created with MIT's App Inventor that monitors linear acceleration in one-dimension. Students use an acceleration vs. time equation to construct an approximate velocity vs. time graph. Students will understand the relationship between the object's mass and acceleration and how that relates to the force applied to the object, which is Newton's second law of motion.
The internet provides a world of information, but how do you find …
The internet provides a world of information, but how do you find what you are looking for? This unit will help you discover the meaning of information quality and teach you how to evaluate the material you come across. You will learn how to plan your searches effectively and be able to experiment with some of the key resources in this area.
Students design and create flow charts for the MIT App Inventor tutorials …
Students design and create flow charts for the MIT App Inventor tutorials in this computer science activity about program analysis. In program analysis, which is based on determining the behavior of computer programs, flow charts are an important tool for tracing control flow. Control flow is a graphical representation of the logic present in a program and how the program works. Students work through tutorials, design and create flow charts about how the tutorials function, and present their findings to the class. In their final assessment, they create an additional flow chart for an advanced App Inventor tutorial. This activity prepares students with the knowledge and skills to use App Inventor in the future to design and create Android applications.
Inspired by the work of the architect Antoni Gaudi, this research workshop …
Inspired by the work of the architect Antoni Gaudi, this research workshop will explore three-dimensional problems in the static equilibrium of structural systems. Through an interdisciplinary collaboration between computer science and architecture, we will develop design tools for determining the form of three-dimensional structural systems under a variety of loads. The goal of the workshop is to develop real-time design and analysis tools which will be useful to architects and engineers in the form-finding of efficient three-dimensional structural systems.
This course provides practical instruction in the design and analysis of non-digital …
This course provides practical instruction in the design and analysis of non-digital games. Students cover the texts, tools, references and historical context to analyze and compare game designs across a variety of genres, including sports, game shows, games of chance, card games, schoolyard games, board games, and role–playing games. In teams, students design, develop, and thoroughly test their original games to understand the interaction and evolution of game rules. Students taking the graduate version complete additional assignments.
This course will provide a gentle, yet intense, introduction to programming using …
This course will provide a gentle, yet intense, introduction to programming using Python for highly motivated students with little or no prior experience in programming. The course will focus on planning and organizing programs, as well as the grammar of the Python programming language. The course is designed to help prepare students for 6.01 Introduction to EECS. 6.01 assumes some knowledge of Python upon entering; the course material for 6.189 has been specially designed to make sure that concepts important to 6.01 are covered. This course is offered during the Independent Activities Period (IAP), which is a special 4-week term at MIT that runs from the first week of January until the end of the month.
Students simulate disease transmission by collecting data based on their proximity to …
Students simulate disease transmission by collecting data based on their proximity to other students. One option for measuring proximity is by having Bluetooth devices "discover" each other. After data is collected, students apply graph theory to analyze it, and summarize their data and findings in lab report format. Students learn real-world engineering applications of graph theory and see how numerous instances of real-world relationships can be more thoroughly understood by applying graph theory. Also, by applying graph theory the students are able to come up with possible solutions to limit the spread of disease. The activity is intended to be part of a computer science curriculum and knowledge of the Java programming language is required. To complete the activity, a computer with Java installed and appropriate editing software is needed.
This course provides a challenging introduction to some of the central ideas …
This course provides a challenging introduction to some of the central ideas of theoretical computer science. It attempts to present a vision of "computer science beyond computers": that is, CS as a set of mathematical tools for understanding complex systems such as universes and minds. Beginning in antiquity--with Euclid's algorithm and other ancient examples of computational thinking--the course will progress rapidly through propositional logic, Turing machines and computability, finite automata, GĚŚdel's theorems, efficient algorithms and reducibility, NP-completeness, the P versus NP problem, decision trees and other concrete computational models, the power of randomness, cryptography and one-way functions, computational theories of learning, interactive proofs, and quantum computing and the physical limits of computation. Class participation is essential, as the class will include discussion and debate about the implications of many of these ideas.
In this book we aim to introduce you both to the Haskell …
In this book we aim to introduce you both to the Haskell language, from the very basics to advanced features, and to computer programming in general. We urge seasoned programmers to be especially patient with this process. In all likelihood, the languages you are most familiar with differ greatly from Haskell, and habits from those languages might make it more difficult to understand how things work − they are simple, but different. Face learning to see the world through the warped mindset of a functional programmer as an adventure in a brave new world, which will bring you understanding valuable far beyond the boundaries of any language.
Steganography is the science and art of hiding messages in plain sight …
Steganography is the science and art of hiding messages in plain sight so only the sender and intended recipient know the existence of a message. Steganography can be characterized as security through obscurity. Through this lesson, students experience a portion of the engineering design process as they research steganography and steganographic methods; identify problems, criteria and constraints; brainstorm possible solutions; and generate ideas. These are the critical first steps in the engineering design process, often overlooked by students who want to get to the "doing" phases—designing, building and testing. In computer science, a thorough design phase makes program implementation much easier and more effective. Students obtain practice with a portion of the design process that may be less exciting, but is just as important as the other steps in the process.
6.776 covers circuit and system level design issues of high speed communication …
6.776 covers circuit and system level design issues of high speed communication systems, with primary focus being placed on wireless and broadband data link applications. Specific circuit topics include transmission lines, high speed and low noise amplifiers, VCO's, and high speed digital circuits. Specific system topics include frequency synthesizers, clock and data recovery circuits, and GMSK transceivers. In addition to learning analysis skills for the above items, students will gain a significant amount of experience in simulating circuits in SPICE and systems in CppSim (a custom C++ simulator).
6.976 covers system level issues of high speed communication systems and their …
6.976 covers system level issues of high speed communication systems and their impact on circuit requirements, with primary focus being placed on wireless and broadband data link applications. Course topics include: transistor level design techniques for high speed amplifiers, mixers, VCO's, registers and gates, and phase locked loops, and the impact of transmission line effects on circuit designs for narrowband and broadband systems. Finally, behavioral level simulation techniques are presented for phase locked loops and other communication circuits.
Examines the development of computing techniques and technology in the nineteenth and …
Examines the development of computing techniques and technology in the nineteenth and twentieth centuries, particularly critical evaluation of how the very idea of "computer" changes and evolves over time. Emphasis is on technical innovation, industrial development, social context, and the role of government. Topics include Babbage, Hollerith, differential analyzers, control systems, ENIAC, radar, operations research, computers as scientific instruments, the rise of "computer science," artificial intelligence, personal computers, and networks. Includes class visits by members of the MIT community who have made important historical contributions. This course focuses on one particular aspect of the history of computing: the use of the computer as a scientific instrument. The electronic digital computer was invented to do science, and its applications range from physics to mathematics to biology to the humanities. What has been the impact of computing on the practice of science? Is the computer different from other scientific instruments? Is computer simulation a valid form of scientific experiment? Can computer models be viewed as surrogate theories? How does the computer change the way scientists approach the notions of proof, expertise, and discovery? No comprehensive history of scientific computing has yet been written. This seminar examines scientific articles, participants' memoirs, and works by historians, sociologists, and anthropologists of science to provide multiple perspectives on the use of computers in diverse fields of physical, biological, and social sciences and the humanities. We explore how the computer transformed scientific practice, and how the culture of computing was influenced, in turn, by scientific applications.
A laboratory-based exploration of the principles, techniques, and applications of holography as …
A laboratory-based exploration of the principles, techniques, and applications of holography as a 3-D imaging communication medium. Begins with interference and diffraction, and proceeds through laser off-axis holography to white-light "rainbow" and reflection holography. Term project required, with oral presentation and written report. MAS.450 is a laboratory course about holography and holographic imaging. This course teaches holography from a scientific and analytical point of view, moving from interference and diffraction to imaging of single points to the display of three-dimensional images. Using a "hands-on" approach, students explore the underlying physical phenomena that make holograms work, as well as designing laboratory setups to make their own images. The course also teaches mathematical techniques that allow the behavior of holography to be understood, predicted, and harnessed. Holography today brings together the fields of optics, chemistry, computer science, electrical engineering, visualization, three-dimensional display, and human perception in a unique and comprehensive way. As such, MAS.450 offers interesting and useful exposure to a wide range of principles and ideas. As a course satisfying the Institute Laboratory Requirement, MAS.450 teaches about science, scientific research, and the scientific method through observation and exploration, hinting at the excitement that inventors feel before they put their final equations to paper.
Students learn how to program using loops and switches. They see how …
Students learn how to program using loops and switches. They see how loops enable us to easily and efficiently tell a computer to keep repeating an operation. They also see that switches permit programs to follow different instructions based on whether or not preconditions are fulfilled. Using the LEGO MINDSTORMS(TM) NXT robots, sensors and software, student pairs perform three mini programming activities using loops and switches individually, and then combined. With practice, they incorporate these tools into their programming skill sets in preparation for the associated activity. A PowerPoint® presentation, pre/post quizzes and worksheet are provided.
Building on the programming basics learned so far in the unit, students …
Building on the programming basics learned so far in the unit, students next learn how to program using sensors rather than by specifying exact durations. They start with an examination of algorithms and move to an understanding of conditional commands (until, then), which require the use of wait blocks. Working with the LEGO MINDSTORMS(TM) NXT robots and software, they learn about wait blocks and how to use them in conjunction with move blocks set with unlimited duration. To help with comprehension and prepare them for the associated activity programming challenges, volunteer students act out a maze demo and student groups conclude by programming LEGO robots to navigate a simple maze using wait block programming. A PowerPoint® presentation, a worksheet and pre/post quizzes are provided.
Principles of supervisory control and telerobotics. Different levels of automation are discussed, …
Principles of supervisory control and telerobotics. Different levels of automation are discussed, as well as the allocation of roles and authority between humans and machines. Human-vehicle interface design in highly automated systems. Decision aiding. Tradeoffs between human control and human monitoring. Automated alerting systems and human intervention in automatic operation. Enhanced human interface technologies such as virtual presence. Performance, optimization, and social implications of the human-automation system. Examples from aerospace, ground, and undersea vehicles, robotics, and industrial systems. Human Supervisory Control of Automated Systems discusses elements of the interactions between humans and machines. These elements include: assignment of roles and authority; tradeoffs between human control and human monitoring; and human intervention in automatic processes. Further topics comprise: performance, optimization and social implications of the system; enhanced human interfaces; decision aiding; and automated alterting systems. Topics refer to applications in aerospace, industrial and transportation systems.
No restrictions on your remixing, redistributing, or making derivative works. Give credit to the author, as required.
Your remixing, redistributing, or making derivatives works comes with some restrictions, including how it is shared.
Your redistributing comes with some restrictions. Do not remix or make derivative works.
Most restrictive license type. Prohibits most uses, sharing, and any changes.
Copyrighted materials, available under Fair Use and the TEACH Act for US-based educators, or other custom arrangements. Go to the resource provider to see their individual restrictions.