SIMS 255: Foundations of Software Design

Administrivia 


 
 

Lectures & Assignments

Administrivia 

Online Resources

Instructor 

Prof. Marti Hearst (hearst@sims.berkeley.edu)
212 South Hall, 510-642-8016 
Office Hours: Mon 11:00am-12:00pm; Tues 2:00-3:00pm

Teaching Assistants 

Fredrik Wallenberg (fredrik@sims.berkeley.edu)
Office Hours: TBA

Thuan Nguyen (thuann@sims.berkeley.edu)
Office Hours: TBA

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, using UML as the tool for describing the software design.

Prerequisites: knowledge of the basics of Java programming.

Workload

I expect this course to require about 6-10 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.

There may be a final exam; I haven't decided yet.

We may allow students to work in pairs for the programming assignments; details TBA.

Required Textbooks

    Data Structures and Algorithms in Java, 2nd Addition by Goodrich & Tamassia
    UML Distilled, Second Edition by Fowler & Scott

You may order these books from whereever you like.

This is the Amazon link for the data structures book. The link on the SIMIANS site points to the wrong edition of the data structures book.

This is the Amazon link for the UML book.

Email list 

All students in the course must join the mailing list. Subscribe via my.sims.berkeley.edu or send email to majordomo@sims.berkeley.edu and put
    subscribe is255
in the body of the message. Follow the instructions of the followup email message.

Computer Accounts 

See Roberta in 210 South Hall