Syllabus for Roster(s):
- 13F CS 3240-001 (ENGR)
- 13F CS 3240-101 (ENGR)
Full Syllabus
CS3240, Advanced Software Development
Beginning of Course Memo for Fall 2013
Instructor: Dr. Tom Horton: horton.uva@gmail.com. Rice Hall 402. 982-2217.
Office Hours: TBA on Collab site
TAs: TBD
Prerequisite: CS2150 with a C- or better or equivalent. We’ll assume you have mastered the material in the courses leading up to CS2150 also, which includes software developments skills in Java and C++.
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.
Course Objectives: Upon 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.
Textbooks (none to buy!):
- A (Partial) Introduction to Software Engineering Practices and Methods, by Laurie Williams. (Freely available in Collab resources. This is copyright; please respect that.)
- Essential Software Engineering. By Frank Tsui and Orlando Karam. (Free via Virgo.)
- Python textbooks, also available free via Virgo.
- Other readings on the class Web site.
Course Topics:
The topics to be covered in the course include:
- software quality, including testing and inspections
- project management, scheduling, planning, with an emphasis on the Scrum agile method
- requirements elicitation, analysis and specification
- architecture and design principles, when an emphasis on object-oriented design
- programming and team-based development practices
- software maintenance
SW Development Environment: Python 2.7, Ubuntu 12.04 including basic shell scripting
Assignments, Exams, Grading, etc.:
There are assignments where much of the work is group-work -- if a student has very bad grades on individual assignments and also poor participation scores on group projects, this may be taken into account when assigning a final grade.
- Exam 1 (16%): Tuesday, October 1
- Exam 2 (24%): Final exam period: Friday, Dec. 9, 2-5pm
- Individual HWs (15%):
- Project (45%): Includes weekly deliverables, presentations, demonstrations, final system, and team participation. (Weights will be announced.)
-
Class participation (up to 10% penalty):
There will be in-class activities (some announced in advance, some not). You may lose up to 10% if you do not attend class and give your full participation in these activities. If you know you must miss class, I may take this into account if let me know in advance that you'll miss and why.
Labs:
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 involve presentations by groups, discussion, and possibly short group meetings (possibly with course staff).
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).
· Once group work begins (probably about week 4), 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.
· Time-slots for CS3240 group meetings may be reserved in Rice 340, and your group may be expected to meet with the TA in an assigned time-slot weekly with a TA. (Details to follow.)
You are expected to work as a member of your group in this course and cooperate with your colleagues. Cooperation means attending group meetings, completing your assignments properly and on time, letting your group know if you will be out of town, responding to e-mail from your group, and so on. If there is a lack of cooperation by any group member, it must be brought to the attention of the instructor as soon as it happens. If the lack of cooperation is serious, the offending group member’s semester grade will be lowered.
Honor Policy:
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 mean 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.
LNEC:
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.