CMPS 101
Algorithms and Abstract Data Types
Winter 2017


 
Final Exam:  Thursday March 23, 4:00-7:00pm
Please bring your official UCSC picture ID to the exam

Syllabus
eCommons
Piazza  
Programming Assignments   

Homework Assignments                   
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 Review Problems  Solutions to Selected Review Problems  


Time and Place:  MWF  1:20 - 2:25 pm   Media Theater M110      
Class Webpage:  https://classes.soe.ucsc.edu/cmps101/Winter17/


Instructor: Patrick Tantalo (http://www.soe.ucsc.edu/~ptantalo/)
Office: E2 257
Office Hours:  TTh 5:30-7:30 pm, W 3:30-5:30 pm, or by appointment
Email: ptantalo@soe.ucsc.edu
Phone: 831-459-3898


Teaching Assistants:
Andrei Ignat (aignat@ucsc.edu)
Shubhangi Tandon (shtandon@ucsc.edu)
Vedashree Bagade (vbagade@ucsc.edu)
Garvit Rajendra Mantri (gmantri@ucsc.edu)
Shobhit Maheshwari (shmahesh@ucsc.edu)

Course Tutors:  
Scott Davis (okdogulu@ucsc.edu)
Logan Graybill (lgraybil@ucsc.edu)
Jonathan Jang (jojjang@ucsc.edu)

Lab Sections:   

Monday      4:00- 6:00 pm   Crown           Andrei, Logan
Monday      6:00- 8:00 pm   Crown           Vedashree, Scott
Tuesday     8:00-10:00 am   Baskin 105      Vedashree
Tuesday     4:00- 6:00 pm   Baskin 105      Shubhangi, Jonathan
Tuesday     6:00- 8:00 pm   Baskin 105      Shubhangi, Shobhit
Wednesday   8:00-10:00 am   Crown           Shobhit
Wednesday   4:00- 6:00 pm   Crown           Andrei, Scott         
Thursday   12:00- 2:00 pm   Baskin 105      Garvit, Jonathan
Thursday    2:00- 4:00 pm   Baskin 105      Garvit, Logan


MSI Tutor:

Lawrence Chong (lchong2@ucsc.edu
MSI Sections:  
Monday    5:20- 6:20 pm   ARCenter 116
Tuesday   1:30- 2:30 pm   Crown 201     
Friday   10:40-11:40 am   Cowell 222
Friday   12:00- 1:00 pm   Crown 104   



Required Text: Introduction to Algorithms, by Cormen, Leiserson, Rivest, & Stein.  MIT Press.  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 Tutorials
Java Language Specification

Programming in C
C Programming
Programming in ANSI C
Notes on Programming in C
C Library Reference Guide 
The GNU C Reference Manual
Another C Library Reference
TutorialsPoint: C Library Reference

Unix
An online O'Reilly text on the Unix Operating System
A Unix Tutorial from University of Washington.
A nice list of Unix Tutorials

Editors
An extensive list of Vi tutorials 
Free Software Foundation Gnu Emacs Manual (very long)

Makefiles
Simple Makefile Tutorial
GNU make

Campus Resources
Information Technology Services (ITS)
Computer Labs





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