CMPS 101-02, Fall 2016 (23900)

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

Lecture Room: Thimann 003
MWF 4:00 - 5:05


Fri Jan 6, 2017
Subject: monday jan 9 office hrs 12-2:00
Students who have outstanding issues from cmps 101 Fall 2016 can
find me or call the office 831-459-4611, but I might be in a different
room, so check the office door.

Due to several students being careless and requesting CLOSE on bad
submissions, I want people to check on a school computer that
their submission(s) are correct. See me while you are checking to
be on the safe side.

Tue. Dec. 20 3:40PM
Subject: clearing an incomplete???
I am receiving numerous messages with a subject like "RE: resubmission info"
but it appears these students either did not read the message
with subject "program resubmission procedures" or forgot it.
See Tue. Dec 6, 7:15PM: Subject: program resubmission procedures

In particular, what is the "close" procedure and what about
the form to clear an incomplete, emailed as pdf?

Here is SOME of the resubmission info, as sent to individual students.

Subject: resubmission info

It is recommended to re-read the assignment entirely after you think
you are done, before sending your "CLOSE" message. Look for pieces
you forgot about. There are no second chances.

Resubmit and close the program you are most confident about first.
I will be running regrading and informing students where they stand

Tue. Dec. 13 6:50PM:
Subject: program pass status
There was an email about a week ago, before any late submissions were
graded, telling each student's status w.r.t. program pass.

Now there are 4 directories with resubmitted graded programs,

pa03dec11grades, pa04dec12grades, pa03dec13grades, pa04dec13grades

(as of Dec. 13 6:30 PM). All 14 students who have graded work in one
of those directories were successful to get a program pass.

Some students do not have graded work there due to a pending
academic misconduct issue.

Others did not request a close yet and will get an I.
I strongly advise students getting an I to get it finished during the
break. Once next quarter starts, history says you will not find time.

Grades will be entered Wed. and I think students find them pretty fast.

Subject: Re: Pa03-late is closed?
pa03-late and pa04-late are open again. They were closed temporarily
so I could transfer files of students who had requested "close".

Those students can see their results in pa03dec11/yourcruzid
and/or pa04dec12/yourcruzid in cmps101-avg as usual.

Students who did not request close can resubmit per instructions
already received by email.

Be sure to send a close messages to when ready.

Subject: vague READMEs resubmitted
About 12 students have resubmitted late work but most of their
readmes are vague about how carefully they tested.

Apparently most students missed the MAIN POINT of my earlier message.

I am not interested in what test files you used.

I am interested in whether you verified that your program(s) are
CORRECT based on those files. The only way I know to do this
(on your own) is to hand-compute the answers.

During the quarter many students submitted test files and had errors
in their programs. What good is testing if you do not catch errors?

During the quarter many students asked me why they lost points on X
when they could have just hand-computed the correct answer and seen that
their program was wrong. Don't go down that road this time.

Therefore I have left all the submissions open for now (Sunday night).

Sometime Monday afternoon I will close all the students that REQUESTED
to be closed and let the chips fall where they may.
What is there is final; too bad if you forgot to submit a file or
did not check that it compiles on the school computer or whatever.

If you find something wrong by double-checking and you want to retract
a "CLOSE", send email to with "REOPEN" in the subject
before they are closed.

Students can also pick up their 3rd exam if they are nearby and see
if they answered correctly on the Prim and Dijkstra questions.
I mmay be in a meeting until about 12:30 or 1:00.

Fri. 3:50PM:
Subject: README for regrades
Before I close regrade submissions I want to be sure you have tested it
thoroughly because there are no more reworks once it is closed.
Your README should state, in addition to what is already required,
that you have compiled your code on the school computer and tested it
with the files we used for testing (first three in __test.log)
and you HAND COMPUTED THE CORRECT ANSWERS to be sure your program
is working correctly.

Fri. 2:10PM:
Subject: Re: [C101] Resubmit Request?
hjaved wrote
> Has anyone gotten confirmed for their resubmission process yet?

You should have received it and aparkash should have received it
Look in spam

kprabhu wrote
> if I'm not mistaken, the forms need to be sent in before grades close

Forms to clear an incomplete are filled out when the work is done.
Nobody should be doing that now.

kprabhu wrote
> sent my resubmission request 2 days ago

Your request got overlooked, so you should get a response soon.

Wed. 7:30PM:
Subject: emails sent about regrading
I just sent emails to 12 students with instructions about resubmission.
Look in spam if you expect an email and did not see it.

If you cannot find it, I did not see a request from you (or you
are too low on exams for it to matter).

Only student who are authorized to resubmit (by the email from me)
will get regraded.

Tue. Dec 6, 7:15PM:
Subject: program resubmission procedures

If you want to work more on a program and resubmit, here is the procedure.

1. Send email to and request an incomplete in 101.
This will only be assigned if you are not done by the time I need to
turn in grades, about the end of the week. Note that an incomplete
or other re-grade will not be granted if you did not get at least 173
total on your three midterms.

2. In the email, State which programs you want to work more on.
Note that that the new grade will have a penalty built in:

new grade = (old grade + regrade) / 2 - 10.

So regrade must be at least 20 points higher or the FINAL GRADE DECREASES.
However the regrade might be worth a PASS anyway. The two effects
are independent.

3. I will email back to you where to submit, if your request is granted.
Look in spam regularly. Students repeatedly report they find emails
about the class in spam.

4. Work VERY CAREFULLY to test your program. Hand-compute the correct
outputs for your test files. You can use those that were used in
the original grading runs, but the next round might have others.
Make sure you submit your full assignment. There are no more chances.

5. Send email to with "CLOSE" and the assignment name
in the subject when you are ready to be regraded. Different students
will get closed at different times, so do not ask about a deadline.

5. If you are working on two programs, you can CLOSE one and keep going
on the other while I grade the first one. If you decide not to resubmit
one (because the other gave you a pass), send an email that you are
done, to get your final grade.

As stated above, if you email me to CLOSE, and I have time to grade you before
grades are due, there is no "I" (incomplete). If it is later, and you have
already been graded "I" in AIS, you need to complete a "removal of incomplete"
form that the registrar has online, and costs some amount.
Fill that out and attach it to your "CLOSE" message or email it or put it
under my office door.

Once an assignment is closed for you, it cannot be reopened.

This message is on the class web page so you can re-read it.

Mon. 10:25PM:
Subject: grading
mid3 grades are recording and being emailed.

The minimum C level for exams is a total of 183. (Average 61.)
However there is a grace of 10 that can be made up by better than C
in other categories, using appropriate weightings.
That is, 173 total can still pass although it is below a C.

The minimum C level for programs is a total of 180, grace 40.
(Avergae 45, average grace 10.)
Independently some program must demonstrate competence to pass this
requirement; just adding up the numbers is not sufficient.

The minimum C lelvel for written HW is a total of 150, grace 150.
In other words, there is no minimum in this category.

61 * .75 + 45 * 0.15 + 50 * 0.10 = 57.5
for the minimum C overall weighted average.

As announced earlier, if all you need to get up to a pass is better
pa03 or pa04, there will be a chance to improve them.
Watch for details.

Sun. 11PM:
Subject: program passing status
You can see your pa04 grade as of Nov 30 in cmps101-avg/pa04nov30/yourcruzid/

program passing status based on work through Nov 30 is being emailed
between 11PM to 11:30PM Sunday.
All enrolled students should get an email. Look in spam if you did not.

52 students have passed without further work (assuming none are involved
in academic misconduct).

Exam grading should be finished Monday PM. Procedures for doing more
program work will be posted to this mailing list and to the class web page.
Only students who passed the exam portion should do more program work.

Sat. 3PM:
Subject: pa04nov30 tests are run
Look at cmps101-avg/pa04nov30/yourcruzid to see the tests on pa04.
They are not graded yet, but you can see in __test.log what
the tests were.

If you are a graduate student or Education-Abroad student you need to get a permission code. Email me for that code (avg at Use it promptly.

If you are an undergraduate with the pre-reqs just jump on the waiting list for Section 02 (23900). Most or all of you will get in.

The "capacity 0" is a hack to make the system work. It DOES NOT mean the class is full or cancelled, at least not in this 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 the TA 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 02.
This page pertains ONLY to section 02. I do not know where to find information on Section 01 at this time.


If you have the pre-reqs but an administrative glitch prevents them from being recognized in the system, FIX THE GLITCH. SEE in 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 the same name except for the extension have the same content.
The syllabus and other official information is in ho01.pdf

After logging into a unix workstation in JBE 105 or ssh to,
the Fall 2016 CMPS101 Class Locker, is 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 course info. (School of Engr web page) info for cmps101, or navigate elsewhere.
ITS Computer Lab Schedules.

Lecture times:
MWF 4:00-5:05, Thim 003 (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):
Zhichao Hu (zhu @
Shubhangi Tandon (shtandon @
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 CMPS 101-01.

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: Chris Gradwohl (cgradwoh @
TBA. I have no emails from him about what is happening.
MSI sessions include help on written assignments and midterm studying

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.f16, might not allow you to pushd into, but I think you can do "ls cmps101-avg.f16" 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:

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 (erahimto).

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:
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-fall16-02
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.
(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, is 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 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 Friday, 06-Jan-2017 18:04:16 PST.