Schedule: A schedule, which is updated frequently, is posted here. You are responsible for checking it before every class.
Textbook: Instead of a traditional textbook, you will subscribe to a SafariU bookshelf ($39.99 for 120 days) that is populated with 9 books. If you do not purchase the subscription, you will need to get access to the books in some other way (e.g. the library). The books are:
Don't worry; you won't need to read all nine books in their entirety. I will assign selected sections throughout the semester.
Prerequisites: Prerequisite: CS 146, CS 151 (with a grade of
"C-" or better in each); CS 100W (with a grade of C or better) If you are
registered for the class, you must email me your answers to the prerequisite quiz by 23:59 of the day indicated in
the schedule, or I will drop you from the class for failure to fulfill the
prerequisites.
Add Policy: To add the course, you must submit your solution to the prerequisite quiz, I will randomly choose among add requests that I receive up to the start of add request processing (see the calendar below), and in the order of receipt thereafter. If there is space, I will reply to your email with an add code. You must use your add code within 48 hours and email me to confirm that you added the class, or the add code will be reassigned to someone else.
Class Attendance: Class attendance is not optional. I expect each student to be present and punctual at every scheduled class. Be prepared to present the status of your project work every Monday.
Issue Tracking System: You will need to sign up for an account
with the Track+ issue
tracking system. All class announcements (including homework and
project descriptions) will be distributed through the issue tracking
system. All issues of general interest to the students of this class (in
particular, homework or project clarifications) must be submitted to me
via the issue tracking system. Use email for personal and confidential
issues only.
Homework: Check in your submissions to CVS, by 23:59 PST of the
due date. Homework must be submitted on time. No extensions are granted
under any circumstances. Schedule your time well to protect yourself
against unexpected compatibility problems, hardware breakdown, network
failures, etc.
Project: There will be a group project throughout the semester.
Groups have 4 or 5 members. I will assign the groups.
Quick quiz: There will be a five minute online quiz at the beginning of every class. Quizzes will focus on reading assignments. Everyone will be able to see your quiz answers (but not your grade).
Publicly Viewable Work: Your class work (including homework, exam, and project work) may be viewable by other students of this course. Your grades will not be viewable by others.
Plagiarism: You may use code handed out by me, or code from the textbook, but you may not copy code from another student. Do not give your code to someone else. If discovered, neither the originator nor the copier of plagiarized code will receive credit, as the grader will not attempt to find out the true author.
Be sure not to copy and paste materials that you find on the internet without attribution. If you are at all unsure about what constitutes plagiarism, you need to work through the tutorial at http://tutorials.sjlibrary.org/plagiarism/index.htm.
I report all incidents of plagiarism to the university.
Exams: There will be 2 exams, each one class period long, and a final. Exams cannot be made up, except for reasons of illness, as certified by a doctor, or documentable extreme emergency. Makeup exams may be oral.
Laptops: You will be required to bring a wireless laptop to all
(!) classes and exams. You need to have the following tools installed on
your laptop:
Grading Policy:
In the event that the department does not provide a grader, I will
grade homework assignments "holistically", by assigning a letter grade to
each assignment, without computing individual scores. Letter grades will
be:
A = all (or almost all) of the assignment solved and documented
and packaged in a professional manner
B = most of the assignment
solved, but at least one key issues missing, or significant issues with
documentation or packaging
C = some of the assignment solved, with
at least half of the key issues resolved, but at least two key issues
missing
D = a solution has been attempted, with at least one but but
less than half of the key issues resolved
F = no solution has been
attempted, or the attempted solution did not resolve any of the key issues
of the assignment
Copyright of Materials: All materials created by the instructor for this course, including lectures, handouts, homeworks, exams, solutions, projects, and so on, are copyrighted property of the instructor. You may transscribe or record lectures or copy course materials for the use of yourself and other students registered in this course. You may not sell or give transscriptions or recordings of lectures or copies of course materials to others without the prior written consent of the instructor.
Software engineering principles, requirements elicitation and analysis, design, configuration management, quality control, project planning, social and ethical issues. Required team-based software development, including written requirements specification and design documentation, oral presentation, and tool use.
To educate students on the general concepts of software engineering and all the relevant subjects in the software development process through a hands-on team term project.
Reason about and apply the entire process of software engineering. Be able to come up with a software project schedule and use software tools like Microsoft Project or similar for project scheduling purposes. Be able to use version control tools like CVS.
Be able to solicit, elaborate, and validate specifications for given software projects.
Understand what software design architectures are suitable for various software projects. Apply appropriate software design to a group project. Be able to use appropriate software design tools.
Understand the software validation process and be able to use issue tracking tools.
Upon successful completion of this course, a student is expected to have the following skills, in the context of projects of moderate size (<= 1 year of development time, involving <= 10 participants)