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

Prof. Jonathan Shewchuk
[email protected]
(But send class-related mail to [email protected] 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 Image or PDF Image links (which save paper).

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


Eligibility

Grading