Introduction to Computers and Engineering Problem Solving

Course Description

This course presents the fundamentals of object-oriented software design and development, computational methods and sensing for engineering, and scientific and managerial applications. It cover topics, including design of classes, inheritance, graphical user interfaces, numerical methods, streams, threads, sensors, and data structures. Students use Java® programming language to complete weekly software assignments.

How is 1.00 different from other intro programming courses offered at MIT?

1.00 is a first course in programming. It assumes no prior experience, and it focuses on the use of computation to solve problems in engineering, science and management. The audience for 1.00 is non-computer science majors. 1.00 does not focus on writing compilers or parsers or computing tools where the computer is the system; it focuses on engineering problems where the computer is part of the system, or is used to model a physical or logical system.

1.00 teaches the Java programming language, and it focuses on the design and development of object-oriented software for technical problems. 1.00 is taught in an active learning style. Lecture segments alternating with laboratory exercises are used in every class to allow students to put concepts into practice immediately; this teaching style generates questions and feedback, and allows the teaching staff and students to interact when concepts are first introduced to ensure that core ideas are understood. Like many MIT classes, 1.00 has weekly assignments, which are programs based on actual engineering, science or management applications. The weekly assignments build on the class material from the previous week, and require students to put the concepts taught in the small in-class labs into a larger program that uses multiple elements of Java together.

Instructor(s): Dr. George Kocur; Dr. Christopher Cassa; Prof. Marta C. Gonzalez

MIT Course Number: 1.00 / 1.001 / 1.002

As Taught In: Spring 2012

Level: Undergraduate / Graduate

Lecture Notes:

There are 33 lectures with active learning exercises during the term, starting with lecture 3 (plus two during the last week of term that you are not required to hand in); you may miss handing in 3 of the 33.

The grade is based only on whether you did them. We don’t excuse or allow late submissions of active learning, since there are so many of them and so many of you; the 3 hand-ins that you can miss are for those cases.

LEC # TOPICS SUPPORTING FILES
Control and Scope
L 1 Course Overview, Introduction to Java (PDF)
L 2 Interactive Development Environment: Eclipse (PDF)
L 3 Operators, Control Structures (PDF) Lecture 3 code (ZIP) (This ZIP file contains: 1 .java file.)
L 4 Data Types, More Operators (PDF) Lecture 4 code (ZIP) (This ZIP file contains: 2 .java files.)
L 5 More Data Types, Control Structures, Intro to Methods (PDF) Lecture 5 code (ZIP) (This ZIP file contains: 5 .java files.)
L 6 Methods and Scope (PDF) Lecture 6 code (ZIP) (This ZIP file contains: 2 .java files.)
Classes and Objects
L 7 Classes and Objects (PDF) Lecture 7 code (ZIP) (This ZIP file contains: 2 .java files.)
L 8 Classes II (PDF) Lecture 8 code (ZIP) (This ZIP file contains: 4 .java files.)
L 9 Methods and Objects, Access (PDF) Lecture 9 code (ZIP) (This ZIP file contains: 9 .java files.)
L 10 Static Methods and Data (PDF) Lecture 10 code (ZIP) (This ZIP file contains: 2 .java files.)
L 11 Arrays, Arraylists (PDF)
L 12 Recursion (PDF) Lecture 12 code (ZIP) (This ZIP file contains: 6 .java files.)
Inheritance
L 13 Inheritance: Subclasses (PDF) Lecture 13 code (ZIP) (This ZIP file contains: 2 .java files.)
QUIZ I
L 14 Inheritance II: Abstract Classes, Methods (PDF) Lecture 14 code (ZIP) (This ZIP file contains: 1 .java file.)
L 15 Inheritance III: Interfaces (PDF) Lecture 15 code (ZIP) (This ZIP file contains: 2 .java files.)
L 16 Design Lab I – Inheritance (PDF)
Graphical User Interfaces
L 17 Introduction to Swing (PDF) Lecture 17 code (ZIP) (This ZIP file contains: 1 .java file.)
L 18 Swing Event Model (PDF) Lecture 18 code (ZIP) (This ZIP file contains: 5 .java files.)
L 19 Inner Classes, Layout Managers (PDF) Lecture 19 code (ZIP) (This ZIP file contains: 6 .java files.)
L 20 Model-View-Controller, Timers (PDF) Lecture 20 code (ZIP) (This ZIP file contains: 6 .java files.)
L 21 2D API, 2D Transformations (PDF) Lecture 21 code (ZIP) (This ZIP file contains: 5 .java files.)
L 22 Design Lab II – Swing (PDF)
Streams (Input/Output) and Exceptions
L 23 Streams I, Exceptions (PDF) Lecture 23 code (ZIP) (This ZIP file contains: 2 .java files and 1 .txt file.)
L 24 Streams II (PDF) Lecture 24 code (ZIP)  (This ZIP file contains: 5 .java files and 1 .txt file.)
QUIZ II
Sensors and Threads
L 25 Sensors I (PDF) Lecture 25 code (ZIP) (This ZIP file contains: 2 .java files.)
L 26 Sensors II (PDF) Lecture 26 code (ZIP) (This ZIP file contains: 5 .java files.)
L 27 Design Lab III – Sensors (PDF)
L 28 Threads (PDF) Lecture 28 code (ZIP) (This ZIP file contains: 3 .java files.)
L 29 Threads and Sensors (PDF) Lecture 29 code (ZIP) (This ZIP file contains: 5 .java files.)
Numerical Methods
L 30 Matrices (PDF) Lecture 30 code (ZIP) (This ZIP file contains: 6 .java files.)
L 31 Linear Systems (PDF) Lecture 31 code (ZIP) (This ZIP file contains: 4 .java files.)
L 32 Integration (PDF) Lecture 32 code (ZIP) (This ZIP file contains: 7 .java files.)
L 33 Root Finding (PDF) Lecture 33 code (ZIP) (This ZIP file contains: 8 .java files.) (Roots.java has been removed due to copyright restrictions.)
Data Structures
L 34 Sorting (PDF) Lecture 34 code (ZIP) (This ZIP file contains: 9 .java files.)
L 35 Stacks, Queues (PDF) Lecture 35 code (ZIP) (This ZIP file contains: 7 .java files.)
L 36 Lists (PDF) Lecture 36 code (ZIP) (This ZIP file contains: 9 .java files.)
L 37 Storing Data: Trees, Hash Tables (PDF) Lecture 37 code (ZIP) (This ZIP file contains: 3 .java files.)

Recitations:

REC # TOPICS SUPPORTING FILES
R1 JAVA and Eclipse – Data Types, Variables, Logical Operators (PDF)
R2 Iteration and Methods (PDF)
R3 Class and Objects (PDF)
R4 Static Array & ArrayList (PDF)
R5 Recursion, Inheritance (PDF)
R6 Abstract Classes/Methods and Interfaces (PDF)
R7 Swing, Frame Customization, Events (PDF)
R8 Phidget Setup, Model-View-Controller, 2D API, Affline Transformations (PDF) Recitation 8 code (ZIP) (This ZIP file contains: 2 .java files.)
R9 Stream and Phidget (PDF)
R10 Threads (PDF)
R11 Matrices, Linear Systems, Integration (PDF)
R12 Linked Lists, Sorting, Stack & Queues (PDF)

Assignments:

ASSIGNMENTS SUPPORTING FILES
Problem Set 0 (PDF)
Problem Set 1 (PDF) Sample Output (TXT)
Problem Set 2 (PDF)
Problem Set 3 (PDF)
Problem Set 4 (PDF) Problem Set 4 code (JAVA)
Problem Set 5 (PDF)
Problem Set 6 and 7 (PDF)
Problem Set 8 (PDF) Problem Set 8 images (ZIP) (This ZIP file conatins: 2 .png files.) (Train images courtesy of Ken Houghton Rail Images.)
Problem Set 9 (PDF)
Problem Set 10 (PDF) Problem Set 10 code (ZIP) (This ZIP file conatins: 3 .java files.)
Problem Set 11 (PDF) Problem Set 11 code (ZIP) (This ZIP file conatins: 2 .java files and 1 .txt file.)

Exams:

In addition to weekly problem sets, students are evaluated based on their performance on 2 in-class quizzes and a final exam. During these exams, students may use their notes and book, but all work must be their own. Note that this section includes quizzes and exams from five past semesters as reference.

Review Materials

Quiz 1 review (PDF)

Quiz 2 review (PDF)Supporting files (ZIP) (This ZIP file contains: 2 .java files.)

Final review (PDF)

Exams

Quiz 1 (PDF)

Quiz 2 (PDF)

Practice Exams and Quizzes

SEMESTERS EXAM
Fall 2008 Quiz 2 (PDF)
Fall 2010 Final (PDF)
Spring 2010 Quiz 1 (PDF)
Quiz 2 (PDF)
Final (PDF)
Spring 2011 Quiz 1 (PDF)
Quiz 2 (PDF)
Fall 2011 Final (PDF)

Tools:

How to install Eclipse for Mac OS (PDF)

How to install Eclipse for Windows (PDF)

How to install Java for Mac OS (PDF)

How to install Java for Windows (PDF)

How to install Phidgets (PDF)

Download Course Materials:

This package contains the same content as the online version of the course, except for any audio/video materials and other interactive file types.

Download here.

Apply to be a Chitika Publisher!

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s