University of Virginia, Department of Computer Science
CS201J: Engineering Software, Fall 2003

CS201J Course Improvement Survey - Results

Original Survey
SEAS Official Evaluation

51 out of 59 students submitted surveys.

General Questions

For each statement, circle a choice to indicate whether you agree or disagree with the statement.
1. Before taking CS201J, I thought programming was fun. Strongly Disagree:
12
Disagree:
19
Not Sure:
4
Agree:
11
Strongly Agree:
5
2. After taking CS201J, I thought programming was fun. Strongly Disagree:
3
Disagree:
10
Not Sure:
14
Agree:
18
Strongly Agree:
6
3. Before taking CS201J, I expected to take more CS courses. Strongly Disagree:
20
Disagree:
15
Not Sure:
5
Agree:
4
Strongly Agree:
7
4. After taking CS201J, I expect to take more CS courses. Strongly Disagree:
14
Disagree:
17
Not Sure:
7
Agree:
5
Strongly Agree:
8
5. I thought the time I spent on the problem sets was worthwhile. Strongly Disagree:
0
Disagree:
2
Not Sure:
10
Agree:
29
Strongly Agree:
10
6. I thought the time I spent on the exams was worthwhile. Strongly Disagree:
0
Disagree:
1
Not Sure:
5
Agree:
38
Strongly Agree:
7
I felt they really helped me understand more
7. I thought that the time I spent attending lectures was worthwhile. Strongly Disagree:
0
Disagree:
3
Not Sure:
10
Agree:
29
Strongly Agree:
9
since the slides were available, I felt I wasn't always paying close attention
8. I thought that the time I spent in Friday sections was worthwhile. Strongly Disagree:
4
Disagree:
17
Not Sure:
18
Agree:
8
Strongly Agree:
1
most labs helped explain the ideas better by using coding examples
9. How many units should CS201J be worth? 2:
3
3:
17
(3.5: 2)
4:
25
5:
4

Problem Sets

10. Problem Sets for future CS201 courses should involve? More programming, less non-programming work:
9
Simlar balance as this year:
37
Less programming, more non-programming work:
5
I liked the sections problem sets were divided into. More theory initially then coding.



11. There should be:
More, shorter problem sets:
19
Simlar number and size as this year:
31
Fewer, longer problem sets:
1



For each problem set, indicate whether you think a similar problem set should be reused next year. If you have suggestions for what the changes should be, they are appreciated.
PS 1. Game of Life Don't Use Again:
4
Maybe reuse, needs major changes:
5
Reuse with minor changes:
42
puts you in false sense of security

incorporate basic java programming concepts, so those of use new to java can have a better foundation. Sort of a "crash course"

PS 2. Using Data Abstractions (Trendy Names) Don't Use Again:
2
Maybe reuse, needs major changes:
12
Reuse with minor changes:
37
PS 3. Implementing Data Abstractions (Google) Don't Use Again:
4
Maybe reuse, needs major changes:
16
Reuse with minor changes:
32
it was fun and interesting - def use again
PS 4. Designing with Data Abstractions (Cracker Barrel Puzzle) Don't Use Again:
10
Maybe reuse, needs major changes:
16
Reuse with minor changes:
25
dividng work evenly among people with verying levels of skill was difficult
PS 5. Distributed Simulations Don't Use Again:
1
Maybe reuse, needs major changes:
4
Reuse with minor changes:
46
assign groups or give a few classes like grid that are fairly basic just so we can have something to start with

fun!

not major changes ,but many students got a lot of code from just other simulations

Best PS of the year

PS 6. Byte Codes Don't Use Again:
3
Maybe reuse, needs major changes:
17
Reuse with minor changes:
31
PS6 was frustrating

Curriculum

Answer the next two questions only if you are majoring in Electrical Engineering or Systems Engineering.
Your major:
Electrical Engineering:
10
Systems Engineering:
29
Should CS201 be required for your major? Yes:
17
No:
24
the programming should be taught in the engineering school, but it does not mean that the student has to take C++ as an intro course. I think it was a torture for me to learn C++ as a beginner course. CS201 should not be required for my major, however engineer should know how to program (there are other CS courses besides CS201)

I don't think it really relates with other courses, but then again, I don't think others also required do either.

40% of Systems Engineering majors thought CS201 should be required for their major.
33% of Electrical Engineering majors thought CS201 should be required for their major.



Others

Have I done anything in this course that you found offensive?

no no. That's not saying much for me though. Ha ha.

no - you rock

no —What a random question. Honestly, I'm really humbled by seeing how much help you gave to everyone on problem sets. Your quick responses to email, and your willingness to spend extra hours in the lab.

Never!

No, not at all. I can't believe this was even a question in your survey. I thought you were one of my most caring professors, most involved in the concerns of students.

No, this was a very well taught course and you were very helpful.

no! I thikn you're great. It's hard material to teach b/c has tendency to be monotonous but you did a nice job. You're approachable and clearly extremely bright.

NEVER - you are always very kind and funny

No, I have found nothing in this course offensive.

None what so ever!

No, thanks for all your help and your personal attendance in office

hours and in section.

no, you did a very good job teaching a course than many people were

reluctant to take :)


31 answers like "no" or "not at all"

Any other suggestions for improving this course?
I really like the random humour during lectures it keeps awake and interested. The way your teaching is good, I just think CS is a hard subject to teach for any professor; I think you did a good job this year.

It is really good! I think to change the teaching style of this course as it is now would be offensive.

more problem set and code work in class; not so much explanation of "how to"

improve the discussion section

no, I thought it was a very good course.

more TA office hours heeded

There might be more office hours (TA help sessions). A better book may be used

In retrospect, I really enjoyed the course, especially towards the end when I really started understanding things. At times I really hated some problem sets because I didn't know that much about coding and couldn't figure it out on my own. It seemed like the TA's couldn't help me much either without them sitting down and doing it for me. more emphasis on basic instructions

I enjoyed this course, I wish there was a better compiler tho... but this should be supplemented with one term-long program running in the background. Each PS will introduce a new concept to be applied to the big program

By allowing so much group work, you allow kids who know nothing about programming, but who have friends in the class who are good at it, succeed. The score distributions would be much fairer if there were no groups.

I thought the unique way of teaching class was good.

Teach how to better use eclipse, especially toward the beginning of the year. I want to emphasize my answers to questions 10 and 11. I enjoyed the last lecture very much.

Have one class right away with Java basics.

I think that the Friday sections should be in the lab and an opportunity for students to work on the problem sets instead of discuss the material. Aside from that I think this course is head and shoulders about the majority of engineering courses offered at UVA. It needs no improvement whatsoever.

less code oriented. More theory

improve Friday session

Maybe a little more Java info sheets for coding. In PS6 you gave us the little glossary of things like aload_1, if you did this in the beginning with things like get_ or add_, it might make programming for beginners a little easier

Keep the problem sets interesting. You are much more motivated to work when you enjoy what you are doing. The problem sets we did this year were interesting, but the tendency to make the problem set more like CS101 or CS201 would ruin this course.

Lab sessions that involve programming w/help of TA's would very useful in learning syntax. Also, more TA's are necessary for office hours. TA's also need to be better informed. (More often than not, we would sit w/our hands raised for long periods of time only to find the TA could not help us.)

make more clear the differences between C++ and Java language - the programming was hard to get used to.

more emphasis on teaching syntax and code

I known cs201j is trying to cover a lot of the basics, but I would understand the material a lot better in class if there were more examples. In each CS101 lecture last year, the teacher programmed in front of us for the last 20 min of class. I found that very helpful to reinforce the concepts just taught. One thing that I did like was that coach was available in his office a lot before problem sets were due, not just during office hours.

Maybe give the TA's more structure for the Friday sections.

assigned groups!! For those of us without friends in the course it's a lot easier to learn from the other students. An introduction to java programming incorporated into first problem set

I just would like to say that the last day of class was really enjoyable. The development of your lecture was well thought out, planned and executed. Sometimes understanding the bigger picture is better for some than becoming experts on the topic. The class nurtured both through the group work, which proved a huge success.

In the beginning we could have used more on how to actually code in Java. Syntax and language specific words. make Friday sections an in-lab session similar to TA office hours better textbook

I would have liked to learn more about Java in the beginning of the course perhaps have a recommended book. I would have liked fewer shorter problem sets, because that way it is easier to get it done - and it may illustrate the concept better

Some Tas just don't know how to help/explain things when doing problem sets in computer lab. I think Tas should be trained to be more equipped in answering student's question. I don't expect TA doing our problem sets (for instance PS6) but TA should be able to give guidance instead of walking away.

It would be nice to learn about Exceptions and other Java stuff earlier in the course, just a handout with some exersizes and one lecture or maybe one Friday section would be enough.

Perhaps emphasize class attendance greater. Provide some incentive to attend class regularly.

I can tell you put a lot of thought into problem sets, tests, lectures and I really appreciate that. That made all of them worthwhile.

Lectures were my least favorite though. Sometimes I think you ask questions that are fairly simplistic so no one really wants to answer. That's really my only complaint.

Longer PS, like game one required an excellent use of Java to do, so maybe have a larger PS and write a fairly large game. Keep it REAL.

I liked it when you worked out problems in class (ex. deadlock with threads and different people) because personally it helps me understand better to see you work it out. I think a little more help in the beginning of the semester w/Java would have been good b/c everyone was really stressed that they didn't know it and we were just told to do it. Perhaps do 1/2 a lecture on the java lingo and such so that we understand faster so that we can spend more time on learning the material and less on learning basic java. The problem sets were VERY helpful in helping me learn the information.

More intro to the Java language (one or two classes) in the beginning. However, with CS101 being taught in Java, this won't be necessary in the future.

Keep up the good work. The office hours were very helpful and the grading policy is extremely fair. The TA's were very helpful, and this class was geared towards learning moreso than it was towards getting a good grade. Great semester!


CS201J University of Virginia
Department of Computer Science
CS 201J: Engineering Software
Sponsored by the
National Science Foundation
cs201j-staff@cs.virginia.edu