Elements of Software Construction (Fall 2011)

Prof. Robert Miller, MIT OpenCourseWare

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. Topics include 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; and functional programming with immutable data and higher-order functions. The course includes weekly programming exercises and two substantial group projects.

Dates:
  • Free schedule
Course properties:
  • Free:
  • Paid:
  • Certificate:
  • MOOC:
  • Video:
  • Audio:
  • Email-course:
  • Language: English Gb

Reviews

No reviews yet. Want to be the first?

Register to leave a review

Show?id=n3eliycplgk&bids=695438
NVIDIA
More on this topic:
6-092iap10 Introduction to Programming in Java
This course is an introduction to software engineering, using the Java&trade...
Principles-reactive-v1.0 Principles of Reactive Programming
Learn how to write composable software that stays responsive at all times by...
Feamstercourseimage Software Defined Networking
In this course, you will learn about software defined networking and how it...
6-005f11 Elements of Software Construction (Fall 2008)
This course introduces fundamental principles and techniques of software development...
Extensionflag Software Design: Principles, Models, and Patterns
This course approaches object-oriented software design from three perspectives...
More from 'Computer Science':
695ff980-b45a-425f-bee6-51bf6e962d90-de2d1a1c22e0.small Video Game Design History
Learn about the evolution of video games from experts at The Strong National...
595aa0b6-077d-439b-a651-95a9ee65c51a-fc966dc2648f.small Video Game Design and Balance
Learn about the video game design process and experiment with effective methods...
Fcd236ea-68ae-46f7-b991-849a41cebc64-0ea84acf6bad.small Video Game Asset Creation and Process
Learn about the tools, processes and platforms that allow video game assets...
A76b4bf6-0720-4ffd-9858-cf71e6966ee7-42256c298336.small Introduction to Java Programming: Fundamental Data Structures and Algorithms
Learn to enhance your code by using fundamental data structures and powerful...
E391b4dd-ed7e-4aff-b349-7018280ec0f7-81fc169bd16f.small Arduino Programming, from novice to ninja
Learn to program an object using basic electronics and Arduino, and see that...
More from 'MIT OpenCourseWare':
1-00s12 Introduction to Computers and Engineering Problem Solving
This course presents the fundamentals of object-oriented software design and...
1-010f08 Uncertainty in Engineering
This course gives an introduction to probability and statistics, with emphasis...
1-011s11 Project Evaluation
1.011 Project Evaluation covers methodologies for evaluating civil engineering...
1-012s02 Introduction to Civil Engineering Design
1.012 introduces students to the theory, tools, and techniques of engineering...
1-017f03 Computing and Data Analysis for Environmental Applications
This subject is a computer-oriented introduction to probability and data analysis...

© 2013-2019