CS 4 (aka CS 39L)
Introduction to Computing for Engineers

Prof. Jonathan Shewchuk
jrs@cory.eecs
(But send class-related mail to cs4@cory.eecs so the TAs can respond too.)

Spring 2006
Lectures: Mondays and Wednesdays, 5:30-6:30 pm, 320 Soda Hall
Labs: Mondays 6:30-8:30 pm and Thursdays 5:00-8:00 pm, 277 Soda Hall

The final exam takes place in lab (277 Soda Hall) on Thursday, May 18, 5-8 pm.


CS 4 (currently called ``CS 39L'' in TeleBears) is an introductory computer programming course for students with no (or little) programming experience. It is an alternative to CS 3 or E 77 that employs programming examples from engineering and science (as opposed to the symbolic computing emphasis of CS 3). The main programming language of CS 4 is Java (as opposed to Scheme in CS 3 or Matlab in E 77), which is used heavily in industry.

This spring, a pilot version of CS 4 is being offered as a freshman/sophomore seminar (CS 39L). This means you will receive individual attention that would be impossible in CS 3 or E 77. To sign up, just register for CS 39L in TeleBears before spaces run out.

CS 39L may be used (by petition) as a replacement for E 77 for students in Mechanical Engineering, IEOR, the Haas School of Business, and some areas of bioengineering. Of course, it may be used as a replacement for CS 3 for EECS students.


Textbook

Stephen J. Chapman, Java for Engineers and Scientists, Second Edition, Pearson Prentice Hall, 2004. ISBN # 0-13-033520-7. The first edition is not recommended.

Information


Lectures

The following schedule is tentative. There may be changes as the semester progresses, so check here periodically.

Some lecture notes can be obtained by clicking on the lecture titles (for ASCII) or the PostScript or PDF links (which save paper).

Topic Reading Due
1: January 18 Overview; expressions & variables Sections 1.1, 1.3-1.6, 2.10 .
2: January 23 Types & conditionals Sections 2.1, 2.2, 2.4, 3.4 .
3: January 25 Objects & methods Sections 1.8, 1.9, 2.3 .
4: January 30 Defining classes Sections 2.7, 6-6.2, 7-7.3 Homework 1
5: February 1 Constructors & pass by value Sections 6.3, 6.5, 6.8 .
6: February 6 Loops & boolean operators Sections 3.3, 4.1, 4.2 Homework 2
7: February 8 Physical simulations . .
8: February 13 Variables and scope Sections 7.4, 7.7 Homework 3
9: February 15 Arrays Sections 5-5.4 .
February 20 President's Day . .
10: February 22 2D arrays & ``for'' loops Section 4.3, Chapter 11 .
11: February 27 ``switch'', ``break'', ``continue'' . Homework 4
12: March 1 Cellular automata . .
13: March 6 Software engineering, overloading, char . Homework 5
14: March 8 Object-oriented programming . .
15: March 13 Euclid's GCD algorithm . Homework 6
16: March 15 The stack & the heap . .
March 16 MIDTERM (in lab) covers Lectures 1-14 .
17: March 20 Recursion . Homework 7
18: March 22 Binary search . .
March 27-31 Spring Recess
19: April 3 Collision simulation . Homework 8
20: April 5 Fractals & recursion . .
21: April 10 Rocket motion . Homework 9
22: April 12 Optimization . .
23: April 17 Nelder-Mead simplex optimization . Homework 10
24: April 19 Java interfaces & inheritance . .
25: April 24 More inheritance . Homework 11
26: April 26 Linked lists . .
27: May 1 Matlab . Homework 12
28: May 3 Performance . .


Eligibility

Grading