Monday, January 8, 2018

Winter Course Planning: Preparing to teach CS345/545 after an eight-year hiatus

Good morning, blog. This is the first day of the new semester here, and there's one more story I want to share before the semester gets rolling.

Last semester, after teaching assignments were made and approved and after students registered for their Spring courses, one of my colleagues realized he had a critical conflict that left him unable to teach one of his courses: CS345/545, our cross-listed course on Human-Computer Interaction. I designed this course around 2008 as a major substantial revision to a course on GUI Programming, that course being a holdover from when graphical and event-driven programming were still pretty novel. However, the last time I was able to teach the course was Spring 2010, when I was also experimenting with managing a course entirely in public using Google Sites. I have become more involved in game programming, immersive learning projects, and managing the CS222 course since then, and this has left me without spare time to teach the HCI elective.

There have been a few significant changes since 2010. Last time I taught the course, I was just finishing my work on App Inventor for Android, now MIT App Inventor, and I had about 16 Android G1 phones. I themed the HCI course around mobile development with Android, and I lent the phones out to my students. I was basically the king of the faculty: touchscreen smartphones and mobile development were brand new ideas, and I authorized the students to take a deep dive into this new area. One group even got their app onto what is now called the Google Play Store.

Here's another interesting change since 2010. I had an undergraduate teaching assistant that semester—a graduating senior named Austin Toombs. Austin had done several research and creative projects with me as a student. He went off to get his Ph.D. in HCI and is now a professor at Purdue Polytechnic. When I agreed to swap courses with my colleague, he was the first person I contacted to ask about what he thought were some of the best resources and ideas to share with my students in the course. I'm proud to have had some role in the development of this young scholar, and it's great to be able to reach out to him for help as well!

CS345/545 continued to be taught during these past eight years, but it was always done by faculty who have no real interest or expertise in that area. This always struck me as tragic, since I believe this is one of our most important courses. I got involved in Computer Science because of the intersection of technology and people, approaching this idea through games, visualization, and education. Educating students to understand this intersection strikes me as more crucial to the modern computing environment than any particular piece of technology, but I suppose we all have our biases.

The departmental syllabus for CS345/545 includes both technical and human-centered learning objectives. I have decided to focus primarily on the latter, in part because our CS222 course provides a good foundation for the former. Last time I taught HCI, we didn't have a prerequisite course that introduced concepts of Single Responsible Principle or layered software architectures; now that we do, I can draw upon what students learned before to talk about a few GUI-specific concepts. Honestly, I haven't planned complete details that far out yet, but I am thinking of discussing concepts like data binding and MVP vs. MVC. Unfortunately, my department's graduate curriculum committee seems to have no real understanding of the role CS222 has for undergraduates and does not have any real equivalent prerequisite for the grad students: whereas undergraduates need to have CS222 to take the HCI elective, grad students only need two semesters of programming and an algorithms course. There's a sense in which we are setting them up for failure, since they are roughly 33% less prepared than the undergraduates; I suppose we can just hope that a few years of life experience is enough to make up for it. Perhaps I'll try yet again to suggest prerequisite changes to them, but that rarely seems to move forward.

I decided to start the course by reading the revised and expanded edition of Don Norman's classic The Design of Everyday Things. I first read this book when I was prepping a section of CS345/545 years ago, and although it was influential, the examples were fifteen years old at the time. This 2013 revision is amazing: he basically rewrote the book with the same core ideas, but with updated examples and newer research and practical issues. The students will be reading this book together during the first several weeks of class, and I have set up a series of assignments and in-class exercises to get them thinking about design writ large as well as design of computing systems. This series of readings and assignments can be found on the course description that I have been working on.

Once the change in my teaching assignment was official, I reached out to my friend and colleague Ronald Morris, Professor of History, to see what kinds of interesting projects he had going on in the Spring that perhaps could dovetail into a CS345/545 projects. As I expected, he's involved in a veritable buffet of projects. One of these has him mentoring a team of students who are captioning historic photos for Indiana State Forests. We're in the process of determining whether my students could use these data to create original interactive timeline systems to help users understand the chronological —and perhaps the geographical—relationships among the photographs. This project jumped out to me since it seemed like something that risk averse students could approach in a rather conventional way, while creative or ambitious teams could take it in novel directions. I haven't mentioned this in the course description, but I did hammer together an outline of how I expect any such project would be graded: as with my game design course, I would be looking more at process than product, and particularly, research-informed justifications of design processes and artifacts.

I am glad to be working with this course again after such a long hiatus. It also gives me a break from teaching CS222, my first such break since my Spring 2012 fellowship at the Virginia Ball Center for Creative Inquiry. Another positive outcome of this 11th-hour change in teaching responsibility is that another tenure-track faculty will be teaching CS222, and perhaps this will help more of the department to understand this slightly peculiar course whose requirement is not often capitalized upon in other courses. CS345/545 and my immersive learning game production studio course will be my only two courses as I work with a small student team to wrap up the enhancements to Collaboration Station, and so I'm looking forward to a challenging and rewarding semester.

Thanks for reading! If you have ideas for this semester's HCI class or memories from taking the class in the past, please feel free to share.

No comments:

Post a Comment