This course provides an aggressively gentle introduction to MATLAB. It is designed to give students fluency in MATLAB, including popular toolboxes. Topics include variables, scripts, and operations; visualization, solving equations, and curve fitting; and Simulink.

Prerequisites:No prior programming experience is necessary to take, understand, or be successful in 6.0001. Familiarity with pre-calculus, especially series, will be helpful for some topics, but is not required to understand the majority of the content.

Once youve worked through some introductory material, you may be interested in trying more advanced courses such as these.

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.

This page will help you begin to learn programming and computer science, with some suggested introductory courses on OCW. Choose from:

This course provides a fast-paced introduction to the C and C++ programming languages. You will learn the required background knowledge, including memory management, pointers, preprocessor macros, object-oriented programming, and how to find bugs when you inevitably use any of those incorrectly.

This semester-long course formed the basis for the 6.0001 + 6.0002 sequence, and continues to be taught at MIT. It aims to provide students with an understanding, regardless of their major, to feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The course uses the Python programming language.

Prerequisites:There are no formal prerequisites for this course.

The Battlecode Programming Competition is a unique challenge that combines battle strategy, software engineering, and artificial intelligence. Using Java, student teams program virtual robots to play Battlecode, a real-time strategy game. Optional lectures are provided on topics and programming practices relevant to the game, and students learn and improve their programming skills experientially. The course culminates in a live tournament.

HomeCourses Introductory Programming Courses

These courses introduce principles of computer science and begin to develop programming skills, specifically in the Python language. Learn more about these courses learning goals, history and student experience in thisMIT news article.

Your use of the MIT OpenCourseWare site and materials is subject to ourCreative Commons Licenseand otherterms of use.

This course is an introduction to software engineering, using the Java programming language. It covers concepts useful to6.005 Elements of Software Construction. Students will learn the fundamentals of Java. The focus is on developing high quality, working software that solves real problems.

Prerequisites:6.01 Introduction to EECS I

And when youre ready for more, exploreall of OCWs computer science courseswith our Find Courses by Topic browser. Youll find hundreds of courses ranging from foundations ofoperating systemsanddata structuresto leading-edge applications likedata miningandartificial intelligence.

Prerequisites:Experience in programming definitely helps in the competition.

Ocean Wave Interaction with Ships and Offshore Energy Systems (13.022)

This course introduces fundamental principles and techniques of software development. Students learn how to write software that is safe from bugs, easy to understand, and ready for change.

6.0001 is the most common starting point for MIT students with little or no programming experience. This half-semester course introduces computational concepts and basic programming. Students will develop confidence in their ability to apply programming techniques to problems in a broad range of fields. This course uses the Python 3.5 programming language.

Massachusetts Institute of Technology

MIT OpenCourseWare makes the materials used in the teaching of almost all of MITs subjects available on the Web, free of charge. With more than 2,400 courses available, OCW is delivering on the promise of open sharing of knowledge.Learn more

This course teaches MATLAB from a mathematical point of view, rather than a programming one. The idea is that by thinking about mathematical problems, students are prodded into learning MATLAB for the purpose of solving the problem at hand. Topics include variables, arrays, conditional statements, loops, functions, and plots.

Beyond the introductions above which use Python, here are several introductions to other programming languages. Many are taught during MITs four-week Independent Activities Period (IAP) between the fall and spring semesters.

Prerequisites:A firm grasp of Python and a solid background in discrete mathematics are necessary prerequisites to this course. You are expected to have mastered the material presented in6.01 Introduction to EECS Iand6.042J Mathematics for Computer Science.

Prerequisites:Basic familiarity with programming; basic linear algebra, differential equations, and probability.

Prerequisites:Designed for students with some programming experience.

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.

Prerequisites:This course is aimed at students with little or no prior programming experience, but a desire to understand computational approaches to problem solving. Since computer programming involves computational modes of thinking, it will help to have some mathematical and logical aptitude. You should be confident with your math skills up to pre-calculus.

Prerequisites:There are no formal prerequisites. Students need only the rudimentary grasp of programming concepts that can be obtained from introductory or Advanced Placement computer science classes in high school.

Prerequisites:Designed for students with some programming experience.

Prerequisites:6.0001 Introduction to Computer Science and Programming in Pythonor permission of instructor.

This class builds a bridge between the recreational world of algorithmic puzzles (puzzles that can be solved by algorithms) and the pragmatic world of computer programming, teaching students to program while solving puzzles. Python syntax and semantics required to understand the code are explained as needed for each puzzle.