Final Exam Schedule:Section 1 (MWF): Monday December 3, 12:00 - 3:00 pm, Kresge 321Section 2 (TTh): Monday December 3, 8:00 - 11:00 am, Stevenson 150
This course is an introduction to the fundamental concepts, issues, and methods of computer science. Our unifying theme is the design, theory, implementation, and applications of algorithms. Topics include: correctness and efficiency of algorithms, hardware implementations, machine and assembly languages, higher level programming languages, and the theoretical limits of computation. While there are no prerequisites, this is a computer science course, and not a computer literacy course. This means we will cover some technical material with a substantial mathematical content.
Time and Place: Section 01- MWF
2:00 - 3:10 Kresge 321
Section 02- Tu Th 12:00 - 1:45
Stevenson 150
Instructor: Patrick Tantalo (ptantalo@cse.ucsc.edu)
http://www.cse.ucsc.edu/~ptantalo/
Office: Jack Baskin Engineering 343A
Office Hours: MWF 11:00 am - 1:00 pm, and
by appointment
Phone: (831) 459-3898
Teaching Assistants:
Hari Rangarajan (hari@soe.ucsc.edu)
M 1-2 Baskin 109, M 6-7 Ming Ong 108, W 6-8 Ming Ong 108.
Francisco Useche (fuseche@soe.ucsc.edu)
W 9-11 Ming Ong 108, Th 9-10 Baskin 109, F 10-11 Ming Ong 108.
Vidhya Jayarkrishnan (vidhya@soe.ucsc.edu)
T 5-7 Oakes 205, W 1-2 Baskin 109, Th 4-5 Ming Ong 108.
Tutors:
Anselmo Ontiveros (anselmo@cats.ucsc.edu)
T 9-10 Baskin 109.
Chinh Luong (chinh02@cats.ucsc.edu)
M 5-6 Ming Ong 108, W 5-6 Ming Ong 108, Th 5-6 Oakes 205.
Daisy Tam (daise122@cats.ucsc.edu)
T 10-11 Ming Ong 108, Th 10-11 Ming Ong 108.
Maria Azucena Fragoso (chenita@cats.ucsc.edu)
M 9-11 Ming Ong 108.
Important Links:
General InformationDaisy Tam's Practice Final: pdf, postscript
Solutions: Save these files, then open them using your image viewer, then print. Do not print from your browser.
page1 page2 page3 page4 page5 page6Errata:
Problem 7 (page2) Converging pointers algorithm. The correct list manipulations are0 3 1 7 0 2 4 11 0
0 3 1 7 0 1 4 11 0
11 3 1 7 0 2 4 11 0
11 3 1 7 0 2 4 11 0
11 3 1 7 0 2 4 11 0
11 3 1 7 0 2 4 11 0
11 3 1 7 0 2 4 11 0
11 3 1 7 4 2 4 11 0
11 3 1 7 4 2 4 11 0The cleaned up list is: 11 3 1 7 4 2
Problem 16 (page4) The correct bit strings are
a.) 0 110011000 0 00100
b.) 1 101000100 0 00101
Getting a Computer Account:
It is a requirement of this course that all students have a CATS (Communications
and Technology Services) computer account. CATS provides detailed
instructions on how to apply for an account online, as well as a number
of help pages to
get you started.
Computer Environments:
There are a number of help and documentation pages at the CATS
website which should be helpful for introducing you to things like:
email, text editors, newsgroups, and basic information about the Unix operating
system. The division of CATS which administers computing labs on
campus is Instructional Computing (IC). The IC
website also contains much useful information. The IC machines
are named teach.ic, learn.ic, hawking, and curie. You should always
log on to one of these machines when connecting to the campus network.
Submitting a Lab Assignment On-Line:
Logon to your CATS account, do your assignment, then type the following
at the Unix prompt (%):
% submit cmps010-pt.f01 assignment_name file1 file2 ...In the above example "assignment_name" will be replaced by the actual assignment name, such as asg1, asg2, asg3 etc. Some assignments will require that you submit just one file, in which case "file1" is replaced by the name of that file, with nothing else on the line. Other assignments will require multiple files. In this case just list the file names on the command line as above. As with all Unix commands, the submit command is executed when you hit the return key. If you decide that you don't like what you submitted and want to submit a better version of the assignment (before the due date of course), just submit again using the same file name. The new submission overwrites the old.
To verify that an assignment was accepted by the system, and to check what was actually submitted, use the peek command:
% peek cmps010-pt.f01 assignment_nameYou'll get a listing of all files which have been submitted for that assignment with the option of viewing the contents of each file. If you just want to check and see if you are using the submit and peek commands correctly, submit some dummy file with assignment_name replaced by test. For example
% submit cmps010-pt.f01 test dummy_fileFiles submitted in this way will not be graded or even looked at. This is just a way for you to test the process.
On-Campus Resources
School of EngineeringOther Resources
CATS Home Page
Instructional Computing
Support Center
Information Resource Center
Getting Started on Unix
Summary of basic Unix commands
Using Pine for Email
Unix
Unix Tutorial for Beginners
A Basic Unix Tutorial
Another Unix Tutorial from University of Washington.
An excellent (and long) Introduction to Unix from Ohio State University.
Editors
A short Pico Tutorial from North Carolina State University.
Another Pico Tutorial from the University of South Dakota.
An extensive list of Vi tutorials.
Free Software Foundation Gnu Emacs Manual (very long).
Programming in C/C++
C++ language tutorial
cplusplus.com - The C++ resources network
C Programming
Programming in C
Rob Pike: Notes on Programming in C
Professional Organizations
Association for Computing Machinery (ACM)
UCSC Student Chapter
Special Interest Group on Computer Science Education
Institute of Electrical and Electronics Engineers (IEEE)
UCSC Student Chapter
The IEEE Computer Society
IEEE Education Services
Society for Industrial and Applied Mathematics (SIAM)
Activity Group on Discrete Mathematics
Activity Group on Supercomputing