Skip to main content

Syllabus

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.

Accommodations and adjustments

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

Weekly structure and workload

After a two-week period in which we set up the context of the projects, the course is structured in a sequence of two-seek sprints. The in-class time for each sprint is generally organized as follows. (In the second half of the semester, the second hour of class will be work time.)

  • Monday: Presentations. Groups present on some aspect of their project.
    • First week: Sprint retrospective and planning. Each group gives a short report on the past sprint and their plans for the current sprint.
    • Second week: Demos and check-ins. Each group gives a short demo of some aspect of the current state of the system. I do a mid-sprint check-in with each group.
  • Wednesday: Work time. Teams may work on the project, meet with their community partners, meet with their alumni mentors, get help from the instructor or mentor, or any combination thereof.
  • Friday: Discussion. We will discuss some topic related to the course. The primary themes for Fridays are computer ethics and object-oriented design.

The course meets three hours per week for the first half of the semester and six hours per week for the second half of the semester. You should plan on about two hours of out-of-class work each week. Grinnell’s semester credit definition indicates that a two-credit course should require a minimum of 90 hours of work. seven weeks of five hours and seven weeks of eight hours is 91 hours.

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.

Grading

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.

Attendance
Penalty only
Participation
5%
Reading journals and homework assignments
10%
Weekly reports: individual and group
10%
Weekly presentations
10%
Public presentation
10%
Project
20%
Portfolio
15%
Ethics paper
20%

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:

A
94–100%
A-
90–93%
B+
87–89%
B
84–86%
B-
80–83%
C+
77–79%
C
74–76%
D
60–69%
F
0–60%

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.

Attendance

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! I expect you to arrive on time and actively participate in every class.

Because your participation is so important, I will not grant excused absences except in particular and exceptional circumstances. I will deduct 2% from your final grade for each absence in the first half of the semester, 4% from our final grade for each absence in the seocnd half of the semester, and 1% for each time you are between five and fifteen minutes late to class. These deductions are doubled if you do not send me a short note on the day of the absence or late attendance, preferably in advance (e.g., “I will be unable to make it to class today” or “I apologize for missing class today” or “Another instructor has asked that I meet with them immediately after class; I expect that I’ll be about ten minutes late.”) I allot each student a 4% “penalty buffer,” so you may miss two classes (if you send notes), miss one class (if you fail to send a note), or arrive late four times (if you send notes) with no impact on your final grade. This policy is intended to give you the flexibility to deal with or personal or other issues (including job interviews) that require you to miss class.

I realize that there are a number of reasonable and expected absences. These include athletic events, academic conferences, course trips, and religious observations. Such absences do not count as unexecused absences provided you notify me of them at least one week in advance.

I understand that some disabilities may require you to miss class. Ideally, these requirements are documented in your accommodations form. But I will do my best to make adjustments and accommodations in all cases.

If your are sick, please do not come to class. I would prefer that you reset and get better. Please seek medical care as needed. Student Health and Counseling Services (SHACS) offers health and mental health services to students. I excuse illness provided you notify me the day of class, preferably in advance of class. I do not require a note from SHACS or your doctor. Note, however, if you are ill more than a few times, I may discuss the issue with student affairs and may stop excusing illness-based absences.

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.

Participation

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.

Extra credit

Although I regularly offer extra credit in my four-credit courses, I do not offer extra credit in two-credit courses. Nonetheless, I will still recommend academic, artistic, cultural, and peer events on campus.

Citations

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 original site design comes from Charlie Curtsinger.