University of Virginia, Department of Computer Science
cs150: Computer Science — Spring 2007
cs150  Spring 2007

Registration Survey Responses

Summary of responses to the Registration Survey (with some comments).

Names you want to be called:

Alex, Amelia, Andrea, Andrew (2), Andy, Ang Li, Angelica (the g is pronounced as an h), Anna, Anthony, Bailey, Becky, Ben, Cary, Chris, Danny, Dave, Dmitriy, Eddie, Ellen, Emily, Eric, Folami, Ian, Jamie, Jill, John, Jon, Jordan, Jung, Kristen, Kyle, Lia, Lindsay, Liz, Louis, Mark, Marsha, Megan, Meghan, Mel, Meredith, Micah, Michael, Mike, Nadine, Nick, Nokomis, Paul, Rachel (2), Sara, Shriya, Sunny, Victor, Walter, Wayne, Zachary or Zach
Anthropology, Architecture, Cognitive Science (8), Computer Engineering Computer Science BA (28), Economics (4), English, Foreign Affairs with concentration in the Middle East, Management of IT, Math (5), Music, Neuroscience, Philosophy, Pre-commerce, Psychology (3), Systems Engineering, Undecided/Undeclared (16)
1st Year (14)
2nd Year (19)
3rd Year (20)
4th+ Year (10)
How did you find out about this class?
COD (15)
BA CS degree requirements (9)
From a friend (5)
From your Advisor (5)
Another CS major through the College told me about this class and from the College CS major web page.
at the CS BA information meeting last spring
CLAS CS major.
Cognitive Science Department
Cognitive Science Website
Computer Science website
CS for non-Engineering students pamphlet during admissions tour.
cs110, Matthew Cettei
From you when I met with you about the CS major for CLAS students.
From you.
I am required to take it for my major AND I heard that you were a great instructor, which was consistent with my meetings with you.
I found out about it through the CS/BA requirements page
I heard about the new BA in Computer Science program, and I read about this class on the Computer Science website.
I read about it in the Cav Daily when they first created the CS Major for the College.
I read it on the website and came in and discussed it with you (David Evans).
I was going to take CS 101; I saw on the CS Major website that CS 150 was a class for students in the College looking to major in Computer Science, and so here I am.
I was in CS 101E last fall and Prof. Sullivan recommended CS 150.
I was looking to learn more about computer science and this was one of the introductory classes
It is required for my major, and I have had several friends take the class and enjoy it.
link from the main UVA comp sci site
Other CS students and the CS website.
Professor Evans and CS 205
The cognitive science course list.
Through the pamphlet mailed over the summer.
Undergraduate Record and word of mouth.
via the UVa computer science website and the UVa COD
You mentioned it to me in one of our meetings about my thesis and I am very interested in the subjects discussed.
Why are you taking this class?
Required for Computer Science major (8)
(a) Because it is required for the major and (b) I truly appreciate this approach to computer science. I've taken some of the more technical classes, and I feel like this will help me absorb that knowledge into the kind of understanding that actually becomes useful in a life.
Because I am interested in computer science and its applications.
Because I feel that this class will be useful for whatever I decide to
pursue in the future.
Because I want to know if computer science is the right major for me.
because I want to 'understand' how to program
Because I would like to pursue the CS major for CLAS and CS 150 is the
first course required. I also enjoyed CS 101, which led to my interest
in majoring in CS.
Because they advised me to take it.
Cog Sci Requirement
considering to be a CS major
Degree requirement and general interest in principles and foundation of
Essentially, to fulfill the computer science requirement for my
cog. sci. degree. There were a number of choices in CS classes, so I am
taking this particular course because it appeared the most relevant to
my academic plans. The current overlying cognitive metaphor relates the
brain to computers, and in understanding the brain through this precept
I decided that taking CS150 and PHIL233 (computers, brains and minds)
together was the most appropriate way to fulfill requirements.
General interest in computers and possible interest in pursuing a CS
Hopefully to major in Computer Science, but also to get a greater
understanding of computers.
I am considering a CS major and it looked interesting
I am considering trying to complete a computer science major
I am interested by the intellectual theories behind computer science,
which is why I am doing the CS BA as well.
I am interested in CS and judging by the description on the COD this
class sounding like something I'd be interested in.
I am taking this class to see if I will like CS.
I am thinking about majoring in cs(CLAS) the new major you are heading up.
I had an elective spot open and I have never taken a CS class before and
this class required no previous experience
I have taken a couple of CS classes and it looks interesting
I need a CS class for the major, and I wanted to learn more about programming since I took a Java course in high school.
I thought it might be interesting and it helps with the requirements for the degree but that is besides the point
I took a CS class last semester and I thought it was pretty interesting
I was intrigued by a class that would combine illiberal arts" and
liberal arts and I also want to correct my grave misunderstanding of what computer science is really all about."
I'm required to take it. (And it's interesting and useful of course!)
I'm taking this clas to get a better understanding of what computer
science really is
In order to complete my CLAS-CS degree
Interested in the subject, and to try out an E-School class.
It had an interesting title, it's about CS, I needed the credits to fill my schedule, and the time slot worked well with my schedule.
It is required for my CLAS cs major and it also looks like it will solidify my cs background.
It is required for the BA in CS.
It looks like a very interesting class that appears to fit me very well - CS from a liberal arts perspective. Also, I'm looking at majoring in CS and I'm in the College, so it appears that I will need to take this class.
it seems very fun
It sounded interesting, and it's part of my major.
It sounds interesting
It's a requirement, and I enjoyed 205 with you.
I've always been interested in computers and in computer science, but
I'm also interested in other liberal arts subjects, which is why I'm in
the College.
major requirement but i love CS classes. They really interest me.
No particular reason other than I'd like to have more credits and I'm
doing a CS concentration for my major.
Seems like an interesting topic, and I wanted to find a CS class that I
will be interested in as well as have a good time in.
someone recommended that I try computer science
The bottom line is because it's required; however, I look forward to the
concepts that will be presented, and I have a genuine interest in any
Computer Science class.
The class seems to be interesting introduction to computer science in general without being overly simple or undemanding (or antidemanding, right).
To attain better knowledge of computer science and also required for my major.
To close the gap between computer science and the rest of the non-engineering classes I'm taking so that I can intertwine them somehow.
To double major in Computer Science
To explore Computer Science as a possible topic of study and to give
some formal education to my technical background in computers.
To find out more about computer science.
To fufill requirements for a BA in computer science, as well as explore the field of computer science. The professor, David Evans, comes highly recommended as well.
to fulfill a requirement for the CS B.A.
to fulfill the computer science area requirement for the cognitive
science major
To see if I would like computer programming as a career.
Have you ever written a computer program?
No: 20
Yes: 41
What programming languages have you used and how much?
A little bit of java and c++ though I don't remember much of it.

BASIC, and only very briefly.

C# (1 year); VB 6 (3 years; mostly production software); VB.NET (1 year; production software); Java (1 semester); C++ (1 semester)

C# and Visual Basic in High School, a semester of Java and a semester of C++

C,C++,Java,Python pretty strong in all of them

C/C++/Java/Perl - Used TONS, Fortran/Lisp - Used a little

C++ -- few years; Java -- few years; VB6 -- a fair amount; SQL -- a little; LISP -- nothing to be proud of

C++ -> haven't used it in a while, but I used to know a decent bit. I got 5s on both of the AP tests when they tested C++.; Java -> I took CS 201.; In the (very early stages of the) process of learning PHP.

C++ a little bit in ninth grade but I dont remember anything

C++ and Java on a high school AP CS level

C++ for several years, assembly languages like IBCM and x86 an itty bit

C++, Java, C, C# 1.0 and 2.0, VB .NET 1.0 and 2.0, VB 6, Javascript,

HTML, etc. a lot.

C++, Java, Visual Basic, C#, HTML in order of experience

I made a webpage with html and learned a tiny bit of javascript in CS


I took two C++ classes in High school and a java class. I know a lot

more about C++ but I am a little rusty.

I used C++ in my computer classes in high school and I've used Java in

all my classes in college. We touched on Python and Scheme in cs216.

I wouldn't know...

In high school, I learned PASCAL. For the past two years, I have been

studying Java.

I've dabbled in HTML, C++, and took a class in Perl in high school.

Java - a fair amount. C++ - a little.

Java - a high school class, CS 101E and some work on my own. I've also

used a little bit of PHP and Javascript (I know - scripting languages

aren't real" programming)"

Java - a lot, C++ - a lot, Lisp - some, Assembly - some, HTML - some.

Java - quite a bit; C++ - a decent amount; IBCM - a fair amount; x86

Assembly - not too much, but it will be more after this semester.

Java (APCS high school, CS101E, CS201, went further on my own on final project for 201 [rewriting iTunes]), minimal BASH experience (I wrote a script that prompts the user for the proper information and uses smbmount to access the home directory service), minimal PHP, extensive HTML if you count that...

Java and C++. I took a year of C++ in high school and then took AP

Computer Science AB (Java) in high school as well. I don't feel

particularly strong in either language, but I think I am competent with

both languages.

JAVA extensively, basic HTML, MATLAB programming

Java for a summer course at my highschool.

Java for two semesters, PHP, HTML, and Javascript as a high school hobby

and more recently in a part-time job, and only a small amount of

experience with Ruby.

Java in high school computer science classes and in 201

Java in JCreator and Eclipse

Java (Learning C++)

Java, a fair amount (I've taken CS101 and CS201); beyond that I have no experience

Java, also currently learning C++ in CS 216

Java, C, C++, C#, PERL, BASIC, Fortran 77. Java, C++, PERL & C# for a

few classes in the last 3 years (since coming to UVA). C & PERL for a

few years at work (prior to UVA). BASIC for a few years about 20 years ago. Fortran 77 for a class about 15 years ago.

Java, C, C++, x86 Assembly Code (basic exposure from cs216, but not extensive)...(VHDL, not a programming language though).

Java, C++ - Intermediate; Assembly and IBCM - Beginner

Java, cs 205 and cs 101

Java, i believe i know a moderate amount

Java, just from CS 101, HTML

Java, just to the extent of what I learned in CS 101 last semester.

Java, not very much. I think I could produce a single line of code at this point.

JAVA. I've used it for CS101 and CS201.





Not programming, but I am familiar with html and CSS.

Objective-C: 4 years. OpenGL, Java, C, C++.

one semester of java

The only thing I've really learned is using html to make a webpage


Who is your intellectual hero and why?
Abraham Lincoln for his hands-on approach to the Civil War and his ability to educate himself quickly on military tactics while balancing a tumultuous political atmosphere in the North.

Albert Einstein, because he was extremely brilliant and has had an enormous impact on the intellectual world.

Ben Franklin. Thank god for electricity.

Benjamin Franklin, because he was always working to make himself a better person

Chuck Palaniuk.

Franklin D. Roosevelt. IT IS FDR! enough said.

Giordano Bruno, because he did not renounce a more scientific point of view even when facing death.

Hard one...I mean I respect people like Hawking, Gates, etc, but I don't think I can call any of them my HERO per se. Sorry!

Have to think about that one...I'll get back to you.

I admire Catullus for his ability to manipulate Latin in such rigid poetic structure.

I do not have one

I don;t have an intellectual hero

I don't fully understand the question.

I don't have any heroes.

I don't have one but I really like Audrey Hepburn because she carried herself with class and was respected by all.

I don't really have a intellectual hero

I don't really have just one but someone that I really admire is Richard Dawkins, for not being to afraid to challenge the existing norm of belief in God and the prejudices held against non-believers through the use of rational scientific and philosophical arguments. I admire also the intellects of Godel, Frege, and Turing who we learned about in my philosophy class, but I would never want to do the work like they did. I admire many people but many of them have accomplished things that are beyond my capacity to grasp, at least yet.

I have no intellectual heroes; my heroes DID something for the betterment of this world or country.

I think Helen Keller's perseverance to learn makes her my intellectual hero.

I would have to say Einstein. His theories of physics and relativity were monumental in understanding the world we live in.

I would say that my Mother is my intellectual hero, as she homeschooled me until 9th grade and taught me the basis of almost everything that I know.

I'm going to have to think about this one.

Jean-Paul Satre for his fusion of philosophy into his literature because the synthesis of the two subjects seems to enhance the meaning of his work in both areas.

Josi Saramago, because he manages to produce brilliance despite his garrulous narrative style. There's an eloquent subtlety to being long winded.

kurt godel, shakespear, plato, leibniz, all three of them were guided by beliefs beyond what they could see and strove to achieve these beliefs

Lawrence Lessig. I feel that the Free Culture is as important as if not more important than the Free Software Movement in terms of potential impact. And I certainly think that a Stanford Law Professor certainly lends a lot of influence and credibility to an argument that is generally otherwise ignored, namely current abuses of the concept of copyright.

Mahatma Gandhi because he was an intellectual in the academic, spiritual, social, as well as the political fields.

Malcolm X- Went from a poor black juvenile to reading the dictionary, learning to speak to people, and overall better himself.

Marie Curie because she made giant leaps in science when women were generally not respected as scientists.

Michael Crichton - Like his books, really paints a picture with words

Miyamoto Shigeru, the creator of characters like Mario, Zelda, Donkey Kong, and many others. It's amazing that a man who started out drawing concept designs for toys could have such a large hand in video games that everyone's heard of.

My brother because he's accomplished a lot for his age and always has academic goals.

(My father), he has his masters in aerospace engineering and is the director for strategic programs at Lockheed Martin. He is one of the hardest working individuals I know and maintains a great work and personal life balance.

My dad because he studies for fun. I do so too, sometimes.

My dad. He's an electrical engineer and the principal design engineer at Andrew Corporation. He designed the majority of key components of the E-911 location system for cell phones at the tower level, which was a really important project. He's always helped me and inspired me with my work in computer science and engineering. Having a BS and MS in EE himself, I can talk to him and relate and get support when things in school are stressful because he understands what I'm going through from his college experience. He's well respected but still humble about what he does. Before college he would let me come into work with him and show me things that he was working on and it was definitely a big motivator and reason I chose to go into Computer Science.

My dad...he seems to know something about addition to knowing an exceeding amount about nuclear and chemical engineering My father, for his broad knowledge coupled with a compassionate yet boastless attitude.

My father, who manages to be the master of both inane trivia and

My father. He is a submarine captain for the United States Navy. Moving around the globe during his career, I have been fortunate to see him in my different roles. His ability to problem solve and think out of the box is to be admired.

My intellectual hero is da Vinci, because he was a man of many talents, who invested himself into everything that interested him, from literature, to art, to invention.

My intellectual hero is Mr. Jefferson because of the breadth of his studies. I believe that it is good to know something about everything, and Mr. Jefferson studied just about every subject during his time.

My intellectual hero would have to be J.D. Salinger. Catcher in the Rye and Franny and Zooey were the first classics" that I could fully appreciate and it is because of them that I have come to enjoy writing so much."

My intellectual heroes are Richard Dawkins and Thomas Jefferson. They both have quite a bit in common but I admire Jefferson because he was a Renaissance man , dabbling and excelling in everything. And Dawkins because he isn't afraid to put his ideas out in the world, regardless of the world of criticism that falls upon him.

My parents because they are the reason I'm the person I am today.

My sister because I feel she is very knowledgeable of a lot of topics although she isn't someone that has been published in a book or something to that nature.

Nikola Tesla. He invented so many things, some of which are only now being used because they were so far ahead of their time. Also, he did not and still does not get nearly enough attention for all the things he did.

No one in particular, but in general a person who is creative enough to have a vision of something, whether it be a piece of art, a book ,or a song, and then make it real.

Probably Sigmund Freud. Although I don't agree with most of his proposals I admire that he wasn't afraid to try non traditional methods.

Ray Kurzweil, not only for his seemingly endless creative energy and great intellect, but also because he has applied these in so many different ways rather than limiting his focus. Before I even knew who he was I had used the OCR software that he pioneered and owned a synthesizer he developed. I've since read some of his books and learned of his contributions in a wide range of other fields as well.

Richard Dawkins - He's a great writer who has devoted his life combating pseudoscience and religion when they try to undermine science. He primarily addresses his own field of biology, but is well known throughout the science world for his efforts.

Richard Feynman, because he didn't just pursue one field single-mindedly throughout his life. Richard Feynman is one of my heroes because he did so many things (bongo drumming, painting, lock-picking, teaching in Brazil) and still excelled in physics.

Richard Feynman, because he's one of the few people I've heard of who has his priorities straight.

Robert Frost is the greatest poet of all time. I love poetry and he was a intellectual hero when it came to writing.

Robert Goddard, because when I was younger I really liked rockets and space stuff and he is considered the pioneer of this field (also, as alluded to in class, the eventual space race fueled many discoveries in computer science, medicine, and mathematics).

Sacha Cohen because he has managed to so humorously yet honestly uncover the ignorance of the average American.

Shakespeare- I enjoy the complex twists in all his plays

Socrates, because he didn't merely research and study books. He actually went out of his way and learned from other people, and gathered his information from the things surrounding him.

Steve Jobs: he's very passionate about everything.


Here are my answers to selected questions you sent.

Will I learn some programming in a way that is a natural extension of what we discuss in class, or will be jump right in?

I'm not sure I completely understand the question, but you'll be doing programming (as well as answering non-programming) questions in the problem sets. The programming in the assignments will connect to what we do in lectures, and you'll see lots of example programs in class and in the reading. For the assignments, you'll also need to figure out some things on your own, but if you think hard you should know what you need from class and the readings to be able to do this.
Will there be any hands on learning?
I'm not sure quite what "hands on learning" means, but much of the learning in the class will come from doing the problem sets which involve understanding, modifying, and creating programs (I suppose all of this could be done with the feet or mouth, but I recommend using hands for most of it!). We'll also do some exercises in class that involve working in groups to solve problems.
What is your background in computer science? what do you do to get your degree?
I did my undergraduate and graduate degrees at MIT. My research is mostly on computer security including detecting viruses and changing the way programs run so they are less vulnerable to attackers. For more, you can see my homepage here:
What would be the courses to take after this course if we want to pursue our intrest in CS, and how would a major in CS through this route work?
The most direct follow-on course is cs205. If you are interested in other follow-on courses, see (this is a bit outdated, but should give an idea of some of the possible courses - cs201k mentioned there is now the course called cs205).

The other cs course that you can take immediately after cs150 is cs/ece 230 (digital logic). This counts as a cs elective for the cs ba degree.

This course is the first course in the CS BA degree. For more information on the CS BA degree, see

Why did you decide to teach computer science? Why did you develop a CS course for College students?
When I was a first year undergraduate, I took 6.001 from Gerry Sussman, which is what the SICP book (that was used in previous versions of cs150) is based on. That course inspired me to want to be a computer scientist. I didn't realize I wanted to teach until I was in grad school and had some great experiences as a TA.

Since coming to UVa, I've believe the most important thing I can do is make most students learn some real computer science. You can read more details about my motivations in my fellowship proposal (which I wrote to get to start this class about six years ago): Although many of the specifics of the course have changed since then, the main design of the course is still surprisingly close to what was originally proposed there.

If you have the slides posted online, why do we need the NOTES handouts? Are they highlighting the main points of the lecture that will be used in future tests?
The notes have information not in the slides, as well as questions that I hope will help students think about the lecture and check their understanding during and after the lecture. Also, some classes I won't use slides, and the notes should be helpful for understanding the class.
Are there any specific lessons of this course which would be the most similar to computer programming courses one would take down the road, or similar to a career in computer programming?
The general ideas behind computing and programming are the same for all programming languages. What you learn in this class you make it relatively easy for you to get basic ability in a new programming language or computing environment quickly, and to understand the fundamentals behind new computing problems.
How did you get into computer Science? If your weren't a teaching ... what would you be doing?
I started playing with computers back in grade school when my school got an Apple II and I wanted to figure out how to win the games, and then to make them better. I had a lot of fun programming computers then, but didn't know what computer science was. I got interested in computer science after reading the GEB book, and then taking the MIT 6.001 course.

Now, when I'm not teaching, my professional time is spent mostly on doing research on computer security. If I wasn't doing either teaching or research, I'm not sure what I'd be doing — perhaps a starving street musician, probably in Europe or Korea, but its hard to speculate on such things.

I am interested in how to fully learn a computer programming language and whether or not, at the end of this course, I will have extensive knowledge of one (besides scheme).
Its hard to say what "fully" means — in this class you'll learn the fundamental ideas behind all programming languages, and learn essentially all of Scheme and its semantics, and get some experience programming in Scheme and a bit of experience programming in some other languages. But to really be an expert in a language requires many years of experience and working with many programs (including large ones) in the language to learn all the idioms and intricacies of how to program productively and efficiently in that language. We won't do that in any language in this class, but you'll know what you need to do it.
What do you like best about computer science?
I think what I like best is the unboundedness combined with instant gratification that computer science provides. I don't know of any other field where you can create something without needing any raw materials, and the things you can create span such a wide and powerful range.
cs150: Computer Science
University of Virginia
Using these Materials