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)

Enter UC-WISE

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



Overview

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.



News

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



Calendar

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]
FINAL EXAM IN THE LAST LAB (380 Soda)
(2004-12-09 @ 2-5pm)
12-08 W



Weekly Schedule

Monday

Tuesday

Wednesday

Thursday

Friday

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



Staff

Instructors


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

Dan Garcia

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

Kathy Yelick
yelick@cs
Professor
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
cs4-tb@inst.eecs
Office Hours:
Monday 4-5pm (711 Soda)
Wednesday 3-4pm (330 Soda)
Friday 3-4pm (711 Soda)

TA Michael Yu
cs4-tc@inst.eecs
Office Hours:
Monday 4-5pm (711 Soda)
Wednesday 3-4pm (330 Soda)
Friday 3-4pm (711 Soda)

TAiT Wei Tu
cs4-td@inst.eecs

TAiT John "JJ" Jordan
cs4-te@inst.eecs

Readers & Lab Assistants


Reader Otto Chiu
cs4-rb@inst.eecs

Lab Assistant Charles Leung
cs4-lc@inst.eecs

Lab Assistant Emad Salman
cs4-lb@inst.eecs

Lab Assistant Maciek Sakrejda
cs4-ld@inst.eecs

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)