CMPS 101, Fall 2013 (20839)

Instructor: Prof. Van Gelder
Office Hrs. MW 2:00 - 3:00

ANNOUNCEMENT 0, check your spam box:
Several students found messages from Kun and me (avg) in their spam box. Unspam them if you find them.

ANNOUNCEMENT 1, programming:
At about 3:50 PM on Dec. 7 each student was sent a message from stating whether their CMPS101 C programming requirement was already met by the first three programs.
If your requirement was NOT met you need to get all functions working for pa04 and your program needs to work using edgeList.h as provided in the class locker (only comments should be changed).
If you believe that your SUBMITTED pa03 had all functions working and it worked using intList.h as provided in the class locker, look at pa03Nov25/your_cruzid in the class locker, which is cmps101-avg (NOT cmps101-avg.f13). Look in particular at __test.log and __make.log. If you still think it is correct, send email to and and we will double check it.
We have these labs scheduled: Dec. 7 (today) 4PM and Dec. 8 (Friday) 2-5PM.
Definitely submit whatever you can for pa04 before the deadline.
Students who submit SOMETHING on time for pa04 may ASK FOR an extension to improve one of their programs, either pa03 or pa04. Extensions will be granted case by case where students have been trying, but need some more time.
For administrative reasons, you must ask for an INCOMPLETE when you ask for an extension by email to The incomplete will NOT be your grade if things are fixed before I turn in grades, it is only a safety valve.

ANNOUNCEMENT 2, pa04: Numerous students requested an extension to finish pa04. emails will be sent with instructions about submitting. Meanwhile some testing results will be placed in cmps101-avg/pa04Dec05/ in files beginning with two underscores. To see if your edgeList ADT has the correct function names look at __edgeList.nm. This file shows the linux command that was run,
nm --defined-only edgeList.o | egrep " [A-Z] "
followed by its output. The output should be these four lines:
000000000000003f T edgeCons
0000000000000000 T edgeFirst
0000000000000000 R edgeNil
000000000000002d T edgeRest
The numbers will vary but the T and R should be as shown. The names should be spelled exactly as shown. There should not be additional names. Use a different file, e.g., edgeListLib.{c,h,o}, for additional utility functions. For details about nm do "man nm". If your program compiled, you can see tests in __test.log and the input files used to test your program are there. The start vertex and algorithm are shown in __test.log, so you can hand-compute the correct result and see if your program got it right. If you are granted an extension, you will NOT be graded on the pa04Dec05 submission, it is for information only.

ANNOUNCEMENT 3, Monday afternoon I will be on campus Monday afternoon, either in an office or the JBE 105 lab. The SOE file server stopped working last night, so things are behind. It seems to be fixed now.

ANNOUNCEMENT 4, Monday almost midnight
Too many students are requesting extensions for personal
replies.  We will be in lab BE-105 Wednesday 4PM, which is the
time for our final slot.

To pass the exam requirement, students must have a total
of 170 or greater on the three exams.  The individual
minimum C are all 60, but this gives 10 points of leeway
that a student can make up with better than minimal
programs and written homeworks.

Students not passing the exam requirement will not be graded
on an extended assignment face-to-face; it will be

There are four submit directories.  Submit to one only,
or whichever directory has the latest submission will
be graded and the others will not.

pa03-fix and pa04-fix will be closed Wednesday before 4 PM
and graded ASAP after that.
This is for the "nearly working" cases.
Students who met the program requirement may submit here
to try to raise their grade, but there is a 20% penalty,
so it is unlikely to benefit you unless the improvement
is major.

pa03-late and pa04-late will stay open past Wednesday,
for students who need more time and requested an incomplete.
You can get help in the lab Wed.  You will email
when you are done and want to get graded.  You only get
one chance to be graded, so be sure before you ask for that.
However, you can get help whenever possible.
If I need to turn in grades and you are passing otherwise,
and you are not done, you get an I, which must be cleared
through the registrar.

You will get emails from avg with your midterm grades,
so you will know where you stand.

I expect to be around Tuesday PM for various purposes.

ANNOUNCEMENT 5, problem 19, midterm 3
The key used to mark the multiple choice was wrong on problem 19.
After the mistake was noticed, many students' scores went up or
down by 3 (d is the correct answer).  This was all corrected
before the grades were emailed.

Due to large volume some students were only corrected on the
final totals,not the intermediate numbers.  If your total
changed by +/- 3 without explanation, this is why.

It is finally official.
We will be doing helping with extensions and grading pa04 where
no extensions were requested (and there are no copying issues).

midterm 3 will not be returned until grades are in.  You can look
by coming to my office sometime, but not during the lab.



This is to confirm that the following has been scheduled for you:

Quarter: F13
Course Number: cmps 101
Course Title: Algorithms and ADTs
Professor/TA: Van Gelder

BE 105
Wednesday, December 11th ONLY, 4:00-7:00pm (finals week)

Click here to access Handouts, which are files beginning with ho.
Files with the same name except for the extension have the same content.
The syllabus and other official information is in ho01.{pdf,ps}.

After logging into a unix workstation in JBE 105 or ssh to,
the Fall 2013 CMPS101 Class Locker, is here:

Readers (useful for C 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, 8 pp.
Might need updating regarding strtok_r, which is preferred to strtok.
Download c-adt.pdf or or javaToC.pdf or from the Class Handouts.
Download web-errata.pdf or
Hard copy needed? If so, I will arrange with copy services.


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

2013-14calendar_two_pages.pdf (registrar page)
Registrar web page.
School of Engr course info.
ITS Computer Lab Schedules.

Lecture times:
MW 5:00-6:45pm, JBE 101 (Auditorium)   

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

Teaching Assistant (all times and places tentative):
Kun Qian (kunqian @
Lab/Discussion Sections/Office Hours in JBE 105.
: Mon. 3:30-4:40pm; Tues 4:00-5:30pm; Wed. 3:30-4:40; Thurs 4:00-6:00pm + by appt.
Also, please arrange appointments well in advance to be sure the TA is actually available.

All lab/section times (see reg. page):
All labs except those on Friday should 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 (Andrew Ringer):
Mondays, 3:30-4:40 pm, Social Sciences II 171
Wednesdays, 12:30-1:40 pm, Social Sciences II 137
Thursdays, 4:00-5:15 pm, Crown 104
MSI sessions include help on written assignments and midterm studying
MSI sessions are limited to 12 students and each student may sign up for only one session per week, if sign-ups are needed.

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.f13, might not allow you to pushd into, but I think you can do "ls cmps101-avg.f13" after making the s-link.
pushd is more convenient than cd because it remembers where you have been; for more features, do
	man pushd

CLASS MAILING LIST (actually a Google group):
Many students are not seeing announcements on this list and/or emails from the instructor and TA.
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 kqian1 or kunqian.
Mobile phones are inadequate for keeping up with class-related emails. Some functions are not available, such as non-threaded access.
Use a laptop or workstation that permits non-threaded access.
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.
How to join if you are taking CMPS101:
Your CruzId will be entered from the AIS enrollment list.
A welcome message will be sent after this has been done.
You should not need to do anything.

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

How to join if you are in Send mail to
from your SOE mail account. Subject and body do not matter.

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 (with some options for Java). Fluency in at least one of these languages is assumed, and the other can be picked up during the quarter.
Buying a book on C and/or Java at the beginning of the quarter is NOT recommended. 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.

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.

There are probably many used copies available. has incorrect information in some cases:
it says paperback in some cases where the book is actually hardback.
There are paperback versions printed in Asia with a different ISBN.
As far as I know, these paperback versions are legitimate, and are not pirated.

If anyone has experience with the Abe's Books web site (,
let me know and I will pass it on.
I entered "baase van gelder" and saw a lot of listings, but I do not know anything about this web site.

Of course, the Bay Tree Book Store has various versions that you can look at and see what you are getting.

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 (if you are an undergrad). This does not increase or decrease your chance of passing with a C or better.
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, 11-Dec-2013 10:18:30 PST.

Back to the CE / CS Class Home Pages.
Back to the CE / CS Home Page.