CMPS 101, Spring 2012 (60605)


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




MAILING LIST IS BROKEN.
These 2 messages should have appeared last Monday:
Subject: ho11-practice-mid2.{pdf,ps}
ho11-practice-mid2.{pdf,ps} is in the Handouts directory off the class web page and will be handed out in class today, monday, may 14. --Allen

Subject: pa02 slight extension of time
Due to week-end difficulties with unix.ic pa02 will be open for submissions up until Monday May 14 11:59 PM --Allen

These 2 messages should have appeared last Friday:
Subject: gdb to be reviewed in lecture Friday
gdb to be reviewed in lecture Friday --Allen

Subject: debugger on the exam
As with midterm 1, if there is a question about using a C debugger, you should answer with respect to the debugger you actually use, provided it can do the requested operations. The course locker contains a file student-dbx-guide. However unix.ic does not offer dbx any more, so memorizing this for the exam would be a waste of time. Instead, use it as a guide to the kinds of operations you should know how to do in the debugger you actually use. The fact is, many students never learned any debugger. If you are one of these, I recommend that you practice using gdb or some debugger on your pa02 code, along the lines of what I demonstrated in class, and what you find in student-dbx-guide as basic operations. --Allen

If anyone else posted or tried to post, I did not receive those messages either.
Send mail or cc to me at cs.ucsc.edu about class business until the list is working again.

I just posted one message at Sat May 19 10:10 AM, so maybe it is fixed.

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}.


Click here to access an approximate copy of Spring 2012 CMPS101 Class Locker, which is
      /afs/cats.ucsc.edu/courses/cmps101-avg/


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 c-adt.ps or javaToC.pdf or javaToC.ps from the Class Handouts.
Download web-errata.pdf or web-errata.ps.
Hard copy needed? If so, I will arrange with copy services.


SOME LINKS ARE NOT SET UP YET.

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


Key Dates, A.Y. 2011-12.
calendar_two_pages.pdf A.Y. 2011-12.
Registrar web page.
School of Engr course info.
ITS Computer Lab Schedules.



Lecture times:
MWF 12:30-1:40pm, JBE 152   

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

Teaching Assistants (all times and places tentative):
Jennifer Parrish (jlparrish @ soe.ucsc.edu)
Lab/Discussion Sections: Mon 3:30-5:00pm, JBE 105; Tues 4:00-6:00pm, SS1; Thurs 4:00-6:00pm, JBE 105 + by appt.
Kun Qian (kunquian @ soe.ucsc.edu)
Lab/Discussion Sections: Tues 2:00-4:00pm, JBE 105; Fri 10:00am-12:00pm, JBE 105, Fri 2:00-3:30, JBE 105 + by appt.
Also, please arrange appointments well in advance to be sure the TA is actually available.

Classroom Section Times (see reg. page; all times and places tentative):
Mondays, 3:30-5:00pm, JBE 105
Tuesdays, 2:00-4:00pm, JBE 105
Tuesdays, 4:00-6:00pm, SS1 Mac Lab
Thursdays, 4:00-6:00pm, JBE 105
Fridays, 10:00am-12:00pm, JBE 105
Fridays, 2:00-3:30pm, JBE 105

MSI Sessions (all times and places tentative):
Mondays, 5:00-6:10pm, SS2 159
Tuesdays, 10:00-11:15am, SS2 363
Wednesdays, 3:30-4:40pm, SS2 137

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/cats.ucsc.edu/courses/cmps101-avg .
	
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/cats.ucsc.edu/courses/cmps101-avg/Supplements .
     ln -s /afs/cats.ucsc.edu/courses/cmps101-avg/AppendixCode .
     ln -s /afs/cats.ucsc.edu/courses/cmps101-avg/Lib .
     ln -s /afs/cats.ucsc.edu/class/cmps101-avg.s12 .
     

The last directory, cmps101-avg.s12, might not allow you to pushd into, but I think you can do "ls cmps101-avg.s12" 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:
    cmps101-discuss@soe.ucsc.edu
    
How to join: Send mail to
    cmps101-discuss-join@soe.ucsc.edu
    
from your CruzId mail account. Subject and body do not matter.
When you receive a "confirm" email, follow those instructions.
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.
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.

Programming:
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.

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 web-errata.ps 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.

Primary Reader:
A Discipline of Data Abstraction using ANSI C (c-adt.pdf or c-adt.ps)
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.

NO PERMISSION CODES FROM INSTRUCTOR BEFORE CLASSES BEGIN:
The Undergraduate Advising Office issues permission codes for certain administrative situations, where you "really" have the pre-requisites and "really" are in the major, but the Registrar records do not show it. See http://ua.soe.ucsc.edu/advising.
Attend the first class if you think you qualify for CMPS 101.
One pre-requisite is phrased as follows on the registrar page:
"one course from the following: MATH 21, 22, 23A, or AMS 10."
The School of Engineering web page says:
"one course from the following: Mathematics 21, 22, 23A, 24, or Applied Mathematics and Statistics 27."
A student with a good record may take this as a co-requisite.
In any case, ask undergraduate advising which version is correct because you need to fulfill the degree requirement. Even if I accept a course as a pre-req or co-req for 101, the degree requirement is not changed.
See the disclaimer at the bottom of http://courses.soe.ucsc.edu/courses/cmps101.
Talk to me after class or at the scheduled advising time for beginning-of-quarter or at office hours if you need a permission code from me.
Be warned: I never waive a pre-requisite because you failed to pass the course, i.e., you got NP, F, D, or W.
There is a School of Engineering form you need to fill out (on paper) and hand to me in connection with getting a permission code. Ask the Undergraduate Advising Office for a copy, or check their forms page for a pdf version to download. See http://ua.soe.ucsc.edu/policies-forms. Select "Request for Permission Number and/or Prerequisite Waiver [PDF]". This does not apply to graduate students.



Questions regarding about page content should be directed to
webmaster@cse.ucsc.edu
Last modified Saturday, 19-May-2012 10:14:27 PDT.

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