Reaction for: UCSB CS10 by Andrew Schulak

Mission Statement

CS10 is intended for pre-majors and has an enrollment cap. Students coming into CS10 are expected to be highly motivated and are encouraged to expend whatever energy they can in order to get all of the work that is laid out for them done. CS10 is a course which focuses not only on computer programming but computer programming in Java. The CS10 webpage boasts that such topics as algoriths, data and control structures, debugging, program design are focused on. However, having looked through their webpage I find no evidence that this is necessarily true. For example the only data structure mentioned is an arrays.

Scope of Lectures

Lectures begin with computing basics such as defining what a computer is as wll as exploring the history of computer programming. From here the course progresses to memory concepts, introduction to algorithms, flow of control statements and arrays. At this point the students have their first exam which notably entails no object-oriented ideas.

From here on the class begins to focus in on object-oriented programming and students begin to learn to implement and create classes. The final instruction on object-oriented programming comes with "a case study of polymorphism" and the notion of abstract superclasses.

From here on the students are introduced to strings, exceptions, threads and "multimedia concepts."


As well as lectures students in CS10 are expected to attend weekly sections. For these sections students are expected to have completed certain excercises (some programming, some not). For these excercises students are mostly herded into groups. In fact, groupwork seems to be very important in sections for CS10. Students are encouraged to solve problems within their groups rather then by themselves.

From what is available on the web page it seems to me that sections for CS10 are more like sections we experience in Humanities courses than how we tend to teach sections in CS15. Instead of just being an enrichment section these sections are called discussion sections. Here students are expected to come with a certain amount of knowledge or work done and are expected to work on these projects or problems with other students.


Projects, which make up 50% of the CS10 student's grade (the other 50% being exams), all take the form of web-based applets. The first assignment has the student establish a homepage which all of his/her further projects will be linked off of. From here students are introduced to the language of Java through the methods of translating a Java application to a Java applet and modifying an already created applet.

Students then implement a simple palindrome checker and a small math tester applet. For this last assignment it is noted that documentation and GUI layout are important and will be worth a portion of the grade. The next assignment is to punctuate the lengthy overview of arrays (three lectures) as well as class creation and implementation.

For the final project students are to solve any problem of their choosing and are encouraged to work in groups. Though surprisingly none of the final projects are available to play with, the comments from the instructors of the course are very positive regarding the outcome of the final projects.

Positives About CS10

Though it is completely impossible to try and understand what a course is all about through the information they place on their webpage, there are a few things I found in CS10 that I think may be extremely positive.

First off I think the fact that students are introduced to the history of computing and programming right from the begininng is very positive. This allows students (especially students with no background knowledge of computers) to better understand what it is that they are doing and how people have done it before them. Understanding why people started "computing" and what problems were trying to be solved, as well as which ones are today, can enable the future programmer to see where s/he wants to go with the field.

Another positive aspect of this course, as I mentioned, is the discussion centered sections. I feel that students who are expected to not only be responsible to themselves but to their groups as well will be more apt to actively learn in section as opposed to students who come to absorb. Also, building group skills throughout the semester allows them to offer the final project as a group project. Students who have found that working together on the section assignments was beneficial to them now have the ability to work on something substantial with other people. Students who had trouble working with other people could then do their projects alone. This kind of setup allows students to work in the best environment suitable to them.

The final thing that I really liked about CS10 was their use of Java and the WWW. All assignments had working demos available over the internet. I assume (since they are not available to me) that each student was able to access each other's assignments over the web to see what other people were doing in the class. As well as demos each assignment had programming tips available. When the assignment was completed the correct source code was made available to the students. Finally, the grading metrics were posted as well as the breakdown of grades for the assignment. This full-circle attitude allows students to fully understand the way good programs are constructed, what the instructors are looking for, and how they are doing in the class.

Questions On CS10

One thing that I question in CS10's program is their use of exams. When we read "Old dogs, new tricks" we discussed the utility of exams in testing for programming knowledge. Here, in CS10, the average grade on the final exam was a 58/100. This very poor average might initially lead us into believeing that perhaps the students were not getting a very good feel of programming. However, if we note the instructor's comments on final projects we find that they were expectional. So what counts for this discrepancy? I have no idea. I do think that if there is such a wide difference between quality of final projects and the average on the exam that perhaps something is off kilter.

I also question the content of the programs. From my limited experience it often seems that plain vanilla examples used for projects often are very math based. Create a grade-averager, a calculator, a math tutor, etc. I wonder to what extent this seeming math-base in projects doesn't serve to turn off some people to the subject matter. For if one really hates math then one is not goingto have a good time programming something that executes mathematical statements. Having said this and Having been involved in the course development process I know all to well how hard it is to design programs that everyone will enjoy. So perhaps there is no common range that anyone can hit with assignment topics...

What I Would Apply to CS15

I would personally like to take the attitude towards section that CS10 takes and aplpy it to CS15.

One of the biggest problems we have in CS15 is that we really do not know what we should be doing with section time. Currently we feel that it should be a time of reinforcement of the topics covered in lecture. Our perceived advantage is that the students become less intimidated in smaller groups which hopefully allows them to learn better. Also being able to ask questions directly should help students feel more comfortable about the matierial.

But is this enough? Are we properly using our time wisely? I think perhaps not. In order to encourage student participation in section we could merge homeworks with section. That is make homeworks be something that are due directly in section. Students would be required to come to section with their completed homework and be prepared to talk about possible solutions to different problems. As problems get harder we could also create group work as does CS10. This would allow students to directly witness different modes of thought. This would especially come in handy for teaching design.

By also creating small groups for the students to work in we could attempt to bolster confidence amongst the students and help foster a collaborative environment which might be very important for students who do not learn best under solitary environments.

In terms of actually changing the structure of CS15 we really wouldn't have to. Sections are already built into the system as a re homeworks. All we would have to do is combine the to into one, and teach our TAs how to conduct them. For such a small amount of reconfiguration it seems like it might be a good thing to try. However, before installing this type of section in CS15 it would be wise to find out how group-section work actually went.

Other People's Reactions