Michael Bolin's 6.170 Recitation

www.bolinfest.com 
This web site is for students in the recitation that I am teaching for 6.170 Fall 2004. The recitation meets Thursday afternoons from 2-3pm in 34-302 and my office hours are after recitation from 3-5pm in 32-044A.
Recitation Notes
9/16 Recitation 2
9/23 Recitation 3
10/7 Recitation 5
10/14 Recitation 6
10/28 Recitation 8
Recommended Readings
Athena Pocket Reference
The Java IAQ
Programming by Coincidence
Writing a Code Generator
in Java
The Story of Mel
A Comparative Overview of C#
Beating the Averages
J2SE 5.0 New Features

Recommended Readings

Every week, I will post a reading that I think you may find interesting as an aspiring software engineer. These readings are completely optional and reading them has no impact on your grade whatsoever; however, I will try to find readings that relate to what we are currently doing in 6.170, so hopefully you will find them worthwhile.

Week 1 - Athena Pocket Reference
For the first week of 6.170, I thought that it would be most appropriate to introduce a reading that would help you get around Athena.

Week 2 - The Java IAQ
As many of you are new to Java, I recommend reading this list of Infrequently Answered Questions about Java compiled by Peter Norvig, Google's Director of Search Quality.

Week 3 - Programming by Coincidence
A chapter from The Pragmatic Programmer that talks about programming deliberately, which is an important idea to keep in mind when designing your test suite this week.

Week 4 - Writing a Code Generator in Java
In your problem set this week, you focus on deriving an object model from code, so read this article about doing the opposite: deriving code from an object model.

Week 5 - The Story of Mel
This week we're talking about abstractions and information hiding, but Mel, a Real Programmer, takes information hiding to a whole new level.

Week 6 - A Comparative Overview of C#
In Java, creating the method public int hashcode() instead of overriding public int hashCode() can be a difficult bug to track down. Microsoft's programming language C# (pronounced C-sharp) requires the keyword override to help prevent errors such as these. C# is very similar to Java, so it should be an easy language for you to pick up, but you should read this article so you are also aware of its differences.

Week 7 - Beating the Averages
Recently on the forums we saw a lively debate between Emacs versus Eclipse about which tool Real Programmers use. Another popular debate is in what language Real Programmers program. Paul Graham seems to think this language is Lisp. Read the essay to decide for yourself.

Week 8 - J2SE 5.0 New Features
This week's lectures are about design patterns. We see that some deisgn patterns are so fundamental that they become built-in parts of a programming language, such as the Iterator pattern in Java. See how the newest version of Java has built-in support for the Typesafe Enum design pattern, in addition to support for other new features, such as Generics.



©2004 Michael Bolinwww.bolinfest.com