Syllabus for Roster(s):

  • 14Sp CS 3240-001 (ENGR)
  • 14Sp CS 3240-002 (ENGR)
  • 14Sp CS 3240-101 (ENGR)
  • 14Sp CS 3240-102 (ENGR)
In the UVaCollab course site:   CS3240 (S14)

Full Syllabus

CS3240, Advanced Software Development
Beginning of Course Memo for Spring 2014

Instructor:  Dr. Tom Horton: horton.uva@gmail.com. Rice Hall 402.    982-2217.
Office Hours:  Mon., 11am-noon; Wed., 2-3:30pm; Thu., 9:30-10:30am; Fri., 11am-noon

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:

  1. Develop an understanding of how to specify, design, and implement a complex software entity that involves many aspects of modern software systems. 
  2. Master a number of modern tools and a number of difficult technical fields including user interface design, distributed architecture development, and concurrent programming. 
  3. Acquire experience of working on a large software system as a member of a team working on system development and as a member of a team that has to interact with other teams and customer representatives.

Textbooks (none to buy!):

  1. A (Partial) Introduction to Software Engineering Practices and Methods, by Laurie Williams. (Freely available in Collab resources. This is copyright; please respect that.)
  2. Essential Software Engineering.  By Frank Tsui and Orlando Karam. (Free via Virgo.)
  3. Python textbooks, also available free via Virgo.
  4. 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

SW Development Environment: Python 2.7 on any platform. Final deliverables must run on Ubuntu 12.04. Some basic shell scripting may be needed.

Assignments, Exams, Grading, etc.:

There are assignments where much of the work is team-work -- if a student has very bad grades on individual assignments and also poor participation scores on team projects, this may be taken into account when assigning a final grade.

  • Exam 1 (14%):  Thursday, Feb. 20
  • Exam 2 (21%):  Final exam period.  For 11am lecture, Fri., May 9, 9am-noon.  For 2pm lecture, Thur., May 8, 9am-noon.
  • On-line Quizzes (5%):  If these don’t happen enough, this fraction will be added to the exams.
  • Individual HWs (15%):
  • Project (45%):  Includes intermediate deliverables, presentations, demonstrations, final system, and team participation.  (Weights will be announced.)
  • Class participation (up to 5% penalty):
    There may be in-class activities (some announced in advance, some not). You may lose up to 5% 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.

  • Weekly attendance at the lab you are registered for is required.
  • Bringing your own laptop to lab with a working development environment is required.

Labs will be where we focus on project-team activities.  Some labs will involve presentations by teams, discussion, and short team meetings (including reports to course staff).

Project Teams:

The project to be undertaken is a team project. Details of the teams are:

·       Normal team size is four. Team sizes of three or five might arise. Expectations will be adjusted to reflect available person power.

·       You will be assigned to a team. Teams may be paired up to work as a team (i.e. two teams).

·       Once team work begins (probably about week 5), you will remain in the same team for the entire semester unless you are asked to change.

·       In general, all team members will receive the same grade for graded assignments. However, team members will evaluate their peers and any student who appears not be contributing may be penalized.

·       Time-slots for CS3240 team meetings may be reserved in Rice 340, and your team 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 team in this course and cooperate with your colleagues.  Cooperation means attending team meetings, completing your assignments properly and on time, letting your team know if you will be out of town, responding to e-mail from your team, and so on. If there is a lack of cooperation by any team 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 team 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.