Online courses directory (548)
Learn the fundamentals of parallel computing with the GPU and the CUDA programming environment! In this class, you'll learn about parallel programming by coding a series of image processing algorithms, such as you might find in Photoshop or Instagram. You'll be able to program and run your assignments on high-end GPUs, even if you don't own one yourself. **Why It’s Important to Think Parallel** [Third Pillar of Science][1] Learn how scientific discovery can be accelerated by combining theory and experimentation with computing to fight cancer, prevent heart attacks, and spur new advances in robotic surgery. [1]: http://www.youtube.com/watch?v=3DbAB2ChDBw
This course provides an introduction to mathematical modeling of computational problems. It covers the common algorithms, algorithmic paradigms, and data structures used to solve these problems. The course emphasizes the relationship between algorithms and programming, and introduces basic performance measures and analysis techniques for these problems.
Ever hang your head in shame after your Python program wasn't as fast as your friend's C program? Ever wish you could use objects without having to use Java? Join us for this fun introduction to C and C++! We will take you through a tour that will start with writing simple C programs, go deep into the caves of C memory manipulation, resurface with an introduction to using C++ classes, dive deeper into advanced C++ class use and the C++ Standard Template Libraries. We'll wrap up by teaching you some tricks of the trade that you may need for tech interviews.
We see this as a "C/C++ empowerment" course: we want you to come away understanding
- why you would want to use C over another language (control over memory, probably for performance reasons),
- why you would want to use C++ rather than C (objects), and
- how to be useful in C and C++.
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.
If you are a student wanting to learn C programming, or an adult learner simply researching C programming courses, this free introductory course is for you.<br /><br />The C programming language is one of the most popular and widely used programming languages. It is a general-purpose programming language and there are very few computer systems in existence that are not set up for its use (i.e. where a C compiler does not exist).<br /><br />This C programming tutorial and course introduces you to the basics of programming in C. You will learn how programming languages work with data, what program flow is, and how to use functions, methods and routines. You will also get step-by-step instructions on how to create simple C programs and how to run them all while you learn C programming. <br />
This is a fast-paced introductory course to the C++ programming language. It is intended for those with little programming background, though prior programming experience will make it easier, and those with previous experience will still learn C++-specific constructs and concepts.
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.
This course examines signals, systems and inference as unifying themes in communication, control and signal processing. Topics include input-output and state-space models of linear systems driven by deterministic and random signals; time- and transform-domain representations in discrete and continuous time; group delay; state feedback and observers; probabilistic models; stochastic processes, correlation functions, power spectra, spectral factorization; least-mean square error estimation; Wiener filtering; hypothesis testing; detection; matched filters.
In this 5-week course we’ll introduce the fundamentals of programming in Processing, an accessible introduction to combining arts and computing. The course will provide the essentials of programming in a visual context, allowing you to visualize, design, and create generative art with Processing.
This course introduces the basic computational methods used to understand the cell on a molecular level. It covers subjects such as the sequence alignment algorithms: dynamic programming, hashing, suffix trees, and Gibbs sampling. Furthermore, it focuses on computational approaches to: genetic and physical mapping; genome sequencing, assembly, and annotation; RNA expression and secondary structure; protein structure and folding; and molecular interactions and dynamics.
6.00.2x will teach you how to use computation to accomplish a variety of goals and provides you with a brief introduction to a variety of topics in computational problem solving . This course is aimed at students with some prior programming experience in Python and a rudimentary knowledge of computational complexity. You will spend a considerable amount of time writing programs to implement the concepts covered in the course. For example, you will write a program that will simulate a robot vacuum cleaning a room or will model the population dynamics of viruses replicating and drug treatments in a patient's body.
Topics covered include:
- Advanced programming in Python 3
- Knapsack problem, Graphs and graph optimization
- Dynamic programming
- Plotting with the pylab package
- Random walks
- Probability, Distributions
- Monte Carlo simulations
- Curve fitting
- Statistical fallacies
This course is designed as an introduction to computer programming using Java. Students will learn how to a) analyze a problem, and identify and define the computing requirements appropriate to its solution b) design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs, and c) apply design and development principles in the construction of software systems of varying complexity. Topics include Computers, programs, Java, input and output, identifiers, variables, assignment statements, constants, memory diagrams, primitive data types, conditional statements, repetition, methods, parameters, arguments, return values, one dimensional arrays, objects, classes, and classes from the Java Application Programmers Interface (API).
Computer science is a diverse topic encompassing computer technology, hardware, software, security, communications, programming, algorithms, functions, and storage. By studying it you will learn how computer science impacts on our daily lives. In this free online computer science course you will start by reviewing bits and binary code, including how they are transmitted and stored, and go all the way to computer algorithms which help solve complex problems in an efficient and cost-effective manner. You will also review various computer systems and architecture such as Linux, Windows, and Mac operating systems. This free online computer science course will be of great interest to IT professionals who would like to review the diverse range of topics found in computer science. It will also be useful to learners interested in a career in IT and computing who would like an introduction to the topic.<br />
This subject is aimed at students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems. It also aims to help students, regardless of their major, to feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class will use the Python™ programming language.
This subject is aimed at students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems. It also aims to help students, regardless of their major, to feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class will use the Python programming language.
Course Format
This course has been designed for independent study. It provides everything you will need to understand the concepts covered in the course. The materials include:
- A complete set of Lecture Videos by Prof. Guttag.
- Resources for each lecture video, such as Handouts, Slides, and Code Files.
- Recitation Videos by course TA's to review content and problem solving techniques.
- Homework problems with sample student solutions.
- Further Study collections of links to supplemental online content.
- Self-Assessment tools, including lecture questions with answers and unit quizzes with solutions, to assess your subject mastery.
Other Versions
Other OCW Versions
OCW has published multiple versions of this subject.