Description:
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
technical material with a substantial mathematical content.
Time and Place: Section 01- MWF
3:30-4:40 Thimann Lecture 3
Section 02- TTh 12:00-1:45
Oakes 105
Instructor: Patrick Tantalo (ptantalo@cse.ucsc.edu) http://www.cse.ucsc.edu/~ptantalo/
Office: Baskin Engineering 181
Office Hours: MWF 11:00 am - 1:00 pm, and by appointment
Phone: 831-459-3898
Teaching Assistants:
Xinyu Hua (xhua@soe.ucsc.edu)
Xiaohong Ye (xhye@soe.ucsc.edu)
Shashi Ramchandani (onxy@soe.ucsc.edu)
Tutors:
Daisy H Tam (daise122@cats.ucsc.edu)
Chinh Luong (chinh02@cats.ucsc.edu)
Anselmo Ontiveros (anselmo@cats.ucsc.edu)
Important Links:
General Information: pdf, word
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.
Computing Environments:
The division of CATS which administers computing labs and student computing
environments is called Instructional Computing
(IC). During the Summer of 2002, CATS/IC made a number of changes and
upgrades to it's Sun Microsystems Solaris 8 platform. A new timeshare,
unix.ic.ucsc.edu, is now available to users, and will be replacing the older
timeshares teach, learn, curie, and hawking. The older timeshares will
be shutdown on October 9, 2002. From now on,
always log on to unix.ic.ucsc.edu when connecting to the campus network.
For additional information regarding these changes, go to: http://ic.ucsc.edu/docs/unix/
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.f02 assignment_name file1 file2 ...In the above example "assignment_name" will be replaced by the actual assignment name, such as lab1, lab2, lab3 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.f02 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.f02 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
Programming in Java
Java Programming Resources
Programming in Perl
Perl Mongers
Perl Documentation Page
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