Team Soft. Dev. for Comm. Org. (CSC 322 2016F) : Home

Front Door


Introduction

Welcome to the Fall 2016 section of Grinnell College's CSC 322, Team Software Development for Community Organizations. CSC 322 is an opportunity for you to apply the ideas and tools you learned in CSC 321 and elsewhere in our curriculum to real-world problems. In particular, in CSC 322 we build software projects that support organizations in our local community. This semester we will be working on projects for both the Ahrens Community Foundation and Mid-Iowa Community Action (MICA).

This semester, we are trying a new model for the course. Instead of one three-hour meeting each week, we will be having three one-hour meetings each week for the first half of the semester, and three two-hour meetings each week for the second half of the semester. This approach gives you the opportunity to "ramp up" in how you work on the material.

Catalog Description

Application of software development principles and practices to a large-scale project. Teams of 3-6 students build software for a community organization, supported by a faculty adviser and an alumni technical mentor. Students will gain experience working with a client and building a substantial code base suitable for inclusion in a professional portfolio. Students are encouraged to repeat the course for credit to experience multiple roles within a team and multiple phases of the software lifecycle.

Course Goals and Structure

In this course, you will apply agile software development principles and practices to a large-scale, ongoing, team project. To motivate and provide context for the work, projects will serve a community organization. To provide technical expertise and professional perspective, alumni mentors will draw upon their practical software development experience.

You will gain experience with the complexities of real-world software development: communicating with clients; working as part of a team; self-directed technical learning; creating a substantial project from scratch, or learning an existing code base; making design decisions that may have long-term consequences; managing a large code base; addressing pragmatic and ethical dilemmas. You will be able to draw upon these experiences in pursuing academic or industry positions. By sharing your source code through GitHub, you will make a substantial beginning or addition to your professional portfolio. You will develop professional skills and perspectives.

The class will meet once weekly for a three-hour lab block over the 14-week semester. During most weeks you will be expected to meet and work for an additional three or four hours outside of class. There will be few readings and no examinations. Work will be student-directed; the instructor and alumni mentors will serve as consultants.

Over the semester, your project will develop as follows:

This course is a companion to CSC 321, Software Development Principles and Practices. In CSC 321, you will learn how to apply agile software methodology to developing software as a service (SaaS) using the Ruby on Rails framework. In this course, you will apply what you learned to a large-scale, real-world project. If you take CSC 322 concurrently with CSC 321, you will find that topics are introduced in CSC 321 just in time to apply them in CSC 322.

Important Warnings

Warning! I am teaching three new courses this fall (including this one) as well as an extra-large section of CSC 151. I am also serving as department chair. I have instituted a wellness schedule: Except on weeks in which I have an exam to grade, I am limiting myself to two hours of evening work and five hours of weekend work.

Warning! This course exercises some different skills than other CS courses. You will need to work with other people on your team as well as clients from outside Grinnell. You will have to manage your own time and arrangements.

Warning! Students report that the workload in CSC 322 can easily become more than is appropriate for a 2-credit course, particularly since they find value in the work they are doing. I will do my best to give you credit for time spent on work (provided it is well documented) rather than just particular outcomes.

Warning! Both the course and the platform are new to me. Expect me to be even less organized than normal.

Basics

Meets: MWF 2:00-3:00 or 1:00:3:00. Our default location is 3819, but we will likely be working in a variety of locations. You should plan to spend about six hours per week on this class, between in-class and out-of-class time.

Instructor: Samuel A. Rebelsky [rebelsky], Science 3824. 641-269-4410 (office). 641-990-2947 (cell).
Office hours: TBD. I also tend to follow an open door policy: Feel free to stop by when my door is open or to make an appointment for another time.

Class Mentor: Sooji Son [bresette]. Office hours: TBD.

Grading (subject to change)

Books and Other Readings

The CSC 322 Course Web

The hypertext that you are currently reading. Many of these materials are required. You should make it a point to load the page of the day at the beginning of each class to check announcements and such.

James Shore and Shane Warden (2007), The Art of Agile Development, 1st edition.

A nice text on the agile development methodologies.

Citations

Much of this course and the corresponding syllabus were developed using Janet Davis's resources. I think her for her careful development of the course and her willingness to allow me to reuse her resources.