(There are 11 people in the class who didn't submit any survey, which I
guess I should interpret as "Too slow".)
(I'm interpreting the 11 people in the class who didn't submit any
survey, as most likely "No, unless we have a super-important required
activity" based on their non-responses.)
The class is interesting but the opportunity cost of the projects to my
other classes has been rough at times.
Haven't perfectly understood how language is actually implemented in computing
This isn't expected yet, but later in the semester you'll implement
your own interpreter, so will understand everything about how
programs execute (at least down to a certain abstraction level).
Just a couple of times I feel like some important topics from either the
textbook or online weren't really explained fully in class
The only problem i encountered was on the projects not all of the
problems have test cases for us to know if our code on that part of the
problem is really working or not. A example of that is on project 3 we
don't have a test case involving the offshoot to see if our offshoot
part of the program is right on the rewrite function and neither for the
This is a good point, and I've provided some test cases for most of the
problems in Project 4. As you develop as a programmer, though, you'll
realize that part of being a great software developer is being able to
come up with good test cases. This requires thinking about the unusual
inputs where a program might misbehave, and designing test cases to
cover those. So, although I've tried to provide fairly comprehensive
test cases for Project 4, for some of the later projects it will be
important for you to be able to think of both good strategies for
testing your code, and specific test cases on your own.
I feel like the Projects and the content of lectures are very
disconnected from one another.
I would like the examples we do in class are is being taught in class to
be very helpful for the coming up projects.
I feel like what we do in lecture doesn't really prepare us for
projects. I'm also not really confident about recursive functions.
I find the lectures interesting but occasionally I struggle to see how
they connect to the projects which can be frustrating.
Often times I struggle to see how the lectures relate to the projects.
A comon theme in many comments is about lectures not preparing you to do
the projects. This is understandable, but I think stems mostly from
having the wrong expectations.
One thing I think you are expecting from other courses is the model
where lectures introduce material and are supposed to cover everything
you need to know to do the homeworks, homework assignments reinforce it
and make sure people are attending class, and then exams test if you
remember it. In my view, this is not a good model, but it is
understandable that you are expecting this based on the prevailing
experience you have had in dozens of previous courses, and frustrated
when it the way the class works is different from your expectations.
In my view, the opposite model makes a lot more sense: projects
introduce material, and then lectures use that basis to provide more
conceptual depth and context.
What we do in this class is a bit more of a hybrid — some concepts
are introduced in lectures, and others are introduced in the
projects. In my view, lectures (especially in-person ones) are a
horrible medium for covering technical material. I agree with Robert
Talbert's description here that there are some things lectures are good
modeling thought processes, sharing cognitive structures, giving
context, and telling stories (I would add building community to his
list), but they are not a good medium at all for information transfer
or covering material. (At least according to Talbert, my cs101
lectures, at least, focus on doing the right things in
You shouldn't expect the lectures to cover everything you need to do the
projects, or that everything in lectures connects closely with the
projects. That said, most of the things we do in class do
connect to the projects, often quite directly. But, sometimes it is
left up to you to figure out the connections. (Other times, like when we
list_flatten, the connection is meant to be obvious and directly
helpful for a particular project problem.)
"more news/broad learning about machines and role in world/applications
to real life would be great. also the reading plus the udacity videos
is a lot of work outside of class that arent deliverables.
i like the class a lot on the whole. "
I found out the classes are too short. :(
At least for the videos, you can watch at 1/2 speed if you want them to be longer. I'm not sure how to do this for the in-person classes, though. ;)
I'm not sure I understand what "n/a" means, but in future surveys please remember the course pedge
I will provide useful feedback. I realize that this is a new and experimental course, and it is important that I let the course staff know what they need to improve the course. I will not wait until the end of the course to make the course staff aware of any problems. I will provide feedback either anonymously or by contacting the course staff directly. I will fill out all requested surveys honestly and thoroughly.
That I'm learning more from the online course and doing the projects
than in class
This is what I would expect, so I don't think it should be disappointing
(unless you think its a problem that you are paying tuition, but the
things you are learning most from are available to anyone in the world
for free; but, you should view the main thing you are paying tuition for
is to be part of a community and to have direct access to the people in
it (including, but certinaly not limited to, me and Yuchi, for this
Some of this should be because of the time you are spending on them,
which I expect is more total time on the on-line course and projects,
than you are spending in class. But, it may also be because the
person-effort-per-minute that went into producing the on-line course is
about 10-100 times what they are for the in-person classes, which
hopefully does make it better than the lectures.
I have been disappointed in the differences between class, projects, and
online lessons. I am able to understand with some difficulty the online
lessons, however class is more confuses me more than clarifies aspects
of projects/online lessons. The expectations for the projects are so
high that it seems like the only way to succeed is to go to office
hours, rather than look online or at class notes or the python manual. I
REALLY loved the outlook of the class in January, how more focus would
be on thinking and problem solving and understanding computers, however
I feel like the actual path of the curriculum has not been consistent
with the initial message.
I think both of your points are good, but also a bit contradictory
(either that, or I'm not understanding them well, and would encourage
you to come to office hours or arrange another time to talk). The
expectations for the projects are high because they "focus on thinking
and problem solving and understanding computers", not on things you
could do just by repeating what you've seen in class or the on-line
materials. I do, though, plan to get more into deeper issues in problem
solving and understanding computers later in the course, now that
everyone (hopefully!) has a strong foundation to build on.
projects have been a little diifficult
Nothing really. I really like this class in general. It is very
interesting and makes me really think!
If you come to class with no expectations or with a pessimist attitude,
you will only be met with pleasant surprises or met expectations.
The optimist is always happy and hopeful, but nearly always
disappointed; the pessimist is grumpy and sad, but nearly always right.
Best to folow Alan Kay's advice an invent the future you want, and then
you can be both an optimist and right.
I really enjoy the class, but I think the class is going a little too
fast. Most of the time (especially during last few lectures), it is very
hard for me to understand what is discussed in lectures. I hope that we
spend enough time on basics before going on to complex
concepts. Projects are really challenging (sometimes very difficult),
but I think office hours are very helpful.
For me, getting the problem sets done on time have been a major
challenge. I feel as though I am learning a ton, but I am really having
to struggle to finish things.
I don't think I have learned anything in person. Most of what I have
learned has been at home. I am not very good at piecing together the
basics because I don't feel motivated learning in the stale youtube
world, which is why I am so behind.
I totally understand not wanting to watch videos - I feel the same
way. One option is to read the notes instead (see
for links to notes for
all the cs101 units). I think it probably works best to read the notes,
try the quizzes on-line, and only watch the videos when you can't get
things from the notes.
Unfortunately, I don't know a way to make the in-person classes
substantially better. I do try, of course, and am open to any
suggestions you have about what would make them better for you (but with
the constraint that they can't make things a lot worse for everyone else
in the class), but its unlikely that if they have not been working well
for you so far that they will suddenly start to work better. So, take
the time you are spending in class to do other things that will be more
effective. There are lots and lots of other ways to learn the core
material in this class; find what works best for you, and don't spend
time on things that clearly are not working.
This class is not made for a student that has to
simultaneously work. I want to put in more but I don't have the time or
availability to come to office hours because I need to work 20+ hours to
cover my rent, utilities and food. The content is great, but it's not
feasible for me to work as quickly as is demanded. I appreciate the belt
system for that.
I think, UVA in general, is design for full-time students and not
well-suited to students who have to work as well. I have huge
admiration for anyone who can manage to work their way through college,
and its great that you are doing this.
What would you like to be different about the rest of the class (from how things have been so far)?
Things have been good but a little vague at times. I feel like this has been someone by design however.
Maybe do a quick review of audacity lessons.
That's "Udacity" (see this blog
Udacity got its horrible name).
I'm happy to answer any questions about this, or go over things you want
explained in them, but you need to ask me to do this. Its enough to
just ask, "please explain section 3.12 in class", if you don't know how
to forumlate a specific question, but without this I am not likely to go
over things in the on-line course since I mostly agree with how things
are covered in it.
Include test cases on all of the problems on a project and talk about classes and dictionaries on python.
Yes, we've been avoiding classes so far, but will get to them later.
I've started using dictionaries in code examples, but haven't explained
them yet, but will do so soon.
I like how we have projects and ways to get a "belt" if we turn things in late.
I would to have one project where I write 100% of the code so that I understand exactly what is going on.
You will mostly do this for Project 4
(other than providing
some tedious code), and if you make it to the "Black Belt" project, that
will be entirely up to you (both to figure out what to do, and there
won't be any starting code).
"Maybe more dynamic questions, like poll questions instead of asking if anybody knows something.
I think everybody would pay more attention."
Do you mean in slack or in class? I tried a poll in slack, but got very
few responses. I can do hand-raising polls in class (unfortunately, our
attempt to use a secure computation protocol to do a privacy-preserving
poll didn't go so well!)
I would like to learn more stuff regarding the projects prior to having to complete the coding for them.
I would like more consistency and connection between the online lessons, class time, and the projects. The past two weeks have been especially confusing with list_map, list_accumulator, list_mapper, mapper, etc. I feel like if more time was spent on "this does this", "when I type out this here, it is now using this", I would have better understood the last two weeks. I am not asking for things to be simpler or for my hand to be held, I just would like more correlation and explanation.
maybe do more examples of computing in class
"For projects, to give more expressions to test and what these tests should output. It was difficult to solve some problems, if you do not know exactly how to test them. Some questions could use a little more explanations.
One time, for example Class 14, I was very confused. I think if the material is complex, maybe it is better to use simpler expressions to explain difficult material. "
The best way to get me to slow down is to ask questions! There were
some slides in Class 14 with lots of code you weren't expected to
understand completely, but you should feel free to always interrupt
class to ask about anything.
Maybe more smaller homeworks for more practice? That might not go over very well but it will allow you to know that we understand the different parts of python and topics from the lecture as well as further cementing these ideas for us. That way you can also receive constant feedback on the speed of the class. Also, if they're physical worksheets then they will promote lecture attendance.
There are tons of practice problems in the Udacity course, including
optional extra homework sets for most of the early units. We don't want
to spend a lot of time grading so aren't assigning lots of homeworks,
but you can find plenty of problems to do on your own, and I'm happy to explain any questions you have about them.
I really like the idea of belt promotion system. I can really put in best efforts without worrying too much about grades. I also like that most of our belt promotions are based on projects instead of tests in that if I put in enough efforts I can get good results. I hope that rest of our belt promotions were in forms of projects rather than tests.
Awesome! There will be a test as part of the Blue Belt promotion, and I
think its important to be able to check what people can do on their own
and to answer questions that don't fit into the projects.
Less reliance on Udacity would be cool. I don't really like how I'm kinda doing "two" classes for this course.
More time to do the problem sets.
More help session in class before starting other things, sometimes I come in, and I don't really understand the lesson even if I watch or read the chapter/unit.
If we actually code in class and try things out, I think it would help to keep us engaged.
I've tried this a few times with worksheets and giving people time to
work on solving problems themselves, but don't think its worked well
enough to be worth spending more class time on this.
Anything else you would like to say or ask?
I'm not feeling so motivated to go through the online part of the course
since it is not so related to what we are talking about in class, but I
will eventually have to go over them because they are needed to complete
projects so they are kind of stressful to me.
I'm not really getting this (but maybe its related to the different
expectations about how lectures-projects-materials are supposed to
relate). The on-line lessons are relevant if they are "needed to
complete projects", but this shouldn't be stressful (unless you wait too
late to start!). It should be pretty clear what parts of the Udacty
course you are expected to do before doing the projects.
I think the projects are really difficult and very time consuming. A lot
of the projects are things that are barely demonstrated in class, and in
order for me to do the projects I have to use google, or go to the TA's
and ask people who are majoring in computer science. For an introductory
class, it's really difficult for me, maybe it's because I can't think
logically, but I feel really stressed because of this class.
Yuchi is very helpful in office hours and I can't thank him enough for
his help. The class has been very interesting so far and although I have
some questions about what my actual grade is I am excited for the second
half of the class.
I want to say that I really enjoyed the message you put forth in the
beginning of the year. I love the belt system and your belief in that
traditional CS courses haven't been getting the job done and you wanted
to provide something different. I personally would like the rest of the
class to be more informative and applicable. I don't see myself taking
another CS course at the University, however would love to leave CS 1120
feeling like I know what goes on inside my computer, in the programming
world, with the internet and the deep web, and like I have some coding
experience, whether it's useful or not.
I hope that the due date for project 4 is pushed back just a little. We
do have plenty of time until the due date, but since it is spring break,
there will be not be enough office hours to attend do. I hope that the
due date is pushed back to allow time for getting some help.
The Udacity course takes up an enormous amount of time to complete, and
that is where we have to learn everything from. I understand the concept
of a flipped classroom, but I feel like the three hours spent in class
per week is when I should be learning, not having to go to class for
three hours, and then spend at least four hours extra trying to teach
myself something, with another hour of reading the textbook, and then
stressing out about having to do the Projects, which I think I spent 10
hours in office hours to be able to complete.