For Prospective Students {#intro}
The Service Learning Practicum (SLP) is taught through CS 4970 (Capstone Practicum I) in the fall, and CS 4971 (Capstone Practicum II) in the spring. Read on for more details...
Capstone Requirement {#capstone}
In January 2013, the CS faculty approved a degree requirement change that required all BS CS students to complete three "capstone" credits prior to graduation. This requirement could be fulfilled via two different tracks:
- The 'research' track: in this track, students find a faculty member to work with on an independent project. This project could be research, either new or a continuation of research the student is already doing with the faculty member. Or it could be an implementation-based project. This could also be a group project, if the faculty member agreed to this. Students would register for 3 credits of CS 4980 (Capstone Research); faculty could choose to award those three credits across multiple semesters. This is similar to how the senior thesis project advising happened before this degree requirement change, expect that students now receive credit for the technical work performed (STS 4500/4600 only awards credit for the STS side of the senior thesis).
- The 'capstone' track: in this track, students complete both CS 4970 (Capstone Practicum I) in the fall, and CS 4971 (Capstone Practicum II) in the spring. This project is a year-long project-based course. Students are split into groups, and are given an actual customer to interact with. While many of the details of the project are up to the instructor (group size, project domain, internal versus external customers, etc.), it will be the service learning practicum for the next few years. Note that, because they are year-long projects, CS 4970 is a STRICT pre-requisite for CS 4971. As this is now one way to complete the new BS CS capstone requirement, all rising 4th year BS CS majors will be allowed to enroll. All other students (BS CS majors below their 4th year, as well as BA CS and BS CpE majors) will be allowed in by instructor permission.
Students who are graduating in 2016 or later must follow this requirement. Students who are graduating before 2016 may follow any set of requirements when they were a declared major, which means they can follow the previous set of requirements (i.e., without this capstone requirement). Note, however, that because of this change, fewer faculty may be willing to do individual projects.
Enrollment Issues {#enrollment}
Formally, CS 4970 is listed as needing instructor permission to enroll. The reason for this is that some students need this course for graduation, and those students need to get priority to register. If there are enough spaces, then other people will be able to enroll. In the past, the SLP has been able to accommodate anybody who wanted to take the class.
Any BS CS major entering his/her 4th year, and using the sequence to fulfill the capstone requirement, will be allowed to enroll in the course. To get permission, when you attempt to register via SIS, mention that you are a rising 4th year BS CS major and you are going to use this course for your 4th year capstone requirement; no need to send me an e-mail directly.
Anybody else falls into the other category. This includes BS CS majors who are not using it for their capstone sequence (perhaps they are also doing an independent project), 3rd year BS CS majors, and majors in the other two computing degrees (the BA CS in the College, and Computer Engineering). Enrollment for these students is contingent on two factors. The first is that they need to agree (by email is fine) to enroll for the second semester, as we can't have people dropping out of a project mid-way through the school year. The second is that there needs to be enough space (both classroom space and enough projects), and this is something that won't be known until well into the registration period.
In the past, I have always been able to accommodate all students who were interested in enrolling, and I expect to be able to do so in the future as well. I want the SLP to take over the world, so the more people enrolled, the better. For the 2013-2014 academic year, there were 41 students enrolled in the SLP, and 10 were not using it for graduation (for the various reasons described in the previous paragraph).
CS 4970 in the fall is a strict pre-req to enroll in CS 4971 in the spring. All CS 4970 students will be given permission to enroll in CS 4971.
Course Information {#course}
The Service Learning Practicum is a year-long software engineering course. Students will be grouped into teams of 5 or 6, and will develop software for local nonprofits. The course will go through all the stages of software development from requirements through development, and into testing and maintenance. There will be regular (every 2 weeks) meetings with the customer, and more frequent (1 or 2 per week) group meetings. The software developed will vary based on the nonprofit for which it is being built, but some examples include websites, mobile apps, or desktop applications. You can see example projects from previous and current semesters on the main SLP page. Students will be able to request which project they wish to work on.
The course ostensibly meets three times a week: Mondays will be a lecture on some software engineering topic, Wednesdays will be a group meeting (alternating weeks with the customer), and Fridays will be occasional group meetings during the lecture time. Note that this schedule may change depending on the customer meeting availability, lecture progress, course status, etc. The lecture schedule is intentionally light (as is typical of practicum courses) -- and there are no homework assignments or exams -- as there will be significant work to be done outside of class (i.e., the project development).
Students will take turns being the project lead and the secretary; each student will have each role for a "phase" (2-3 iterations, with each iteration being 2 weeks in length). Leads organize the meetings, and submit occasional reports on the group's progress. Secretaries take notes at the meetings.
The projects will be developed using an agile development methodology (a combination of XP, Rational, and Scrum). Web-based projects will likely use the CakePHP framework, although individual project requirements will vary.
The pre-requisite for the course is CS 2150.