Sigcse Bulletin: Vol 2 8 N o - 2 J U N e 1 9 9 6
Sigcse Bulletin: Vol 2 8 N o - 2 J U N e 1 9 9 6
Curtis R. Cook
Computer Science Department
Oregon State University
Corvallis, OR 97331-3202
cook@cs.orst.edu
ABSTRACT
This paper describes an orientation course for beginning computer science majors. The course is
different from the CS 1 or computer literacy courses, but similar in intent and content to orientation
courses in engineering, business, and other fields. Its purpose is to give students an overview of
computer science and an idea of what computer professionals do so that students can make an
informed career decision. Other emphases for the course axe practice in problem solving,
experience working in groups, teaching basic technical (non-programming) skills, social and
ethical issues, and making students aware of the resources and opportunities available to them
such as internship programs. Influences and constraints on the design of the course and suggested
changes the next time the course is taught are also described.
1. INTRODUCTION
Freshman orientation courses are common in many academic disciplines especially in professional
fields such as engineering, business, and health sciences. The major purposes of these courses are
to give the students an overview of the discipline, an idea of the types of career opportunities, and
a chance to meet the faculty and other students in the program. The course gives freshman an idea
of what the profession is like and what professionals do so that they can make an informed
decision about their educational and career goals. Orientation courses are important because
beginning students spend much of their time in the first two years taking required background
courses in science and mathematics and often lose sight of the reasons why all of this background
is necessary.
Orientation courses do not seem to be that common in computer science. Most first
computer science courses are computer literacy, introductory programming, or introduction to
computer science courses. Computer literacy courses typically cover use of personal computer
productivity packages, computer applications, social and ethical issues, and possibly some
exposure to simple computer programming. Introductory programming courses are offered for
most of the common programming languages such as C and Pascal and primarily focus on
developing programming skills. Introduction to computer science courses approach computer
science as the science of computing with an emphasis on algorithms and provide an overview of
the field. Students do considerable programming in the introduction to computer science classes.
In all of these courses Little time is spent conveying what computer professionals do. Probably the
major reason for devoting little if any time to orientation topics is that many of the students in the
first course are not computer science majors.
In this paper we describe a freshman computer science orientation course that is similar in
content and purpose to orientation courses offered in other disciplines. The course provides an
opportunity to "sell" computer science, make the students feel part of a community, teach some of
the basic technical skills, and give an overview of computer science. I describe the major
SIGCSE
BULLETIN
Vol 28 No. 2 June 1996 49
influences in design of the course as well as major constraints. Finally I describe changes I would
make the next time the class is taught and offer my suggestions about how I feel the course should
evolve.
The following lists the major influences and constraints in the design of the orientation course.
S
B IUGLCLS
EETIN vol 28 No. 2 June 1996 50
fellow students and to study in informal peer groups. This recognizes the well k n o w n fact that
much student learning occurs outside the c l a s s r o o m . It was also recognized that formation of
informal study groups had to occur naturally although it could be encouraged through a appropriate
environment.
The orientation course should not teach programming. Another constraint is that the
orientation course should not be a programming course. This follows somewhat from the previous
constraint. But at the same time, the orientation course should not give the computer science
students a p r o g r a m m i n g skill advantage over non-computer science students in the computer
science core classes. That is, since C++ is used in the computer science core classes, the
orientation course should not teach C ~ t. If it was seen that the orientation course did give the
computer science majors an advantage and if instructors of later computer science courses assumed
this p r o g r a m m i n g background, then non-computer science majors w o u l d also enroll in the
orientation course. Given all of the material to be covered in the orientation course, probably the
most important reason is there is little if any time to teach programming.
3. COURSE DESCRIPTION
Oregon State University is on the quarter system where each term is 10 weeks. The topical course
outline below describe the course in terms of the four major topics and the time spent on each
topic. Note the in teaching the class, material from the various topics is interspersed throughout
the class. The class met three times each week for one hour. Class meetings varied from lecture to
recitation to laboratory.
SIGCSE
BULLETIN
Vol 28 No. 2 June 1996 51
Course Topics Outline
T eam problem solving was the single major area of concentration in the course. Students were
divided into teams of m a x i m u m size four during the first week of class. After the fourth week they
were divided into new teams and again assigned to new teams at eight weeks. After students had
several weeks experience working in teams, a professor from the Speech C o m m u n i c a t i o n s
Department lectured on group dynamics and working effectively in teams. I purposely scheduled
this lecture after the student teams had worked one problem set and had encountered usual team
problems and frustrations (what to do if a team member does not attend team meetings, what to do
if team m e m b e r fails to do his/her share). The students spontaneously applauded after her lecture
because they identified with the points she emphasized and appreciated the practical information
and advice she provided.
The course covered a variety of general problem solving methods - inference, hill climbing,
divide and conquer. I chose to concentrate on a few methods in some detail rather than a large
number of methods. For each method examples were worked in class and problem sets assigned
to each team. A sample problem set is given in Appendix A. (Averbach and Chein [1] is an
excellent source of problems.) The importance of representation (e.g. graph theory as a general
representation method, tables for inference problems) and validation of solutions were highlighted.
Only a small amount of time was devoted to algorithms. Pseudocode and a little algorithm
analysis was covered. Pseudocode was introduced to give students a language in which to write
the algorithms for problem solutions. The algorithm analysis just did worst case analysis and
introduced the Big Oh notation.
I felt it was important to give students experience using a high level problem solving tool so
that they would gain an appreciation of the utility and power of such tools and not always think of
programming in a language such as C as a typical problem solution. I selected the powerful
mathematical manipulation tool Maple V TM. I could have just as well selected Mathematica or
MathLab. Ma p l e V is more than a fancy calculator. It can perform s y m b o l i c and n u m e r i c
mathematics, generate 2- and 3-dimensionaI graphics and animation, and display output in a
mathematical notation to a large number of decimal places and in a format specified by the user.
This is the part of the class where the students did a little programming to solve problems. The
SIGCSE
BULLETIN vol. 28 No. 2 J u n e 1996 52
required computations and plots can usually be stated in few simple high level Maple commands. I
attempted to emphasize that Maple V has the same advantages over using a programming language
as a calculator has over pencil and paper. Using Maple V the answers can be obtained much faster,
with considerably less effort, and are more likely to be correct and accurate to more decimal places.
I felt that was important for students to be exposed to a tool with symbolic mathematics. Finally
Maple V is available for a variety of platforms and operating systems including the Macintosh, MS
Windows, X Windows, and UNIX.
The major goal of this part of the course is to make students aware of the social and ethical issues
and to give them some practice dealing with them. Since only one week was devoted to this
section, the issues covered were: piracy, privacy and professional responsibility. These issues
seemed the most relevant to students at this level. Software piracy is a continual problem at high
schools and colleges. In this section of the course I emphasized that piracy is illegal, but also
discussed what is "fair use" of software. Privacy is more abstract but a few well chosen examples
can make it quite real for the students. Responsibility when the software malfunctions is certain to
become a serious liability question in the future. Most of class time was spent working on and
discussing scenarios. Teams were assigned several scenarios to work through and hand in.
Early in the course I presented a brief the history of computing, the basic functional organization of
computers, and the representation of information inside the computer. This provided the basic
background for the 25 minute presentations on the major areas of computer science by faculty in
the department. For example, since I covered the typical yon Neumann architecture, students
understood what faculty member lecturing on parallel computing meant when he referred to the
"yon Neumann bottleneck" problem. Areas covered in the faculfy presentations: software
engineering, artificial intelligence, parallel programming, computer networks, programming
languages, and algorithms. Students were required to hand in short summaries of each
presentation. I should comment that it is convenient to schedule these lectures when the instructor
must miss a class.
4. T E X T B O O K S AND G R A D I N G
There is no textbook that includes the wide range of topics covered in the orientation course. Since
I felt that it was essential that students have a textbook, I selected Brookshear [2] which is used as
a supplement in our first core computer science class. It includes material on the history of
computing, functional organization of a computer, representation of data, algorithms, and chapters
on the major areas of computer science.
The textbook was weak in the problem solving area and contained no material on social and
ethical issues or high level software tools such as Maple V. For the problem solving I made
extensive use of material from general and mathematical problem solving books [1, 3, 5, 6, 8].
These books contain a wealth of examples and problems.
Next time I teach the class I will use Schneider and Gersting [ 7 ]. This text covers basic
hardware and software, history, and social and ethical issues. It also contains material on the
major areas in computer science. However, it is weak in the problem solving area.
I wanted to give students enough of the flavor of using a high level tool in order for them to
experience first hand the advantages (e.g. symbolic computation, nearly unlimited precision) of a
tool such as Maple V. Obviously not all of the features of Maple had to be covered. I prepared a
SIGCSE
BULLETIN vol. 28 No. 2 June 1996 5~
handout that provided e n o u g h basic information about using it so that students could solve the
assigned problems. Also because of Maple's extensive on-line documentation and the truly helpful
Help C o m m a n d s , once students became familiar with the basic features they could easily m o v e on
to the more advanced features.
Although students were somewhat familiar with the concepts i n v o l v e d in the three ethical
issues covered - software piracy, privacy, and professional responsibility- it w o u l d h a v e b e e n
useful i f the textbook contained basic m a t e r i a l on them. I used material for the lectures f r o m
Johnson [4] and would r e c o m m e n d it as a reference.
A final c o m m e n t on textbooks. I read the sections that discussed types o f j o b s and careers
in several c o m p u t e r science and engineering" books. One noticeable d i f f e r e n c e b e t w e e n these
books was the engineering books seemed to emphasize the professional aspects o f engineering, the
relation and interaction b e t w e e n the branches o f engineering and how they fit together, a n d the
social responsibilities of engineers. This m a d e the treatment in c o m p u t e r science books appear
superficial and narrow in comparison.
The orientation course was graded on a Pass/No Pass basis. That is, a student n e e d e d to
achieve a certain m i n i m a l level of performance to earn a grade of Pass. The decision to use the
Pass/No Pass grading was based on several factors. First the p r i m a r y purpose o f the orientation
course is not t o "weed out" students, but rather to help t h e m m a k e i n f o r m e d d e c i s i o n s about a
major and a career. The knowledge and technical and survival skills learned in the course apply to
all majors. Furthermore, most students in the course are in their first term at the University w h i c h
is a time o f adjustment. Finally m u c h o f the student work is done in teams for w h i c h it is difficult
to assign individual grades.
Grading,was based on 200 possible points. 50% o f the points were based on t e a m projects
and p r o b l e m assignments some of w h i c h individual, 20% for the m i d t e r m and in-class quizzes,
20% for the final, and 10% for class participation and individual writing assignments. A student
had to earn more than 119 points for a grade o f Pass. O f the 75 students in the class, all but I0
earned a Pass.
The m a j o r change I would make would be to include more information about careers for computer
science graduates. I w o u l d arrange for outside speakers to give short class p r e s e n t a t i o n s and
answer questions. Currently I am contacting alumni about becoming "electronic pen pals/mentors"
for students in the orientation class. This will give students an opportunity ask w o r k i n g
professionals specific questions about what they do and seek advice about to best take advantage of
the opportunities and resources available at the University.
Most of the e x a m p l e and assigned problems were mathematical. To e m p h a s i z e general
problem solving more, I would choose problems that are less mathematical and more open-ended.
C h a n g e from the three one hour classes per week to two one hour classes plus a 90 m i n u t e
recitation/laboratory. T h e c l a s s w o u l d b e d i v i d e d into two e q u a l s e c t i o n s f o r the
recitation/laboratory.
A group o f five students in the class volunteered to serve on a Total Quality M a n a g e m e n t
(TQM) team for the course. The students received extra credit points for volunteering. W e tried to
meet weekly, but not e v e r y o n e could attend each time. The meetings gave me an opportunity to
b o u n c e ideas and plans, to seek advice on student preferences and a chance for students to share
their ideas and comments. Students were free to m a k e suggestions about any aspect o f the course
other than the content. For e x a m p l e , they decided that there s h o u l d be three d i f f e r e n t t e a m
assignments during the term and whether the m i d t e r m and final would be open or closed book. I
plan on m a k i n g more use of the T Q M teams in the future.
SIGCSE
BULLETIN vol. 28 No. 2 June 1996 $4
6. POSITIVE OUTCOMES
It is too early to access the impact of the course. Did the class provide the needed overview of
computer science? Will students make better career decisions? Will students take more advantage
of the available resources and opportunities? Did the course improve student p r o b l e m solving
skills? W i l l students regularly read announcements and make more effective use o f network
resources? These questions may never be answered.
However, there were some noticeable changes from students working in teams. Students
got to know more their peers and it encouraged the formation of informal study groups. I noticed
almost immediately that students in the same group began to sit next to each other in class. Shortly
after students were assigned to their second teams, several students indicated that they preferred
their original group to the their new group. In fact several students continued to study and work
with m e m b e r s of their original group. Another positive outcome is experience o f working in
teams carried over to the next computer science course. The instructor of this course had students
do some work in teams. He immediately noticed that students who had taken the orientation
course were prime movers in the most effective teams.
A major problem in teaching an orientation class is fitting in all of the material and topics you
would like to present. I have presented my view of what topics should be covered and what I feel
is important in the orientation class. I expect there to be some disagreement about my choice of the
topics. Where I would expect most disagreement would be in the depth of topic coverage. I
placed heavy (perhaps too much) emphasis on team problem solving. Our course had to satisfy
constraints (no programming, not a prerequisite for another computer science course) that may not
be applicable at all universities. Actually my use of Maple V violated the letter, but not the spirit of
the "no p r o g r a m m i n g constraint." M y advice for designing an orientation course is to first
determine the goals and constraints. Determine what skills and knowledge you want students to
learn from the orientation course and how it fits within your curriculum. Then select the topics and
decide how much time to devote to each.
Rather than re-inventing the wheel, I think computer scientists can learn m u c h f r o m
engineering departments who have much experience teaching orientation courses. A task force of
faculty who teach the orientation courses in College of Engineering at Oregon State University met
recently. The charge to task force was to look at improving the orientation courses with a side
benefit of sharing what each did and what works well and what does not.
They discovered a set of 8 core topics common to all of the courses:
1. College of Engineering and Getting into Pro School
2. Rudimentary Computing Skills
3. Library Resources
4. Professionalism and Ethics
5. Time Management Skills
6. Engineering Disciplines
7. Team Management Skill.~
8. S u m m e r Work, Internships, and Survival Skills
The task force recommended that all orientation courses should devote a m i n i m u m amount
time (1 hour) to each of the core topics and that "teaching modules" be developed for each of the
core topics including the materials needed for an instructor to incorporate the topics in a way that
ensures a reasonable level of quality and consistency across the college. The recommendations
were accepted and faculty have been funded to develop these modules.
*********************************** References C o n t i n u e d On Page ************************
SIGCSE
BULLETIN Vol. 28 NO. 2 June 1996 55
[3] "Virtual Reality - through the new looking glass", Ken Teixeira and Pimental K, Windcrest 1993.
Distributed by McGraw-Hill.
8. REFERENCES
6. G. Polya, How to Solve It: A New Aspect of Mathematical Method. Princeton University
Press, Princeton, N J, 1973.
SIGCSE
BULLETIN vol. 28 No. 2 June 1996 61