Skip to main content

Setting up a rhythm for CSC 322

I spent much of today working on the syllabus for CSC 322, our practicum in software design. Since I’ve taught the course five or so times, you think that wouldn’t be hard. However, as I’ve noted recently, the software design practicum keeps evolving [1]. In putting together the schedule, I’m addressing three separate issues as compared to other recent offerings.

  • Last semester, the course met two days per week. This semester, the course is once again meeting three days per week [2].
  • At the suggestion of my students, I’ve moved ethics from CSC 321 to this course. That frees a bit of needed time in CSC 322. It also makes sense for students to think about their professional ethics in the context of working with a real-world client.
  • I’ve discovered that students don’t have a deep enough understanding of object-oriented design. But there’s not room in CSC 321 and students don’t have a deep enough understanding of Ruby in the first few weeks of CSC 321 in any case. So I’ve added it to CSC 322. At the recommendation of an alum, last semester I started having the students read Sandi Metz’s Practical Object-Oriented Design in Ruby. The material was good, but it didn’t quite fit with the structure of the course [3].

In any case, I’ve been thinking a lot about how to put the course (back) together. While my goal is that students have a reasonable amount of work time in class, there are also other things for them to do and learn.

In the end, I decided it was best to set up a regular rhythm for the course that matches these needs and accommodates a variety of other demands. Students have two-week sprints [4] in which they work on projects. The class rhythm tries to match that two-week model.

I have traditionally had students do a retrospective/prospective presentation at the end of one sprint and the beginning of the next. Those presentations are on Mondays. I’m continuing that tradition. But I found that students generally wanted to include demonstrations during those presentations, and when we have five projects in a fifty-minute class, things get too tight. So the off Monday will include time for (required) demonstrations. That is, Monday is presentation day. When we move to 110-minute blocks, they will present in the first hour and work in the second hour.

CSC 322 is a class in which students build projects. They need time to work on the projects, including time in which face-to-face advice is available [5,7]. They also need time to meet with their community partners. Many like weekly or bi-weekly meetings with their alumni mentors. Wednesday is open day [8]. On most weeks, they can use it for any of those tasks [9].

But what about the various topics I want to discuss with students, particularly professional ethics and object-oriented design. As you can guess, Friday is discussion day. Journals will be due on Thursday night so I have some time to read and reflect on them before class.

Are there flaws to this rhythm? Certainly. I’m not sure how it will work to have gaps between the ethics readings or the object-oriented design readings. But students need time to work on the project each week. And I’ve found that the bi-weekly presentations help students think more carefully about their methodologies (an important learning outcome, if not one of the top five or so). So once per week it is.

I also find that students benefit from a regular rhythm; that’s one of the reasons that CSC 151 has a very careful rhythm (primarily that homework is due Tuesdays, quizzes are on Fridays, and lab writeups are due the next class day). I’ve had something like this rhythm in place for CSC 322 in past semesters; I’m just working on making it a bit more explicit to students [10]. You can see the draft schedule for more details. I’m hoping that the careful and better-communicated rhythm goes well. We shall see.

Time to go back to the syllabus and make sure that I’ve communicated all of these issues well [11].

[1] In fact, I expect we will be making another major change for next fall.

[2] And yes, we’re back to the strange arrangement of three fifty-minute blocks per week for the first half of the semester and three 110-minute blocks per week for the second half of the semester. But students aren’t really ready to work deeply on projects during the first half of the semester, so this gives them a lot of time to work together during the second half.

[3] I also did not do a good enough job of communicating thou shalt read and think about each chapter nor enforcing that rule. This semester, we’ll have reading journals.

[4] You can read about Agile Programming in general and Scrum in particular to learn more about sprints.

[5] They can get face-to-face support from me, from the class mentor, and from each other. Other students may have worked with a Gem more recently than the mentor or I, and be more aware of pitfalls and subtleties in the latest version [6].

[6] Or at least they can say These are the steps that worked last week. Why don’t you try them?

[7] Alumni mentors and I are available for remote advice, too. But there are times it’s much nicer to have someone there to work through a problem with you.

[8] In Boston, Wednesday is Prince Spaghetti Day.

[9] Our alumni mentors are visiting on a Wednesday. Students may not meet with community partners on that day.

[10] I thought I’d made it fairly explicit in past semesters, but I kept finding that students were scheduling meetings on days in which I was planning presentations.

[11] Yes, I realize that I should probably add some learning goals to the syllabus. I have such goals in the syllabus for CSC 321, so they may or may not appear in CSC 322.

Version 1.0 of 2018-01-14.