Skip to main content

Planning updates for CSC-207 in Fall 2024 (#1298)

Topics/tags: CSC-207, Teaching

I started this musing at the end of May. As I mentioned recently, many things fell to the side over the summer. With less than three weeks to go, it’s almost certainly time to finish.

This fall, I’m teaching two sections of CSC-207. That’s it! No other courses—not even a two-credit Learning from Alumni. Since I’m teaching two sections, I have a bit more time to make changes and updates [1] to the course. Because I’ve switched CSC-207 from a 3x80 course [2] to a 2x110 class [3], I must make some significant changes to the course. Twenty-eight class sessions is many fewer than forty two.

My (somewhat) recent reflections on teaching provide some guidance on some other issues to address. Let’s see …

  • I need to pay more careful attention to the workload in the course.
  • I should provide my students with some automated feedback on homework assignments (mini-projects), perhaps through an autograder or test cases.
  • I should better support my graders in providing prompt feedback on mini-projects.
  • I must be more prompt in distributing and grading learning assessments. I also need to encourage students to try learning assessments the first time they are assigned. (A few students were not responsible about doing so and told me they needed stricter encouragement.)
  • I should write a few more mini-projects.
  • I need to reflect on how I organize the start of each class session.

Okay, that’s what I’d written in late May. Let’s start adding some more.

  • I had planned to include Maven in the course last year but ran out of time. I’ve now written instructions for setting up and running projects in Maven that I will incorporate into the course.
  • There’s a famous (infamous?) vending machine example that other sections of CSC-207 use to help students understand object design. I’ve taken a quick look at it, and I’d prefer to restate it as a CSG [4] problem. I also need to figure out when it fits in the semester.
  • I noted above that I wanted to add mini-projects. I looked back at some earlier versions of CSC-207 and CSC-152, its predecessor. There’s a useful pairing of two-dimensional arrays in one assignment and an Othello game in the next. It will be a struggle to figure out what goes best when.
  • I might consider adding something where they explicitly build a GUI. Right now, there is a GUI in the AAC assignment [5], but the students don’t create it. Perhaps a GUI is a good place to explore inheritance (since it’s one of the central instances that it’s used in real programs).
  • On that note, I should write to Catie Baker to discuss that assignment. It’s gotten a bit wonky between the two times I’ve assigned it.
  • I don’t have a reading on composition. In part, that’s because I don’t think there’s a lot to say about composition. I’ll need to think more on this issue. Mayhaps I’ll even read a bit to see what others say.
  • I need to get Jekyll and other tools appropriately installed on my new laptop. (I hadn’t realized that I needed to do so until I started building the site. Fortunately, it didn’t take long.)
  • I should add some code reading to the pre-class reading. Too often, I ask students to spend the first fifteen minutes of class reading code.

Let’s move on to how I might approach some of these issues.

To assess the course workload, I need to check in with students more often. I ask them how long each mini-project takes, but I don’t ask them about the learning assessments or the readings. A survey every few weeks and a reminder to check in with me if they are regulary spending more than eight hours outside of class (and how much more than eight hours they are spending) should help. When people spend too much time, I need to figure out where that time goes.

I’ve made some big picture decisions, such as when mini-projects are due (Thursday evenings) and when learning assessments are due (Monday evenings). Or I might swap those. I’ll see once I start putting together the syllabus [6].

I’ve included the installation of a unit-testing framework in the project-setup instructions as well as the installation of a syntax checker. As long as I write unit tests for each assignment, students can check large parts of their assignments before submitting, and graders can more easily check assignments. I will need to set aside time to write those unit tests. However, with one course, that should be reasonable; I wrote a lot of unit tests for CSC-151 last fall and spring.

What about cutting/merging topics? In my first pass, I seem to have cut to about 37 class periods. Good, but not nearly enough. It was wicked hard [7] to get down to 28. With 42 class periods, I don’t mind using a class period for a small topic, like lambdas or the design of an ADT. With only 28 class periods, that’s not possible. So I have a draft. But I don’t have any of my traditional pause for breath days. And those fun small topic days are now incorporated into other days. I’m also struggling to find room for design patterns or Bleh.

Okay, that’s enough thinking for now. Finishing this musing (such as it is) got me thinking about the course and incentivized me to finish a draft schedule. Next up is getting the mini-projects in order. After that? Some of the new readings and labs. Next? Adding code to the readings list. At least that’s today’s plan. Plans change. And some things can wait until the start of the semester [8].

I’m left asking myself, Will I ever learn to make fewer changes to courses?


[1] Are changes and updates the same things or different? I’m not sure.

[2] Three class sessions per week, 80 minutes per session.

[3] Two class sessions per week, 110 minutes per session. You probably guessed that from the prior endnote.

[4] Computing for social good.

[5] Augmentative and Alternative Communication Devices.

[6] LAs on Mondays and MPs on Thursdays seems fine.

[7] I’m proud to be from New England.

[8] However, I need to remember that there’s a ton of SIGCSE TS work to do in September and early October.


Version 1.0 released 2024-08-11.

Version 1.0.1 of 2024-08-23.