CS 340 - Course Syllabus
Basic Info
2009 Spring Session
http://www.cs.virginia.edu/cs201/
Lecture
Mondays and Wednesdays, 1:00 - 1:50 pmOlsson 120
Labs
Monday Lab, 3:30 - 4:45 pmTuesday Lab, 3:30 - 4:45 pm
MEC 205 or Olsson 001 (check Schedule for location)
Instructor Information
Instructor: Prof. Mark Sherriff
Office: Olsson 228A
Office Hours: TR, 10:00 am - 12:00 pm
Phone: 982-2688
Email: sherriff@virginia.edu
Teaching Assistants: Wil Burns, Mitali Parthasarathy, Michael Lew
Office Hours and Lab Schedule: Google Calendar
Primary Text
A (Partial) Introduction to Software Engineering Practices and Methods by Dr. Laurie Williams
This course pack is available in Collab under Resources. It is NOT to be posted or distributed outside of this class. Breaking this copyright will be considered an Honor Violation and sufficient reason to fail the course.
Other announced web references and sites will also be used.
Course Description
Analyzes modern software engineering practice for multi-person projects; methods for requirements specification, design, implementation, verification, and maintenance of large software systems; advanced software development techniques and large project management approaches; project planning, scheduling, resource management, accounting, configuration control, and documentation. Upon successful completion of this course, students will:
- Develop an understanding of how to specify, design, and implement a complex software entity that involves many aspects of modern software systems.
- Master a number of modern tools and a number of difficult technical fields including user interface design, distributed architecture development, and concurrent programming.
- Develop the skills necessary to prepare professional quality technical documents as are required in the creation of complex software systems.
- Develop the presentation skills necessary to convey elaborate and detailed technical concepts to colleagues.
- Acquire experience of working on a large software system as a member of a group working on system development and as a member of a group that has to interact with other groups and customer representatives.
The topics to be covered in the course include:
- project management, scheduling, planning
- requirements capture and analysis
- specification techniques (semi-formal and formal)
- architecture and design principles, when an emphasis on object-oriented design
- programming and team-based development practices
- verification methods, including testing, inspections
- software maintenance
- software reuse
Course Requirements
You should meet the following requirements to take this class:
- Have taken CS 216 with a C- or better. We'll assume you have mastered the material in the courses leading up to CS216 also, which includes software developments skills in Java and C++.
- Can attend class and lab regularly.
Assessment
Your final course average will be calculated using the following method:
Homework Assignments / In-Class Quizzes - 10% - Each assignment/quiz has a set number points assigned to it, the sum of which equals at least 100.
Presentations - 5% - Teams will do two presentations on course topics during the course of the semester.
Minor Project - 20% - In a team of 4, you will start the course with a "beginner" project that will not be as complex as the later project. This includes weekly deliverables, presentations, demos, the final system, team participation, and lab participation.
Major Project - 35% - In a team of 4, you will develop a "larger" software project, following a specified process. This includes weekly deliverables, presentations, demos, the final system, team participation, and lab participation.
Quiz - 5% - Covering the first third of the course.
Midterm Exam - 10% - Covering the second third of the course.
Final Exam - 15% - Covering mainly the remainder of the course, with some stuff from the first two-thirds.
Participation/Professionalism Penalty - up to 5% - Excessive missed classes, rude behavior toward instructor or classmates, etc can be held against a student when final grades are calculated.
Your final letter grade will be determined by the following scale:
| A+ | 100 | 98 |
Rounding - Grade averages not falling as integers will be rounded up or down with consideration to class attendance and participation. Pass/Fail - A course average of 60 or higher is required for a pass. |
| A | 97 | 93 | |
| A- | 92 | 90 | |
| B+ | 89 | 87 | |
| B | 86 | 83 | |
| B- | 82 | 80 | |
| C+ | 79 | 77 | |
| C | 76 | 73 | |
| C- | 72 | 70 | |
| D+ | 69 | 67 | |
| D | 66 | 63 | |
| D- | 62 | 60 | |
| F | 59 | 0 |
Class Management
General
- Please feel free to stop by my office any time. I'm usually there 9:00-5:00 every day. However, it's always a good idea to email me before you come, just to make sure I'm there, and to make sure I don't leave early.
- Also, feel free to call my office (982-2688) if you can't stop by.
- I can't stress enough that email is the best way to get in touch with me. I check it literally every 5 minutes or so.
- Please don't hesitate to contact me if you have any problems, concerns, questions, or issues regarding the course, material, or anything else in the class.
All students in CS340 must be registered in one of the two labs. Attendance at the lab you are registered for is required. Labs will be where we focus on project-group activities. Some labs will meet in Olsson 001 for hands-on or demonstration activities, but most will meet in MEC 205. Labs in MEC 205 will involve presentations by groups on a regular basis, discussion, and possibly short group meetings (possibly with course staff). More information will be posted on the course website.
Project Groups
The project to be undertaken is a group project. Details of the groups are:
- Normal group size is four. Group sizes of three or five might arise. Expectations will be adjusted to reflect available person power.
- You will be assigned to a group. Groups will be paired up to work as a team (i.e. two groups) for the Major Project.
- You will remain in the same group for the entire semester unless you are asked to change.
- In general, all group members will receive the same grade for graded assignments. However, group members will evaluate their peers and any student who appears not be contributing may be penalized.
- Each group will be responsible for assigning tasks to its group members.
Attendance
- Attendance in lecture is vital to learning the material and making a good grade in this class.
- Attendance will not specifically be taken every lecture, but I will use the information from in-class exercises to get an idea as to who comes to class and who doesn't.
- Further, some graded quiz exercises may take place during lecture.
- Attendance in lab, however, is required. If you are late, you may only earn a portion of the participation grade depending on the severity of your lateness.
- Homework assignments will not be handed out in class. Everything will be available online.
- You will have the ability to declare a certain number of other students (three or so) that you refuse to work with at the outset.
- Partners/groups/teams may not collaborate with any other set of partners/groups/teams unless specified as part of the assignment.
- There will be a total of three tests/exams during the course of the semester, counting the final exam.
- Any test that is missed due to any absence that is not a University Excused Absence will result in a zero (0) for that grade.
- Any test that is missed due to a University Excused Absence or due to circumstances that are approved by me beforehand must be made up within a week of the missed test.
- All grading appeals must be made in writing and submitted with the original assignment (if it is electronic, this is not necessary) either to the instructor (for tests and the project) or to the Head TA (for all other HW assignments).
- All regrade requests must be made within one week of the assignment being returned to the student. After that point, regrades may be done at my discretion.
- Bottom line: the sooner you bring something to my attention, the sooner we can correct it. Do not expect me to be exceedingly generous if you bring HW1 and HW2 to me on the last day of class.
- This syllabus is to be considered a reference document that can and will be adjusted through the course of the semester to address changing needs. This syllabus can be changed at any time without notification. It is up to the student to monitor this page for any changes. Final authority on any decision in this course rests with the professor, not with this document.
- In this course, there will be a focus on working well together and learning about the development process. A large portion of that process involves interpersonal skills and conflict management. Students and staff are all expected to treat each other with respect.
- This includes, but certainly is not limited to:
- Excessive web browsing during class
- Disrespectful language
- Promptness for all deadlines and class meetings
- Quality work
- Students can and will be penalized for unprofessional behavior.
Academic Integrity
The School of Engineering and Applied Science relies upon and cherishes its community of trust. We firmly endorse, uphold, and embrace the University's Honor principle that students will not lie, cheat, or steal, nor shall they tolerate those who do. We recognize that even one honor infraction can destroy an exemplary reputation that has taken years to build. Acting in a manner consistent with the principles of honor will benefit every member of the community both while enrolled in the Engineering School and in the future.
Students are expected to be familiar with the university honor code, including the section on academic fraud (http://www.student.virginia.edu/~honor/proc/fraud.html). Each assignment will describe allowed collaborations, and deviations from these will be considered Honor violations. If you have questions on what is allowable, ask! Unless otherwise noted, exams and individual assignments will be considered pledged that you have neither given nor received help. (Among other things, this means that you are not allowed to describe problems on an exam to a student who has not taken it yet. You are not allowed to show exam papers to another student or view another student's exam papers while working on an exam.) Send, receiving or otherwise copying electronic files that are part of course assignments are not allowed collaborations (except for those explicitly allowed in assignment instructions).
Assignments or exams where honor infractions or prohibited collaborations occur will receive a zero grade for that entire assignment or exam. Such infractions will also be submitted to the Honor Committee if that is appropriate. Students who have had prohibited collaborations may not be allowed to work with partners on remaining homeworks.
LNEC and Other Special Circumstances
If you have been identified as an LNEC student, please let the Center know you are taking this class. If you suspect you should be an LNEC student, please schedule an appointment with them for an evaluation. I happily and discretely provide the recommended accommodations for those students identified by the LNEC. Please contact me one week before an exam so we can make accommodations. Website: http://www.virginia.edu/studenthealth/lnec.html
If you have other special circumstances (athletics, other university-related activities, etc.) please contact your instructor and/or Head TA as soon as you know these may affect you in class.
