Lectures, Labs
   & Assignments

   Administrivia

   Online
   Resources

   Submit
   Homework

 

Administrivia

 

Instructor 

Prof. Marti Hearst (hearst@sims.berkeley.edu)
212 South Hall, 510-642-8016 
Office Hours: Wed 2-3; Thu 2-3

Teaching Assistants 

John Fritch (jfritch@sims.berkeley.edu)
Office Hours: Wed 2-3pm, downstairs lab

Kaichi Sung (ksung@sims.berkeley.edu)
Office Hours: Wed 11am-noon, upstairs lab

Leah Zagreus (lzagreus@sims.berkeley.edu)
Office Hours: Mon 12:30-1:30pm, upstairs lab

Location and Time

The course meets Tues/Thursday from 9am-10:30am in 202 South Hall. The lab meets Wed from 12:30-2:00pm, sometimes in 202, and sometimes in the lab, room 210.

Course Goals

This course is an intensive introduction to programming principles and practice, to prepare students with a non-technical background to take the more technical SIMS courses. We will cover the fundamentals of how computers work, standard algorithms and their analysis (focusing on sorting and searching), fundamentals of data structures and how to choose among them (focusing on trees, graphs, and hash tables), and an introduction to formal languages, focusing on regular expressions and finite automata. We will also study and practice principles of object oriented design.

Prerequisites: knowledge of the basics of Java programming.

Workload

I expect this course to require about 8-12 hours per week outside of class, the amount of time depending on the student's experience with programming and the other material.

There will be readings each week; students are expected to do the readings before lecture. Each week there will also be a required lab session. Often the lab will consist of exercises to better learn the material from class; towards the end of the semester the labs will be used to work on a small programming project (called a mini-project). Students will select a project from among a few choices provided by the instructors.

Grading 

This course is offered on a Satisfactory/Unsatisfactory basis. To pass the course, students must complete all assignments and must attend all lectures and labs.

I currently do not plan to have any exams; however, if people do not work hard on the assignments, I may introduce a midterm or a final exam.

Students are required to do some assignments on their own, and are allowed to work in pairs for other assignments; details will be specified for each assignment.

Required Textbooks

    Computer Science: An Overview, 7th Edition, Glenn Brookshear, Addison Wesley, July 2002 ISBN: 0201781301
You may order this book from wherever you like; for your convenience, you can buy it at Barnes & Noble or at Amazon.com or at Addison Wesley.

    Data Structures & Other Objects Using Java Michael Main, Addison Wesley, 1999. ISBN: 0-201-35744-5

Order from Addison Wesley (they have it in stock, Amazon may be slower). (There is a new edition coming out, but it is not yet published.)

Computer Accounts 

See Roberta in 210 South Hall

Testing Out of the Course

This course is required for all incoming SIMS masters students, unless they test out of the course or opt to take an instructor approved substitute course (such as CS61B).

Anyone who has majored in computer science as an undergraduate or who has taken a significant number of computer science courses should test out of the class.

An exam will be given to those who wish to test out of the course during the lab session on the first week of class (Wed Aug 28th, 12:30pm). The exam will cover object oriented programming in java, basics of analysis of algorithms, and basic knowledge of data structures.