Last Updated: 2018-10-18 Thu 12:37

CSCI 2041 Midterm Survey Results

Table of Contents

Summary Statistics for Multiple Choice Questions

feedback-01.png

feedback-02.png

feedback-03.png

feedback-04.png

feedback-05.png

feedback-06.png

feedback-07.png

feedback-08.png

feedback-09.png

Summary

Overall we seem to have hit a good balance with most folks feeling challenged but not (completely) overwhelmed. The textbooks could use some improvement though (as usual) it's not clear whether an improved textbook would actually be read by many folks.

Notable and Frequent Free-form Comments with Responses

On OCaml

  • OCaml has a very different syntax than other languages I've used before.
  • I'm mostly just struggling with weird syntax errors whenever i work on labs or assignments.
  • I occasionally spend several hours trying to figure out a problem only to find that the problem is a simple syntax error
  • OCaml can be a bitch to work with sometimes.

OCaml syntax is dense, picky, and very different from most mainstream languages. Many folks struggle with this at the beginning. OCaml syntax also allows one to express thing succinctly that are long-winded or impossible in other languages. To compare, try writing a type-safe polymorphic list implementation in C (impossible) or Java (lots of <Generics>) or try writing a type safe function at all in Python (impossible). There is no silver bullet, just many points on the Pareto curve of "the best we've invented yet".

  • This class should be taught in the other, better functional language called {Lisp | Clojure | Elixir | Scheme | Scala | various others that are not Haskell} because it is newer/older/more relevant/m
  • I need to be convinced that our time wouldn't be better spent learning C/C++ because that is still the majority of industry codebase.
  • I'm kind of curious how Ocaml/functional programming stacks up when used in more real-world scenarios.

Ultimately this is a course about ideas and methods to do computation. OCaml is a concrete language in which to discuss those ideas. There are other choices but most of the ideas we discuss will have transfer elsewhere. Some folks will see "real world" applications of these techniques if they work on applicable projects, others may never have much use for them. CS careers are long, though, and it is likely that things we talk about will come back to haunt all of us.

Textbook

  • I think Practical Ocaml is a pretty terrible text book
  • Could you recomend on any resources for Ocaml because I don't think PO and manual textbook are helpful.
  • I think the slide information is very useful so that I didn't use other textbook.
  • The course does not follow with a text book.
  • Our textbooks are unofficial, and rather useless.

I'll keep an eye out for a better textbook reference for OCaml. There are not a lot of choices but a few suggestions were made as part of the feedback that I will explore for future offerings. Perhaps that might increase the number of folks who actually read some, but I remain skeptical.

Labs

  • So far the labs have been really easy, I would be okay if they were a bit more difficult.
  • I enjoy the structure of the lab.
  • Lab is great for practice.
  • I wish the practice for lab should have many problems.
  • I think the labs could be a bit longer or more in-depth.
  • The labs can be fairly completed within the designated lab time, or with a small effort outside of it.

Generally labs have been received positively. Some optional Challenge problems may be added to future labs to sate the thirst of the daring.

  • The TAs in lab are supposed to give guidance at the start?
  • I didn't realize that the TA's were supposed to do anything in the lab.

I have discussed with the TAs that they should formalize their introduction to the lab somewhat so that the first few minutes are spent over-viewing the problems and pointing out potential pitfalls.

TAs

  • The TAs in my lab and office hours are really helpful.
  • I appreciated the help I received from TAs
  • The lab materials and TAs are very helpful.
  • Piazza and TAs helped me understand
  • I feel like the TAs are great.

Overall feedback for the TAs has been positive. Aside from a few issues that I am addressing with them, I will relay the props to them.

  • One concern is that at least one of the TA's in my lab section, when I asked them a question about refs and mutability in OCaml during the first lab, didn't seem to know much about it.

It is my understanding that "mutable stuff" is not always discussed in CSCI 2041. Thus, TAs who have taken 2041 previously may actually be as new to arrays, refs, and the like as students in the course though TA knowledge of the rest of the language is still quite good. I find the fastest way to comprehending the differences between mutable and immutable approaches is to directly compare them. Thus we are taking our present approach which means that some TAs were scrambling at the beginning to ramp up their understanding. I believe that they can be forgiven for not knowing all the nooks and crannies of OCaml: I certainly don't know all of them.

Assignments

  • Assignments are a little bit hard.
  • I feel that the assignments are going really well. They take a little bit of time, but they are straightforward.
  • I mainly struggle with doing the assignments ahead of time so I can have more room to ask for help from the TA's when I'm stuck.
  • Assignments and lab are fine but we have to take lots of time to finish it.
  • I am enjoying the assignments and feel that I am learning a lot through practice.
  • The assignments can be a little bit tricky when you get an error that doesn't tell you how to fix it.
  • The assignment instructions give us adequate guidance.
  • The assignments are of adequate difficulty and are generally very interesting.
  • The assignments aren't too challenging or too easy, making me work and have my work actually pay off.

Assignments will always be a mixed bag as they are meant to be somewhat larger and more challenging. This will be too much for some and too little for others, but based on feedback we seem to have struck a good balance. Starting early most always helps.

  • Some times I feel like there is stuff on the Assignments hasn't been covered in lecture or lab or anywhere really.

Regrettably, Assignment 1 required a few things that we got to later in lecture than I'd like. Beginnings are always difficult like that. I don't expect this will happen again and will rethink my strategy in the future to avoid it next time I teach 2041.

Course Pace

  • The pace of this course is overwhelming.
  • I enjoy your pace, and the labs + homework are highly informative.
  • I feel like this class is very good pace
  • Really appreciate the pace this is going at though for learning a new programming language.
  • The pace of the class is such that I remain engaged but do not feel overwhelmed.
  • The pace of labs & assignments can get a bit overwhelming at times.

As with assignments, too fast for some, too slow for others, but we seem to have hit a reasonable stride with our coverage and forward momentum. As always, if you feel overwhelmed, seek help and guidance.

Lecture

  • Lecture could be faster moving.
  • I like how interactive the lectures are.
  • The lectures are incredibly valuable and helpful in learning the material.
  • Additionally, I think the lecture slides could be more descriptive.
  • The lectures are very interesting.

Lecture feedback is generally positive. I'm glad to hear that it is contributing to most folk's learning.

  • I know questions are extremely valuable but sometimes I feel like many questions are asked by students that are not really questions that need to be answered during a 50 minute lecture.

There is a definite trade-off in fielding questions. I am likely to continue doing so as I feel this creates the course climate that I want, that questions are answered. I acknowledge that this slows us down sometimes but that is a price I am willing to pay.

Hot Seats

  • The card/hot seat system is fine, it has some unfairness but overall I think it does good work.
  • The hot-seat system has led me to show up in class more.
  • I enjoy the hot seat system as it keeps me feeling engaged in the lecture.
  • I wish that people sitting a little farther back than the hot seats had more opportunities to answer questions and earn cards.
  • Students ask questions for the sake of asking them solely to get cards and this delays the flow of the lecture.
  • I really appreciate the hot-seats system.

Hot seats are not a perfect system but they are generating the dialogue that I want in lecture. If anyone has suggestions as to how one might modify or improve upon the system without incurring too much time or technology overhead, I'm all ears.

  • I've been raising my hand numerous times to answer questions in class, but not a single time I've been called and I usually sit within the first few rows.
  • I've answered quite a few questions not in the hot seats and haven't gotten a card.

I'm quite bad at randomly rotating around and often forget to give cards out. If you are overlooked for answering a question, claim your card anyway. If you haven't got a chance to answer, just keep at it.

Overall

  • Probably the most interesting and informing programming course yet.
  • This is by far my favorite course this semester.
  • Overall the class is great and I'm enjoying it.
  • Overall, the class seems fun enough if a bit elementary.
  • Overall I think the course is well structured and run.

Not too many haters so we must be doing something right. We will endeavor to make the back half of the course as engaging as the first half.

  • poop

Indeed, "poop".


Author: Chris Kauffman (kauffman@umn.edu)
Date: 2018-10-18 Thu 12:37