CMPS 101
Algorithms and Abstract Data Types
Spring 2018  


 
Final Exam:  Tuesday June 12, 8:00-10:00 am
Please bring your official UCSC picture ID to the exam

Syllabus
Canvas  
Piazza  (Signup Link)
Programming Assignments   pa5 extended one last and final day                              

Homework Assignments  
hw7 solutions posted                    
Handouts  

Examples  
Notes  
Webcasts
 

Midterm 1 Review Problems   Solutions to Selected Problems  
Midterm 1 Solutions  

Midterm 2 Review Problems   Solutions to Selected Problems  
Midterm 2 Solutions  

Final Exam Review Problems  Solutions to Selected Problems  


Time and Place:  TTh 3:20-4:55pm  Thim Lecture 003  
Class Webpage:  https://classes.soe.ucsc.edu/cmps101/Spring18/

Instructor: Patrick Tantalo (http://www.cse.ucsc.edu/~ptantalo/) 
Office: E2 255 
Office Hours:   TTh 5:30pm-7:00pm & W 10:00am-1:00pm, or by appointment 
Email: ptantalo@soe.ucsc.edu 

Teaching Assistants:
Isaak Cherdak (icherdak@ucsc.edu)
Naishil Shah (nanshah@ucsc.edu)
Ruben Fitch (rsfitch@ucsc.edu)

TA Office Hours:  
Isaak: Tuesday 6:00-8:00pm in BE-121
Naishil: Monday 8:30-10:30am in BE 119
Ruben: Friday 12:00-2:00 pm in BE 118

Course Tutors:  
Francisco Braga (fbraga@ucsc.edu)
Donovan Kelly (doakelly@ucsc.edu)
Pulkit Sood (pusood@ucsc.edu)

Lab Schedule:    

Monday       7:00- 9:00pm        Baskin 105    Naishil, Donovan 
Tuesday      9:00-11:00am        Crown Mac     Ruben, Pulkit
Wednesday    4:00 -6:00pm        
Crown Mac     Isaak, Francisco
Thursday    10:00-12:00pm        
Baskin 105    Naishil, Pulkit
Thursday     6:00- 8:00pm        
Baskin 105    Ruben, Francisco
Friday      12:00- 2:00pm        
Crown Mac     Isaak, Donovan


MSI Learning Assistant:
 
Elisabeth Oliver (elaolive@ucsc.edu)
MSI Schedule:  
Monday       4:00- 5:00pm        Crown 105
Wednesday   10:40-11:40am        Oakes Learning Center
Wednesday    2:40- 3:40pm        Oakes Learning Center
Wednesday    4:00- 5:00pm        Oakes Learning Center
Friday      12:00- 1:00pm        ARCenter 202


LSS Tutor:
Art Parkeenvincha (tparkeen@ucsc.edu)
Signup Link:   https://sserc.ucsc.edu/slug-success
How to signup:   https://lss.ucsc.edu/Student-Sign-up%20.html 


Required Text: Introduction to Algorithms, by Cormen, Leiserson, Rivest, & Stein.  MIT Press.  (Second or Third Edition.) 

Supplementary Texts:
 
Java Programming: 
Java by Dissection (2nd edition) Ira Pohl and Charlie McDowell.  Lulu.com 2006. 
Learning Java, by Patrick Niemeyer & Jonathan Knudsen, O'Reilly, 2000. 
Java in a nutshell : a desktop quick reference, by David Flanagan, O'Reilly, 1997. 
C Programming: 
C for Java Programmers: A Primer, by Charlie McDowell,  Lulu.com 2006. 
Problem solving and program design in C, by Jeri R. Hanly & Elliot B. Koffman, Addison-Wesley, 1999. 
Algorithm Analysis: 
Computer algorithms : introduction to design and analysis  by Sara Baase & Allen Van Gelder, Addison-Wesley, 2000. 
Fundamentals of algorithmics, by Gilles Brassard & Paul Bratley, Prentice Hall, 1996. 
The Algorithm Design Manual,  by Steven S. Skiena, Springer-Verlag, 1998.


Other Resources:

Programming in Java
 

Java SE 8 Documentation
Java Tutorial
Java Language Specification  


Programming in C
 

C Programming 
Programming in ANSI C 
Notes on Programming in C 
Gnu C Reference Manual  
TutorialsPoint: C Library Reference
C Library Reference Guide

Unix
The Unix Operating System (O'Reilly text)  
TutorialsPoint Unix Tutorial  
More Unix Tutorials     

Unix Editors 
vi:  TutorialsPoint vi Tutorial, The vi Text Editor, Basic vi Commands, A Short vi Reference Manual 
emacs:  A Guided Tour of emacs, Beginners Guide to emacs, Basic emacs Commands  
nano (or pico):  Introduction to nano, How to Use nano
 

Makefiles 
Simple Makefile Tutorial 
GNU make 

Campus Resources
Information Technology Services
Computer Labs



If you find any errors, please report them to: ptantalo@soe.ucsc.edu