CS 4970 & CS 4971: Service Learning Practicum (SLP)

Go up to the main UVa page (md)

This syllabus applies two two courses: CS 4970 in the fall of 2014 (called "Capstone Practicum I") and CS 4971 in the spring of 2015 (called "Capstone Practicum II").

Fall 2014 and Spring 2015, https://github.com/aaronbloomfield/slp/

Fall 2014: M/W/F 10:00-10:50, Rice 130

Spring 2015: M/W/F 9:00-9:50, Rice 130

Instructor: Aaron Bloomfield / / @bloomfieldaaron. Office is Rice Hall, room 403. Office hours are M/W 2:00-3:30 in the fall and M/W 1:30-3:00 in the spring.

Course Description: The Service Learning Practicum course involves the application of software engineering and computing principles to the development of a complete software system for non-profit organizations in our community. Students will be expected to work through the entire software system development process, including customer interfacing for requirements, detailed design, and a comprehensive maintenance plan.

Pre-requisites: CS 4970 requires CS 2150 with a grade of C- or above. Ideally you have taken (or are taking) 3240 (Advanced Software Development) or CS 4240 (Object Oriented Design), but those are not required. Instructor permission is required to enroll in the course, however. CS 4971 requires CS 4970 as a pre-requisite.

Course objectives: Students who complete the course sequence will:

Meetings: This course is a practicum, and not a primarily lecture-based course. Thus, the course meetings will be quite different. On a typical week, there will be a group meeting day Monday, a lecture on Wednesday, and no class on Friday. Note that there will be some weeks where we will have classes on Wednesdays and/or Fridays, such as the first two weeks of the fall semester. In addition, once groups are assigned (late September), each group will have to meet with the customer once every 2 weeks for about 1 hour, and will have a SEPARATE meeting with the course instructor once every 2 weeks (for about 30 minutes).

Participation: Participation is vital to this course. You must participate in the lecture (i.e., by attending) and in your project and group meetings. You must participate in the work of the group -- this means that everybody must contribute to the code base. Furthermore, you will be required to fill out occassional surveys (3-4 a semester) and complete your time tracking.

Grades: See the first slide set for details. This course is not being graded on a bell curve, which means that everybody could receive an A. Likewise, everybody could receive a D. Any disagreement with any of the returned grades, including iteration evaluations, must be brought up within two weeks of when the grade was returned. Failure to produce a viable and working software system -- in either December (for CS 4970) or May (for CS 4971) -- will result in either an incomplete or failure for the entire group. Note that for the 4th year BS CS majors, this will prevent May graduation.

Special Circumstances: Students with special circumstances (athletics, extra time required on exams, LNEC considerations, etc.) need to let me know during the first week of class.

Textbooks: None; however, you may still have to purchase something (see the Github section, below).

Assignments: For the first few weeks, there will be individual homeworks, about 1 per week. Once the projects are assigned in late September, the rest of the assignments will effectively be project milestones.

Exams: None planned. I reserve the write to add one if I feel like I want to spend some time grading. There will be an individual project in lieu of the final exam.

Github: We will be using github for source code management. The projects will be kept in private repositories, which will be provided to you at no cost. However, for your individual homeworks, you will need to acquire 2 private repositories. Students can get those for free, although you must give them a week or so to process your request. If you have used all of yours, or if you wait until the last minute to request your free private repos, then you will have to purchase some. The private repos will need to be kept until the assignment is graded and returned.

Time Tracking: Time tracking: each student must keep very careful track of the number of hours s/he works on the project. This must be totaled by week. This is not expect to take very long to do (say, 2 minutes each week), but must be done carefully from the beginning of the course. More info on this during the first lecture.

Miscellaneous: There are a few miscellaneous topics:

Honor Policy: Standard UVa honor policy. For this course, that means using other code without appropriate attribution.