Online courses directory (779)
This course will provide a gentle, yet intense, introduction to programming using Python for highly motivated students with little or no prior experience in programming. The course will focus on planning and organizing programs, as well as the grammar of the Python programming language.
The course is designed to help prepare students for 6.01 Introduction to EECS I. 6.01 assumes some knowledge of Python upon entering; the course material for 6.189 has been specially designed to make sure that concepts important to 6.01 are covered.
This course 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.
There are plenty of exciting notions to see in this class, they are simply the most cutting edge techniques for the most cutting edge application on the web. Despite its appeal, this course is not an easy one. It is actually rather demanding. It will draw from both your creative side AND your analytical side. Many of the programming aspects are quite complex and to be able to turn these concepts into art can be quite a mind bender. But if you learn to master all that is viewed in this course, you will be amongst the most sought-after web specialists out there.
This computer science course is the second of a two-course sequence on how to write good software using modern software engineering techniques.
This course will dig deeper into what makes for "good" code -- safe from bugs, easy to understand, and ready for change. We will explore two paradigms for modern programming: (1) grammars, parsing, and recursive datatypes; and (2) concurrent programming with threads.
This is a challenging and rigorous course that will help you take the next step on your way to becoming a skilled software engineer.
Photo by raincrystal on Flickr. (CC-BY-SA) 2.0
This course covers concepts and techniques for the design and implementation of large software systems that can be adapted to uses not anticipated by the designer. Applications include compilers, computer-algebra systems, deductive systems, and some artificial intelligence applications. Topics include combinators, generic operations, pattern matching, pattern-directed invocation, rule systems, backtracking, dependencies, indeterminacy, memoization, constraint propagation, and incremental refinement. Substantial weekly programming assignments are an integral part of the subject.
There will be extensive programming assignments, using MIT/GNU Scheme. Students should have significant programming experience in Scheme, Common Lisp, Haskell, CAML or some other "functional" language.