CMPS 101, Spring 2017 (60673)

Instructor: Prof. Van Gelder
Office Hrs. MW 1:30 - 2:30

Lecture Room: JBE 101 (Aud.)
MWF 4:00 - 5:05

Click here to access EndQuarter,
which repeat mailing-list announcements about end-of-quarter procedures, especially regarding program assignments.
File names will consist of the subject, with underscores repplacing spaces. Extensions are .txt .

UPDATED MAR 24: If you are a graduate student you need to get a permission code.
Email me (avg at PUT "GRAD" as the first word of the subject or I might miss it.
Come to first class in any case.
OBSOLETE AS OF MAR 14: Contrary to past practice, the CMPS Department Chair, Prof. Helmbold, has stated that graduate students have the lowest priority for taking this class, and has refused to authorize permission codes to me. If you need 101 for your program, consult the graduate director for your program.

If you are an Education-Abroad student you should receive a permission code from the Education Abroad office.
Come to first class in any case.

If you are an undergraduate with the pre-reqs and the class is full, just jump on the waiting list for Section 01 (60673).

IF YOU SEE "capacity 0", THAT IS A HACK to make the system work. It DOES NOT mean the class is full or cancelled, at least not in this case. You can get on the wait-list if you have the pre-reqs.
Come to first class in any case.

If you are an undergraduate and missing a pre-req or not in the required major or any other exception, bring a copy of the form you filed from Handouts/EnrollmentPetition2017Spr_rev.pdf to office hours, or slide it under my office door. Emails to me (avg at will not be answered for these cases.
Come to first class in any case.

Come to the first class in any case. No-shows will be deleted so others who WERE at the first class can get in.

Several students found messages from TAs and me (avg at in their spam box in past classes. Unspam them if you find them.
Google assumes you are too stupid to understand spam, so it does not show it to you. You have to look for it by clicking "More" somewhere on the left in gmail (at least on my screen).

ANNOUNCEMENT 1, This page (currently) pertains ONLY to section 01.
This page pertains ONLY to section 01. I do not know if there IS a section 02 or where to find information on Section 02 at this time.

Enrolling in a discussion or lab section is not required and not useful.


If you have the pre-reqs but an administrative glitch prevents them from being recognized in the system, FIX THE GLITCH. SEE me in office hours if necessary, but try BSOE Advising first.

ANNOUNCEMENT 3, Past quarters cmps101 web pages owned by avg have been made inaccessible over the Internet because students stumble into them by accident. If you need to see any of them send email to avg@cs...

ANNOUNCEMENT 4, check Handouts subdirectory frequently:
Important class documents will be put there, including the syllabus, assignments, practice exams.

Click here to access Handouts, which are files beginning with ho.

Files with different names are possibly helpful, but not mandatory reading.
The syllabus and other official information is in ho01.pdf

After logging into a unix workstation in JBE 105 or ssh to,
the Spring 2017 CMPS101 Class Locker, is (or will be) here:

The Handouts subdirectory will have handouts related to programming, duplicating the Handouts subdirectory of the class web page (i.e., THIS page). Some files are in one directory and not the other.
Make a symbolic link to the Class Locker as described in the syllabus, and in ho04.txt.

Readers (useful for program assignments): and Textbook Errata
A Discipline of Data Abstraction using ANSI C by Allen Van Gelder, about 25 pp.
From Java to C by Allen Van Gelder, 9 pp.
Download c-adt.pdf or javaToC.pdf from the Class Handouts.
Download web-errata.pdf
Hard copy needed? If so, I will arrange with copy services.


Click here to access student-dbx-guide
Click here to access student.dbxrc

2016-17calendar_two_pages.pdf (Registrar page)
2016-17catalog (Registrar page, OFFICIAL STUDENT INFO)
academic_misconduct (OFFICIAL CAMPUS POLICY)
Registrar Class Search page.
Registrar web page; click Quick Links, upper left to see useful choices.
School of Engr UNOFFICIAL course info for cmps101, or navigate elsewhere.
ITS Computer Lab Schedules.

Lecture times:
MWF 4:00-5:05, JBE 101 (Aud.) (WATCH FOR ROOM CHANGE)   

Prof. Allen Van Gelder (avg @
Phone: (831) 459-4611
Office: 355 Engineering II
Office Hours: Mon., Wed. 1:30-2:30, plus drop-in or appt.

Teaching Assistants (all times and places tentative):
Ishani Chakraborty (ischakra @
Wen Cui (wcui7 @
Shih-Ming Wang (swang150 @
Discussion/Lab Sections see below.
Office Hours TBA + by appt.
Also, please arrange appointments well in advance to be sure the TA is actually available.

Discussion Sections
Labs shown below will be discussion sections when a written assignment is due.
Not all section times on the schedule will attended by the TA. Watch for announcements on the mailing list, week by week.

All lab times tentative (see ITS page):

BE-105 labs might share with other classes.

Labs might have a tutor or TA when a program is the next assignment to become due. Tutors DO NOT HELP on written assignments or midterm studying, as a rule; exceptions may be announced specifically, if there are any.

MSI sessions include help on written assignments and midterm studying and are NOT under faculty control.
MSI Sections and contact
Alec Felt (allfelt @
Monday 2:40-3:40pm Oakes Learning Center
Wednesday 10:40-11:40am ARC 203
Thursday 7:10-8:10pm Cowell College Mobile Office 2
Friday 1:20-2:20 pm ARC 116

James Iwamasa (jiwamasa @

Making a Unix Link on the ICL Linux system:
cd or pushd to a directory you will use for 101 work and type (noting the space and dot at the end of the command):
	ln -s /afs/ .
Now cmps101-avg appears to be a subdirectory; do
	pushd cmps101-avg/
and you are in that directory. If you do pushd now you are back in your directory (note the directories listed after each pushd command).
Links to other useful directories are done similarly.
     ln -s /afs/ .
     ln -s /afs/ .
     ln -s /afs/ .
     ln -s /afs/ .
     ln -s /afs/ .
     ln -s /afs/ .

The last directory, cmps101-avg.s17, might not allow you to pushd into, but I think you can do "ls cmps101-avg.s17" after making the s-link.
pushd is more convenient than cd because it remembers where you have been; for more features, do
	man pushd

Unix Tutorial Links, not clickable, use at own risk:

CLASS MAILING LIST (actually a Google group):
Enrolled students will be added automatically soon after classes start

Many students have not seen announcements on this list and/or emails from the instructor and TA in past classes.

You need to use the search functions in gmail and/or google groups to locate messages with [C101] in the subject and/or those from avg or a TA (tba*).

Mobile phones are inadequate for keeping up with class-related emails. Some functions are not available, such as non-threaded access. Be prepared to NOT PASS THE CLASS if you rely on a phone for email and Internet.

Use a laptop or workstation that permits non-threaded access for email.

Trying to reply to this list might not work as expected.

Be sure to check that your message is directed to the above name exactly as shown before you send it.

Use Compose to post a new topic and MAKE THE SUBJECT RELEVANT.

Student who ignore the above line my lose posting privileges. You mess it up for other students.

How to join if you are taking CMPS101:
You should not need to do anything.

Your CruzId will be entered from the AIS enrollment list.

A welcome message will be sent after this has been done.

How to access (a magic URL):!forum/cmps101-spring17
You will need to login with your CruzId and your blue password.

WARNING: Using this URL (instead of gmail) seems to force threading, and you will not see important announcements at top level. If anyone knows a way around this please inform us!

How to join if you are in Send mail to
from your SOE mail account. Subject and body do not matter.
(Many new students do not have an SOE email account.)

When you receive a "confirm" email, follow those instructions.

Possibly I will need to click something to activate your membership.
If you are in cmps101 or have a good reason to be in this list, I will approve it, but there can be some delay.

As the catalog says, prior Unix experience is expected.
Programs will be assigned in C (possibly with some options for Go). Fluency in at least one of C or Java is assumed, and C can be picked up during the quarter, if you know Java.
Buying a book on C and/or Java at the beginning of the quarter is NOT recommended. A book on Go might be a good general investment.
Wait until you are familiar with the materials in the text and on-line, then make your decisions.
The Science Library has many choices, some on reserve.

After a week or two, if you had difficulty with Unix or C in pa01, get serious about choosing a helpful book
and having it with you when you work on future programs.

As the syllabus states, you must pass the programming component of the course to pass the course.

As the syllabus states, programming assignments must be done individually. There is no pair programming.

Primary Textbook:
Computer Algorithms, 3rd Edition
by Sara Baase and Allen Van Gelder

Use the Supplements link below to find and web-errata.pdf, which have important corrections.

Students should already be familiar with most of Chs. 1-3.
Lectures will cover advanced topics in chs. 1-3 and most or all of chs. 4, 7, and 8.
Parts of chs. 5, 6, and 9 will be covered.

Please click here to see Supplements
and use the Back button on your browser if you want to return to this page.

Also supplements are in Handouts/ (link from this page) and in class locker.

There are probably many used copies available.

The most up-to-date paperback printing has a mostly yellow cover, may be called "International Edition", and is likely to be your best choice.
ISBN: 978-8-13170-244-4 OR 8-13170-244-8.
Many online ads have the wrong cover picture. Go by ISBN.

International Edition             Pearson India Edition

Left: Scanned student copy, note Pearson name             Right: Pearson India has incorrect information in some cases:
it says paperback in some cases where the book is actually hardback.
it groups different products in one ad.
Be sure to check the ISBN of what you actually order to be sure.

Some students report good experience with the Abe Books web site (,
I entered "baase van gelder" and saw a lot of listings.

Of course, the Bay Tree Book Store has various versions that you can look at and see what you are getting. They said they will try to get the "International Edition".

Primary Reader:
A Discipline of Data Abstraction using ANSI C (c-adt.pdf or
Download from the Class Handouts.

Other Texts (for reference, no assignments):
C: An Advanced Introduction, ANSI C Edition
by Narain Gehani

Introduction to Computer Algorithms, 2nd or 3rd Edition
by Thomas Cormen, Charles Leiserson, Ron Rivest, Clifford Stein (2001)
(The first edition is also good.)

These and several additional books will be on reserve in the Science Library.

Registering for a grade:
School of Engineering departments require undergraduate students to register for a grade in all upper division classes related to your major requirements.
If you did not choose letter grade when you enrolled, you should change to letter grade (even if you are a grad). This does not increase or decrease your chance of passing with a C or better (B or better for grads).
Note that C does not mean ``average'', it means ``satisfactory''. Since well over half the students do satisfactory or better, C is actually below average.

Questions regarding about page content should be directed to
Last modified Wednesday, 07-Jun-2017 23:32:50 PDT.