Professor Rupak Majumdar
Computer Science
University of California at Los Angeles
Course Information
Mondays and Wednesdays 12:00-1:50 in 5440 Boelter Hall
- Friday 12:00-1:50 Boelter 5249
First lecture: March 30
In-class Exam: May 18
Last lecture: June 5
Rupak Majumdar
4531E Boelter Hall, 825-8127,
r u p a k @ cs . ucla . edu
Office hours: Wednesdays 2:00-3:00 in 4531E Boelter Hall,
and by appointment
Tushar Agrawal
Office hours: ??:??-11:30 M 4428 Boelter Hall
and by appointment (t a g r a w a l @ cs. ucla. edu)
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.
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.
Code Complete, by Steve McConnell,
Microsoft, 2004.
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
-
Software Engineering
by Ian Sommerville, Addison Wesley, 2006.
(8th edition)
-
Software Engineering
by Roger Pressman, McGraw-Hill.
(Earlier editions of both books should suffice).
The following book is also useful.
Design patterns: elements of reusable object-oriented software,
by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides.
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.
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!
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.
Your final grade will be based on the sum of your homework, in-class
exam, and
final project scores.
-
There will be 4 homework problems, each worth 20 points.
Excuses for late or missed homeworks will not be accepted.
The homework will count for 20% of the final grade,
the exam will count for 30%,
and the final project will count for 50%.
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.
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.