CS4 (CS39L)

UC Berkeley Introduction to Computing for Engineers. Fall 2004, CC#: 26253

Java for Engineers and Scientists, 2/E
ISBN: 0-13-033520-7, Prentice Hall © 2004
CS4 (CS39L)


FS Seminars | CourseWeb | General Catalog | Enrollment

Lec MW 1-2pm, 320 Soda
Lab TuTh 2-4pm, 380 Soda
Dis Th 4-5pm, 380 Soda

Home | Final Project | Overview | General Info | News | Calendar | Schedule | Staff | Resources | Photos | Newsgroup | AuthNews


CS39L is a pilot freshman/sophomore seminar version of a new course, Computer Science 4: Introduction to Computing for Engineers. This course is designed to give students a fun and interesting introduction to computing using science and engineering examples. It is intended for students with little or no prior programming experience. The course will be taught using the Java programming language and may be used as a prerequisite to CS61B, although it does not replace CS61A in the EECS curriculum. In its final form, CS4 is intended to be a precursor to a modified E77, which will teach more advanced numerical techniques. The pilot version may be used (by petition) as a replacement for E77 in ME, IEOR and some areas of Bioengineering. It may also be used as a replacement for CS3 for EECS students; it is similar in scope to CS3, but emphasizes engineering rather than symbolic computation. Enrollment for the pilot offering will be limited to 30 first- and second-year students. In subsequent years it will be ramped up to be offered both terms to accommodate all interested freshmen.


2004-09-01 From this point on, we'll be putting all news on the UC-WISE site as "announcements".
2004-08-30 Welcome to CS39L (a pilot version of CS4)! We will refer to the course as CS4 from this point on (handouts, account forms, etc.). – Dave, Dan and Kathy


Wk Date (2004) Concept Computing Topic Engineering Topic
1 08-30 M Part I
Computing Basics
Welcome / Using a computer, Java & the environment [AGY/Y]  
09-01 W
2 09-06 M Variables, Primitive numeric types, Expressions, Assignment statements, Debugging, Relational / Logical operators [/Y] 2D/3D plotting, parametric equations / Basic physics analytical simulation
09-08 W
3 09-13 M Part II
Control Concepts
Methods / Conditionals [G/G] Problem formulation [G/G]
09-15 W
4 09-20 M Iteration / Numerical Simulation I, Debugging [A/A] Search, Monte Carlo methods, Incremental numerical simulations [G/A]
09-22 W
5 09-27 M Numerical Simulation II / 1D Arrays [A/Y] Numerical Simulation / 1D Array sandbox [A/Yt]
09-29 W
6 10-04 M 2D Arrays, Cellular Automata (Conway's game of Life) / Sharks & Fish [G/Y] Sampling, 2D Array Sandbox, 2D,3D Visualization / Sharks & Fish [G/Y]
10-06 W
7 10-11 M Using objects I / Using objects II [G/Y] Using objects sandbox [G/Y]
10-13 W
8 10-18 M Using objects III / Newtonian Mechanics I [wy/A]
[Y/G] Vector, Survey /
IN-LAB (Thursday) MIDTERM:
(covers up through week 7)
10-20 W
9 10-25 M Part III
Data Structures
Planetary motion physics (use of Interfaces) / Newtonian Mechanics II [A/A]  Newtonian mechanics: Earth, Moon / Bouncing balls using forces (give back midterm) [A/A]
10-27 W
10 11-01 M Linear / Tree recursion [G/G] | Sandbox recursion / Fractals [Y/Y]
FINAL PROJECT handed out: Lunar Lander
(due/demo in lab 12-02)
11-03 W
11 11-08 M Interfaces (Higher-order functions) & Optimization I / II [A/A]
Sandbox optimization / Veteran's day Holiday [A/]
11-10 W
12 11-15 M Objects & Inheritance / Java API, Javadoc, & Exceptions [Y/G] Sandbox inheritance / Lunar Lander [Y/LL]
11-17 W
13 11-22 M Part IV
Advanced Topics
Matlab & File IO / Efficiency [A/Y] Matlab / Thanksgiving Holiday [A/]
11-24 W
14 11-29 M Containers & Linked Lists / Streams [Y/G] Linked Lists / Final project demos! & Final survey [Y/LL]
12-01 W
15 12-06 M Visualization & 2D Linear Transformations / Farewell [G/AYG]
FINAL REVIEW MONDAY EVE starts at 6:25pm in 310 Soda
(Note that the doors to Soda lock at 6:30pm)
2D Linear Transformations [G/FINAL-EXAM]
(2004-12-09 @ 2-5pm)
12-08 W

Weekly Schedule






1-2pm Lecture @ 320 Soda   Lecture @ 320 Soda    
2-3pm   Lab @ 380 Soda   Lab @ 380 Soda
4-5pm   Discussion @ 380 Soda



Dave Auslander
Mechanical Engineering
5120 Etcheverry Hall, x2-4930,
Office Hours: M 2:15-4pm, W 11am-1pm

Dan Garcia

Lecturer PSOE
Computer Science
795 Soda Hall, x2-9595,
Office Hours: M 3-4pm, W 2-3pm

Kathy Yelick
Computer Science
777 Soda Hall, x2-8900,
Office Hours: M 11-noon, Tu 1-2pm

Teaching Assistants (TAs) and TAs-in-Training (TAsiT)

TA Chung Ming Wu
Office Hours:
Monday 4-5pm (711 Soda)
Wednesday 3-4pm (330 Soda)
Friday 3-4pm (711 Soda)

TA Michael Yu
Office Hours:
Monday 4-5pm (711 Soda)
Wednesday 3-4pm (330 Soda)
Friday 3-4pm (711 Soda)

TAiT Wei Tu

TAiT John "JJ" Jordan

Readers & Lab Assistants

Reader Otto Chiu

Lab Assistant Charles Leung

Lab Assistant Emad Salman

Lab Assistant Maciek Sakrejda

If you have a question, here are the ways to get an answer (rated from best to worst):

  1. Search for the answer yourself. Far too often students ask a question whose answer is available on this very page or on the top of assignment handouts
  2. Ask a fellow classmate
  3. Our newsgroup, ucb.class.cs4
    1. First read it to see if your question has already been asked
    2. If not, ask it and check back for your answer
  4. Ask your TA in discussion section, lab, or office hours
  5. Ask Dave/Dan/Kathy in office hours
  6. Ask Dave/Dan/Kathy in lecture
  7. Send your TA email
  8. Send Dave/Dan/Kathy email. Note that this is by far the worst way to ask a question. Unfortunately, email as a communications medium simply does not scale to 30 students.

Resources and Handouts

Java for Engineers and Scientists, 2/E cover imageWe will be using Java for Engineers and Scientists, 2/E book ("JES"). The "2/E" means "2nd edition". ISBN: 0-13-033520-7, Prentice Hall © 2004. The book is available in the Cal bookstore in the student center.

Eclipse logoWe will be using the Eclipse Java Interactive Development Environment (IDE). Be sure to download version 3.0.1 at home (it's already installed on the laptops in the lab)! Eclipse supports plugins, and we will be using the Gild 2.0.3 plugin. You can also get it from our local mirror as the main site is often down.

We will be using Java SDK 1.4.2. The book uses this version, and it is readily available on all platforms. Java SDK 1.5 (Sun calls this Java 2 Platform, Standard Edition (J2SE) release 5.0) is still in Beta (2) as of this writing and has some nice new features, but hasn't been fully adopted by everyone (IDE, book & OS authors) yet.

Pair ProgrammersWe will be using Pair Programming: "Two programmers working side-by-side, collaborating on the same design, algorithm, code or test. One programmer, the driver, has control of the keyboard/mouse and actively implements the program. The other programmer, the observer, continuously observes the work of the driver to identify tactical (syntactic, spelling, etc.) defects and also thinks strategically about the direction of the work. On demand, the two programmers can brainstorm any challenging problem. Because the two programmers periodically switch roles, they work together as equals to develop software." -- Laurie Williams, North Carolina State University Computer Science

Our mobile lab is brought to us through a generous donation from the HP foundation and its Technology for Teaching grant.

CS4, http://inst.eecs.berkeley.edu/~cs4/ (Last Updated: 2004-12-06 @ 09:47:12)