Programming for the puzzled

Bachelor's degree

In Maynard (USA)

Price on request

Description

  • Type

    Bachelor's degree

  • Location

    Maynard (USA)

  • Start date

    Different dates available

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.

Facilities

Location

Start date

Maynard (USA)
See map
02139

Start date

Different dates availableEnrolment now open

Questions & Answers

Add your question

Our advisors and other users will be able to reply to you

Who would you like to address this question to?

Fill in your details to get a reply

We will only publish your name and question

Reviews

Subjects

  • Programming
  • Syntax
  • Semantics
  • Teaching
  • Algorithms
  • Computer Programming

Course programme

Lectures: 5 sessions / week, 1 hour / session


This seminar 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 was offered during a 2-week period.


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.


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.


Few introductory students want to program for programming's sake. Puzzles are real-world applications that are attention grabbing, intriguing, and easy to describe. Each lesson starts with the description of a puzzle. After a failed attempt or two at solving the puzzle, we arrive at an Aha! moment—a search strategy, data structure, or mathematical fact—and the solution presents itself. The solution to the puzzle becomes the specification of the code to be written.


Students thus know what the code is supposed to do before seeing the code itself. This represents a pedagogical philosophy that decouples understanding the functionality of the code from understanding programming language syntax and semantics. Python syntax and semantics required to understand the code are explained as needed for each puzzle.


The course includes eleven puzzles and related programming exercises that vary in difficulty. Many of the puzzles are well known and have appeared in publications and on websites in many variations. The code corresponding to the solutions of the puzzles covered in the course is available on the course website.


Most of the material in this course is from Devadas, Srini. Programming for the Puzzled: Learn to Program While Solving Puzzles. MIT Press, 2017. ISBN: 9780262534307. [Preview with Google Books]


This is a pass / fail class.


Don't show me this again


This is one of over 2,200 courses on OCW. Find materials for this course in the pages linked along the left.


MIT OpenCourseWare is a free & open publication of material from thousands of MIT courses, covering the entire MIT curriculum.


No enrollment or registration. Freely browse and use OCW materials at your own pace. There's no signup, and no start or end dates.


Knowledge is your reward. Use OCW to guide your own life-long learning, or to teach others. We don't offer credit or certification for using OCW.


Made for sharing. Download files for later. Send to friends and colleagues. Modify, remix, and reuse (just remember to cite OCW as the source.)


Learn more at Get Started with MIT OpenCourseWare


Programming for the puzzled

Price on request