CMPS 101
Algorithms and Abstract Data Types
Fall 2017  


 
Final Exam: Friday December 15, 8:00 – 10:00 am
Please bring your official UCSC picture ID to the exam

Syllabus
Canvas  
Piazza  
Programming Assignments                       

Homework Assignments   hw8 (review) solutions posted                  
Handouts  

Examples  
Notes  
Webcasts
 

Midterm 1 Review Problems   Solutions to Selected Review Problems  
Midterm 1 Solutions  

Midterm 2 Review Problems   Solutions to Selected Review Problems  
Midterm 2 Solutions  

Final Exam Review Problems   Solutions to Selected Review Problems  


Time and Place:  TTh  5:20-6:55 pm  Classroom Unit 002  
Class Webpage: https://classes.soe.ucsc.edu/cmps101/Fall17/

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

Teaching Assistants:
Ryan Compton (rcompton@ucsc.edu)
Ankit Gupta (agupta29@ucsc.edu)
Wen Cui (wcui7@ucsc.edu)
Garvit Mantri (gmantri@ucsc.edu)
Shubhangi Tandon (shtandon@ucsc.edu)
Isaak Cherdak (icherdak@ucsc.edu)

Course Tutors:
Mia Altieri (mgaltier@ucsc.edu)
Francisco Braga (fbraga@ucsc.edu)
Alexander Lue (alue@ucsc.edu)

TA Office Hours:  
Ryan: Monday 9:00-10:00am in Baskin 119 and Thursday 3:00-4:00 in Baskin 312
Isaak: Thursday 3:00-5:00pm in Baskin 121
Wen: Wednesday 11:30-1:00pm in Baskin 121
Shubhangi: Thursday 12:00-1:00pm in Baskin 312 and Friday 3:00-4:00 in Baskin 119
Garvit: Monday 5:30-7:30pm in Baskin 118
Ankit: Monday 12:00-1:00pm in Baskin 118 and Friday 8:00-9:00am in Baskin 118
  
Lab Sections:    

Monday       2:00- 4:00 PM     Crown           Ankit, Francisco
Monday       4:00- 6:00 PM     Ming Ong        Ankit, Alexander
Monday       6:00- 8:00 PM     Crown           Shubhangi, Mia
Tuesday     11:00- 1:00 PM     Crown           Wen
Tuesday      3:00- 5:00 PM     Carson          Isaak, Ryan
Wednesday    9:00-11:00 AM     Ming Ong        Garvit, Mia
Wednesday   11:00- 1:00 PM     Carson          Isaak, Francisco
Wednesday    3:00- 5:00 PM     Baskin 109      Francisco, Alexander
Thursday    11:00- 1:00 PM     Crown           Ryan, Garvit
Thursday     3:00- 5:00 PM     Crown           Shubhangi 
Friday      11:00- 1:00 PM     Crown           Ryan, Wen



MSI Tutors:
 
Elisabeth Oliver (elaolive@ucsc.edu)
Hunter Bingham (hbingham@ucsc.edu)
MSI Sections:  
Elisabeth Oliver
Wednesday   2:40- 3:40 PM      Crown 105
Wednesday   5:20- 6:20 PM      Crown 104
Thursday   11:40-12:40 PM      ARCenter 116
Friday      1:20- 2:20 PM      Cowell Modular Office

Hunter Bingham
Monday     10:40-11:40 AM      Oakes Learning Center
Tuesday     9:50-10:50 AM      Social Science II, 137
Wednesday   1:20- 2:20 PM      ARCenter 116
Friday     12:00- 1:00 PM      Crown 104



LSS Tutor:
Xiangfeng Zhu (xzhu27@ucsc.edu)
Send email to Xiangfeng to learn how to sign up for LSS Small Group Tutoring


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 
C Library Reference Guide  
Another C Library Reference 
TutorialsPoint: C Library Reference

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