Programming in Java

Programming in Java will be in room 1-115 on Mon/Tue/Thu Jan 8,10, and 12, (2012) from 5-7:00pm. I will aim to cover lecture material in about 90 minutes, leaving 30 minutes for questions. Please check out SIPB's IAP activities for the latest scheduling information.

Questions can be sent to sipb-iap-java@mit.edu.


Getting Started
Welcome to the Programming in Java page! Here are a few links to get you started:

  1. Java Development Kit (JDK) [download and install Java SDK]
  2. Eclipse Platform [download and install Eclipse IDE]
  3. The Java Tutorial [learn Java basics]
  4. Java Language API [the standard libraries reference]

If you'd like to learn more, check out further reading.


About this Course
This course is aimed at intermediate programmers, though it should be suitable for quick beginners or seasoned hackers curious about Java. This course will NOT teach you how to program.

As an example of the level you should expect, I'll briefly touch on the syntax of a for loop and mention a couple tricks or caveats, but won't explain what it is, how it works, or where you would use it. As we move beyond the basics, I'll spend more time explaining design decisions and give examples (and maybe demonstrations) of where specific Java features are useful.


Last year's Session Topics:

  1. Introduction to Java (syntax, variables, methods) [pdf]
  2. Object Orientation (inheritance, abstraction, etc.) [pdf]
  3. Cross-platform GUIs [pdf, resources]
  4. Advanced Java Programming* [pdf]

This year's Session Topics:

  1. Introduction to Java (syntax, variables, methods) [pdf][code]
  2. Object Orientation [pdf][code]
  3. Cross-platform GUIs [pdf][applet code][swing code]

More details will be posted here as the course progresses, including course notes and demonstration code.


*Note about Advanced Topics
This course is only a basic introduction to get you on your feet in Java. However, I suspect that some of you might want a little more depth on certain subtopics, either because the project for which you learning java is likely to go in that direction or because you are curious about how Java handles a particular design aspect. With that in mind, if you request that I cover a particular topic in the third session, I would be more than happy to construct a session around that.

Here are a few topics we may cover during the advanced section:



Resources