Software Construction | MIT Online Courses | Programming Fundamentals

MIT

Dive into the fundamental principles and techniques of software development at MIT. Learn to write high-quality, maintainable code through topics like testing, state machines, and concurrent programming.

University CoursesObject-Oriented ProgrammingProgramming

Introduction

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.

screenshot

Highlights

  • Specifications and invariants
  • Testing, test-case generation, and coverage
  • State machines
  • Abstract data types and representation independence
  • Design patterns for object-oriented programming
  • Concurrent programming, including message passing and shared concurrency, and defending against races and deadlock
  • Functional programming with immutable data and higher-order functions

Recommendation

This course is recommended for students interested in learning fundamental principles and techniques of software development, including how to write high-quality, maintainable code.

How GetVM Works

Learn by Doing from Your Browser Sidebar

Access from Browser Sidebar

Access from Browser Sidebar

Simply install the browser extension and click to launch GetVM directly from your sidebar.

Select Your Playground

Select Your Playground

Choose your OS, IDE, or app from our playground library and launch it instantly.

Learn and Practice Side-by-Side

Learn and Practice Side-by-Side

Practice within the VM while following tutorials or videos side-by-side. Save your work with Pro for easy continuity.

Explore Similar Hands-on Tutorials

C++ Language Tutorial | Beginner to Advanced

38
Technical TutorialsC++Programming
Learn C++ programming from the ground up, including practical examples and the latest features. Ideal for beginners and experienced developers.

Learn Python Basics | Beginner-Friendly Programming Course

20
Technical TutorialsProgrammingPython
Dive into the world of programming with Python, a beginner-friendly language. Explore its readability, versatility, and robust community support.

Python Tutorial For Beginners | Programming, Coding

1
Video CoursesProgrammingPython
Learn Python fundamentals, installation, and setup for beginners. Explore the interactive prompt, create and run your first Python script. Ideal for new programmers.

CS50 Labs | Computer Science Fundamentals | Harvard University

1
University CoursesComputer ScienceProgramming
Explore the intellectual enterprises of computer science and the art of programming with CS50 Labs, Harvard University's renowned introduction to computer science for beginners and experienced learners alike.

Java Programming (CS 1) | Computer Science Fundamentals

1
University CoursesJavaObject-Oriented Programming
Learn the fundamentals of Java programming, including variables, expressions, control structures, arrays, objects, and file I/O. Suitable for students without prior programming experience.

Matters Computational: Ideas, Algorithms, Source Code

9
Technical TutorialsAlgorithmProgramming
Comprehensive book covering computational algorithms, source code, and programming concepts. Recommended for programmers and computer scientists.

Database Design Succinctly

16
Technical TutorialsDatabase
Explore the principles of efficient database design and data modeling for software applications with this concise guide.

Foundations of Programming

10
Technical TutorialsProgramming
Comprehensive guide to the core principles of programming, including algorithms, data structures, and software development best practices. Suitable for beginners and experienced developers.

Pointers And Memory | Computer Programming, Memory Management

16
Technical TutorialsCComputer ScienceProgramming
Comprehensive guide to understanding pointers, memory allocation, and optimization techniques for computer science students and software developers.