Skip to main content


Welcome to CSC 322.01! The official course description for this class is:

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.

That is, this course serves as the practicum for our software design curriculum.

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.

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.

Accommodations and adjustments

Please read my policy on accommodations and adjustments and my statement on accessiblity.

Important Warnings

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.


My goal is for everyone taking this course to be able to demonstrate familiarity, fluency, and excellence with the course concepts. I would be very happy if you all met the goals above and received “A”s. The following weighting of individual activities will provide a basis for evaluation.

Penalty only
Homework Assignments
Weekly Project Reports

Some work may be graded by someone other than the instructor. However, any questions or concerns about grading should only be directed to the instructor.

The grading scale for this course will be:


You may note that there are some gaps between ranges. I reserve the right to make decisions about which direction to “round” values in those gaps. I also reserve the right to adjust this scale during the semester. You will be notified of any changes, and the scale will not change in the final two weeks of the course. You may ask me for your current grade in the class at any point; I will happily give you my best estimate based on the current scale and graded work so far, but these estimates are not guarantees of a specific final grade.


Your classmates and partners depend on your contributions to learn new material and complete the required work for this course. Don’t let them down! You are expected to arrive on time and actively participate in every class.

Because your participation is so important, I will not grant excused absences except in exceptional circumstances. I will deduct 1% from your final grade for each absence in the first half of the semester, 2% from your final grade for each absence in the second half of the semester, and 0.5% for each time you are late to class. However, each student is allotted a 2% “penalty buffer”. This policy is intended to give you the flexibility to deal with brief illnesses or personal issues that require you to miss class.

If you need to miss more than two class periods for an exceptional reason (e.g. to attend an academic conference, deal with a family emergency, or due to long-term illness) please talk to me as soon as possible and we will make an alternate arrangement.

If your are sick, please do not come to class. Stay in your room, rest, and seek medical care as needed. Student Health and Counciling Services (SHACS) offers health and mental health services to students.


Because much of our work in this course involves collaboration and discussion, you will be evaluated on your participation. Participating in class involves:

  • being present in class (physically and mentally)
  • coming to class on time
  • coming to class prepared
  • asking questions when appropriate
  • making positive contributions to class discussion by volunteering and when called upon
  • staying on task during lab exercises, and
  • working effectively with your partner(s)

Students who regularly meet these criteria can expect to earn an A- for their participation grade. I will reward students who regularly provide significant insights or guide discussion in productive ways with a higher participation score. Students who fail to participate regularly (e.g., demonstrating a lack of preparation or involvement during lab exercises) or who participate in counterproductive ways (e.g., by dominating the conversation, making inappropriate comments, or getting off-task) can expect to earn a lower score.

Academic Honesty

Please read my policies on academic honesty and the CS department’s academic honesty policy. I expect you to sign and return the latter.


I developed much of this course and the corresponding syllabus 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.

Much of the site design comes from Charlie Curtsinger.