Home » Course Layouts » Free Course Layout Udemy

This course provides an introduction to the fundamental principles and techniques of software development that have greatest impact on practice.

0

English

English [CC]

FREE

Description

Topics include capturing the essence of a problem by recognizing and inventing suitable abstractions; key paradigms, including state machines, functional programming, and object-oriented programming; use of design patterns to bridge gap between models and code; the role of interfaces and specification in achieving modularity and decoupling; reasoning about code using invariants; testing, test-case generation and coverage; and essentials of programming with objects, functions, and abstract types. The course includes exercises in modeling, design, implementation and reasoning.

Course content

  • Introduction Unlimited
  • Classes Unlimited
  • Subclassing and interfaces Unlimited
  • Designing state machines Unlimited
  • Implementing state machines Unlimited
  • State machine invariants Unlimited
  • Designing stream processors Unlimited
  • Decoupling and interfaces Unlimited
  • Testing and coverage Unlimited
  • Designing a SAT solver, part 1 Unlimited
  • Designing a SAT solver, part 2 Unlimited
  • Debugging Unlimited
  • Designing a SAT solver, part 3 Unlimited
  • Rep invariants, equality, visitors Unlimited
  • Little languages Unlimited
  • Basics of mutable types Unlimited
  • Event-based programming Unlimited
  • Designing a photo organizer Unlimited
  • Implementing a photo organizer Unlimited
  • Concurrency Unlimited
  • Relational databases Unlimited
  • Conclusion Unlimited

N.A

0 ratings
  • 5 stars0
  • 4 stars0
  • 3 stars0
  • 2 stars0
  • 1 stars0

No Reviews found for this course.

Instructor

Massachusetts Institute of Technology
Profile Photo
5 5
1
1916
1520

Explore Free Courses

Access valuable knowledge without any cost.