CS 130: Software Engineering, Spring 2009

Professor Rupak Majumdar
Computer Science
University of California at Los Angeles

Course Information

Lectures

Discussion Section

Course Calendar

Instructor

Teaching Assistant

The CS 130 staff is always glad to help you. Whenever you get lost, desire help, or just want to talk, please see the instructor or the TA--don't let yourself fall behind! If you can't come to one of our office hours, send us email to set up an individual appointment.

Textbooks

There is no required text for the class. Instead, I will assign readings from research papers. However, the following book is strongly recommended as supplemental reading. This book gives you many practical suggestions for programming in the large.

Some recommended texts, if you want to follow up on topics in class, are

(Earlier editions of both books should suffice).

The following book is also useful.

Course Description

Building large software systems is hard. Building large systems that work is harder. Building working systems on time, within budget, and ahead of competitors, is harder still. This course covers techniques for dealing with the complexity of large software development projects. We will focus on technical aspects of software engineering for individuals and for small teams, rather than business or management aspects. We will cover requirements, specifications, principles of design, testing and debugging.

This course is one of very few in the undergraduate curriculum where you will be involved in a large-team project. You will learn software engineering by doing it. You will see what it takes to collaborate with people with varying skill stes and approaches to software development. Your team will select the topic of your project (a large-ish software system project) and perform almost all aspects of engineering and development.

Course Requirements

You are expected to be familiar with all the material covered in the lectures. Part of the grade depends on active class participation. There will be a few homework assignment. Your lowest score of the assignments will be dropped for final grading. We will not attempt to grade messy and unreadable solutions. If a problem can be interpreted in more than one way, clearly state the assumptions under which you solve the problem.

In writing up your homework you are allowed to consult any book, paper, or published material, or ask for help from classmates If you do so, you are required to cite the complete bibliographical data of the source(s), or the name of student and the nature of help received. Simply copying is not sufficient; you are expected to write it up in your own words, and you must be able to explain it if you are asked to do so.

Our goal is to get across a maximum amount of understanding in a minimum amount of time. If you have questions about the grading, please talk to the TA. It is extremely important that you continuously stay on top of the material, because every new topic and every new homework may build on previous ones. If you don't understand the material at the beginning, it will be difficult to catch up later. If you encounter problems, you are encouraged to talk to the course staff as soon as possible. Please do not wait until the last moment to do your homework--start thinking about the problems on the day they are handed out!

Examinations

There will be an in-class exam, tentatively scheduled on May 18. The exam will be comprehensive and will be worth 120 points. You are allowed to bring any book or notes of your choice, that is, exams are open book. However, you may not use internet access on any device during an exam.

Grading Policy

Your final grade will be based on the sum of your homework, in-class exam, and final project scores. The homework will count for 20% of the final grade, the exam will count for 30%, and the final project will count for 50%.

Project

The major component of the course will be the course project. Details of the project will be announced in the first couple of weeks of classes.

Academic Integrity

The work you submit in this course must be the result of your individual or team effort. In writing up your homework you are allowed to use any book, paper, or published material. It is permissible to talk to other students about assignments, to discuss particular solutions, and even to receive partial solutions (including code) from others. However, all assistance and cooperation must be cited in the assignment write-up. If you receive any assistance from anyone other than course staff or your partner on an assignment, you must acknowledge in the write-up for that assignment who gave assistance and what assistance was given. Grading will take into account how much help a student received from others (the more help, the lower the grade). Failure to acknowledge sources is plagiarism and will be treated as a serious breach of academic honesty. During the administration of exams any form of cooperation or help is forbidden.

Academic dishonesty has no place in a university; it wastes our time and yours, and it is unfair to the majority of students. Any dishonest behavior will be severely penalized and may lead to failure in the course.


http://www.cs.ucla.edu/~rupak/Courses/spring09/info.html
Last updated on March 24, 2009.