6.005 — Software Construction
## Tool Setup Sessions
**6.005 requires you to set up a development environment on your computer.** If you are not familiar with the Eclipse IDE and the Git version control system, attend a tutorial on Wednesday or Thursday evening where TAs can help you out.
**[Getting Started with Eclipse](eclipse/)** and **[Getting Started with Git](git/)** offer practical pointers on using these tools.
Wednesday, Feb 5Thursday, Feb 6Friday, Feb 7
7:30pm to 9:30pm in 32-044 Setting up Java, Eclipse, & Git **PS0**: questions on warmup & `drawSquare` 7:30pm to 9:30pm in 32-044 Setting up Java, Eclipse, & Git **PS0**: questions on warmup & `drawSquare` 11am in lecture **In-lecture exercise**: You must have Java, Eclipse & Git set up & working on your laptop
## Java Tutorial Sessions
**6.005 will not cover the basics of writing and running Java code in lecture or recitation.** If you are not familiar with Java, review the materials below and attend a tutorial on Saturday or Sunday afternoon where TAs can help you out.
[See below](#materials) for lecture slides and short programming exercises to review.
Saturday, Feb 8 Sunday, Feb 9
3pm to 5pm in 32-044 Types, operators, methods, conditionals **Review**: 6.092 Lectures 1 & 2 Examples: GravityCalculator, FooCorporation **PS0**: questions on warmup, `drawSquare`, & `drawRegularPolygon` 3pm to 5pm in 32-044 Loops, arrays **Review**: 6.092 Lectures 3 & 4 Examples: Marathon, Runner and Race **PS0**: questions on `drawRegularPolygon` & `calculateHeadings`
### Office Hours Regular office hours will begin on **Monday, Feb 10**. ----

Materials

These lecture slides and short programming assignments are from [IAP course 6.092](https://stellar.mit.edu/S/course/6/ia11/6.092/). They were authored by Evan Jones, Dina Kachintseva, Adam Marcus, and Eugene Wu. ### Lectures For best results, review these slides *before* attending a tutorial session. TAs will be ready to answer questions and discuss the examples -- we will not be delivering lectures from the slides. - [Lecture 1 - Types, Variables, Operators](https://stellar.mit.edu/S/course/6/ia11/6.092/courseMaterial/topics/topic2/lectureNotes/lecture1/lecture1.pdf) - [Lecture 2 - More Types, Methods, Conditionals](https://stellar.mit.edu/S/course/6/ia11/6.092/courseMaterial/topics/topic2/lectureNotes/lecture2/lecture2.pdf) - [Lecture 3 - Loops, Arrays](https://stellar.mit.edu/S/course/6/ia11/6.092/courseMaterial/topics/topic2/lectureNotes/Lecture3/Lecture3.pdf) - [Lecture 4 - Classes and Objects](https://stellar.mit.edu/S/course/6/ia11/6.092/courseMaterial/topics/topic2/lectureNotes/lecture4/lecture4.pdf) ### Short Programming Assignments Use these assignments to practice Java before diving into [PS0], [Git], and [JUnit]. [PS0]: http://web.mit.edu/6.005/www/sp14/psets/ps0/ [Git]: http://git-scm.com [JUnit]: http://junit.org **These assignments are not required for 6.005.** You will not turn them in. To work on the assignments, create a new Eclipse Java project (*File → New → Java Project*, name it `tutorial`, click *Finish*). Then create a new class file (*File → New → Class*, enter the CamelCase name, click *Finish*). Then copy-and-paste in the provided starting code. To run a class with a `main` method, right-click and choose *Run As → Java Application*. - [Assignment 1 - GravityCalculator](https://stellar.mit.edu/S/course/6/ia11/6.092/courseMaterial/homework/assignments/assignment1/assignment/1/assignment1.html) - [Assignment 2 - FooCorporation](https://stellar.mit.edu/S/course/6/ia11/6.092/courseMaterial/homework/assignments/assignment2/assignment/1/assignment2.html) - [Assignment 3 - Marathon](https://stellar.mit.edu/S/course/6/ia11/6.092/courseMaterial/homework/assignments/assignment3/assignment/1/assignment3.html) - [Assignment 4 - Runner and Race](https://stellar.mit.edu/S/course/6/ia11/6.092/courseMaterial/homework/assignments/assignment4/assignment/1/assignment4.html) ---- ### Have fun in 6.005!