|Course:||CSC 447 701|
|Course Name:||Concepts of Programming Languages|
What are the major strengths and weaknesses of the instructor?
- Strength-Knowledge on the subject and the friendly atmosphere which was created.
Weakness-I didn't find one.
- Strengths: terrific lecturer, remarkable video-producer, maximalist presenter of resources to help students learn.
Weaknesses: because we moved on a pre-set schedule (of previously recorded videos) I don't know how adaptive the course is to a given cohort of students' issues/needs. Not sure if that's a pro or a con, really.
- One of the best teachers I have ever had in my life. Fun, smart, funny, empathetic, and disciplined.
- The content was presented well, however it was very difficult at times to see the bridge between all of the lectures, and particularly from lectures to our hws.
- Understanding, Seems like a good person, enjoyable to learn from.
- Prof Riely is engaging and fun, and most of all respectful and inclusive to all students. One of the best professors I have met at Depaul
What aspects of this course were most beneficial to you?
- The timing of the course.
- The concepts covered were illuminating. As someone who has come later in life to programming as a discipline, the value of the course is evident. I am a significantly more thoughtful (if not more competent! But that's a reflection on me and not the goals of the course...) programmer now than I was at the beginning of this course. A lot of the benefit comes down to what I might describe as, "learning to know what you don't know." A lot of the concepts covered make some ~intuitive~ level of sense, but are effectively black boxes for beginning programmers. Learning to unpack those black boxes and analyze them for meaning and consequence helped me develop as someone who thinks through writing code, and importantly, as someone who communicates about code.
- The coding assignments.
- The video lectures and worksheets.
- course material was interesting, professor Riley is one of the best at Depaul.
What suggestions do you have that could help improve the course?
- Everything was fine.
- I don’t know what the word length on these responses is, but I’m probably going to come close to hitting it. That’s not a reflection of my esteem for the course or for Prof Riely. It’s more that this question has been nagging at me since the second week of the course. Obviously, COVID and remote learning make for a challenging learning environment, and some professors have responded to that challenge better than others. Prof Riely’s materials are amongst the most slickly produced and thoughtfully comprehensive – they are exemplary, from the standpoint of, “how much of the traditional pedagogical value am I going to lose by doing this remotely?” His slides include clear and accessible code (being able to copy and paste directly from the slide is wonderful!) and his lectures are broken into (mostly) COVID-shattered-attention-span friendly chunks. And yet...
I have a few key issues I’ll try to unpack here. The first, and likely most crucial (I believe it underpins the remainder of my issues), is the pedagogical efficacy of the lecture videos. As I mentioned, they’re really wonderfully produced, and Prof Riely is a skillful orator who keeps your attention focused on esoteric quirks of programming languages in a way I wouldn’t have been able to predict at the start of this class. However, the cumulative effect of these videos is more akin to listening to a fascinating podcast on some topic you’re curious about but have no long-term interest in (FWIW, I would absolutely listen to Prof Riely’s podcast on this subject) than it is to a traditional lecture.
There is a profound disconnect between what students need to grasp at the end of the video and the trajectory of an individual video. Prof Riely’s discursive style takes the viewer down interesting rabbit holes, but it is frequently entirely unclear whether or not this is a place we (as students) should have been digging in the first place (the extended section on the development of Apple’s code blocking patterns springs to mind). At the end of a section, I frequently wondered what, exactly, I was supposed to have gleaned from that video. I think this effect could be ameliorated by a brief, 5-minute introductory video to the week’s topics that summarizes the topics we’ll cover, and how they manifest as issues in code. It would be especially helpful if it also featured a quick but explicit explainer as to how these issues build on topics covered in previous lectures. This intro to the week video could be followed by a 5-minute outro video for the week that re-summarizes the topics that we covered but focuses explicitly on how students would be assessed on these topics. (The weekly quizzes held some value to this end but contained no context for how the questions were exploring topics covered by the week’s lectures. As students who are learning these topics for the first time, I think it’s too much to ask to, on a week-by-week basis, concurrently learn/digest the mechanics of what we're covering in lecture and synthesize them well enough to explain to ourselves why these questions are being presented to us.)
This leads us to the homework. The programming problems in Scala felt arbitrarily difficult because of the learning curve into a new language on top of the novelty of the concepts we were attempting to explore. It also frequently felt arbitrary, writ large. There felt like a shattering disconnect between finishing the lecture videos and then opening up the HW program **even when the lectures frequently contained direct answers to the HW problems**. I don’t have a great answer for this (aside from the outro videos/spending a chunk of time in the discussion section preparing the students to answer the problems); learning a new language on top of additional course concerns will always be challenging (though I don't know if Prof Riely was attuned to the degree of struggle), but there was something persistently bewildering (and maddening!) about opening up the HW each week. When this was brought up in class during a discussion section and once via Discord, it was more or less shunted aside.
The next issue is the worksheets. They’re a good idea in theory, rounding out concepts touched on in lectures that week, but they present another gigantic raft of information for the student to digest on a weekly basis. There is a problematic flatness to the information presented here: some of it is interesting background on how things work (but is ultimately not necessary to pass the course), and some of it is essentially practice problems for the quizzes/tests, and some of it falls in-between. Making these delineations clear would be really helpful. As someone who struggled to keep up with the material on a week-by-week basis, I didn’t have the bandwidth to explore the additional topics in depth but would have benefited from seeing the practice problems gathered together – perhaps in some sort of mid-term/finals prep package.
Finally, Prof Riely did not keep weekly office hours, and that was a significantly limiting factor in my ability to digest the material. Discord is a fine addition to the spectrum of ways for students to engage with their professors. I imagine that some students certainly feel more comfortable putting their question into a text message. However, I don’t believe that it holds any value as a complete replacement for traditional, face-to-face (even via Zoom) office hours. Substituting Discord chats for office hours strips away a student’s ability to provide context for their questions and fails to acknowledge the pronounced power-imbalance that can make even traditional office hours a bit tricky to navigate. Putting my failure to understand a concept out into a chat and trusting the professor to parse it in a way that validates my lack of understanding on the way to comprehension is a big ask! I also don’t think it’s reasonable to expect a student, who is struggling, to launch this critique in the middle of a class (it compounds the sensation that this failure to understand is entirely the student’s own doing).
- The Tests were shockingly hard. It was very impractical and illogical. I believe you should be able to use a terminal or other resources when figuring out coding problems and trying to figure out output.
- HW assignments being more like the exam questions
- There needs to be a more clear link between weekly lectures and hw. Many times I was lost as to how to even begin tackling the hw. There was one time where the hw was briefly overviewed in one of the YouTube lectures which was helpful, it would be nice if we went through each hw the week before it was due (preferably in discussion sessions) and just got an idea of where to start for the questions and where to find the information we needed to complete them. Also, having a set time for weekly office hours is always hugely beneficial especially for hw questions, sometimes it's easier to just speak about them as opposed to trying to communicate via email/discord, and having set office hours also makes it simpler rather than trying to coordinate a time to discuss.
- Make the coding homeworks align a little more with coursework, they felt disconnected from the other material. On the other hand the worksheets were great.
Do you have comments on the grading procedures and exams?
- Grading procedures was perfect. Curve based grading actually helped.
- What is the pedagogical value of *not* getting a graded midterm that indicates which questions I personally got wrong and what the right answer to those questions is? As far as I can tell, the value is nil. I still don't know *for certain* which questions I got wrong and how I might improve upon those errors. This is *deeply* frustrating.
- The lockdown browser is terrible. Let students use a text editor and terminal when taking the midterm/final.
- Exams are too hard. Maybe have optional assignments or practice exams to help students better prepare for them.
- Exams were difficult and not being able to see our midterm puts us at a huge learning disadvantage. This is the only class I've ever taken that didn't allow us to see our graded midterms and the reasoning behind it just made it seem as though the Professor was more concerned about saving time on creating new questions rather than a quality learning experience for the students. Since the midterm also was not fully reviewed for this reason it left students who got questions wrong that were not reviewed confused and unsure of what to ask.
- Exams were a little rough for me personally, But if I am honest with myself I could have tried harder and tried to get ahold of him for more outside help. New way of learning through this pandemic has been rough.
- I enjoyed this class and I *sincerely* appreciate the effort that Prof Riely put into making the online materials as robust and useful as possible. The depth of the critique presented here is a reflection only of how close this course was to truly excelling as an online/remote replacement for the in-person learning experience.
- Exams are very hard
- I really would have liked to see what I did wrong on my midterm, this is the only class I've ever taken in my college career that didn't allow us to see our graded midterms. This puts us at a huge disadvantage when trying to study for a cumulative final, and doesn't allow us to learn from our mistakes. It's impossible to know what questions I would like to go over when I don't even know what I got wrong. Of course I didn't have all the questions memorized since I thought I would be able to review my midterm once all grades were in as is normally always the case. At the very least it would have been nice to know about this going into the midterm because I could have taken some notes on which questions confused me to ask about during review, but we didn't find out about it until after the midterm was done so this also wasn't an option.