CMPS 101
Algorithms and Abstract Data Types
Summer 2017  (June 26 - August 18)


 
Final Exam:  Friday August 18, 1:00-3:00pm  

Syllabus
Canvas  
Piazza  
Programming Assignments                

Homework Assignments   hw7 and hw8 solutions posted     
Handouts  

Examples  
Notes  
Webcasts
 

Red-Black Tree Animation 

Midterm 1 Review Problems  Solutions to Selected Problems  
Midterm 1 Solutions  

Midterm 2 Review Problems  Solutions to Selected Problems  
Midterm 2 Solutions  

Final Review Problems  Solutions to Selected Problems  


Time and Place:  MWF  1:00-2:45  Earth & Marine B206     
Class Webpage: https://classes.soe.ucsc.edu/cmps101/Summer17/


Instructor: Patrick Tantalo (http://www.cse.ucsc.edu/~ptantalo/)
Office: E2 255
Office Hours:   TTh 2:30-4:00, W 3:300-6:30, or by appointment
Email: ptantalo@soe.ucsc.edu
Phone: 831-459-3898


Teaching Assistants:
Fatemeh Mirzaei (fmirzaei@ucsc.edu)
Ankit Gupta (agupta29@ucsc.edu)

Lab Sections:   
Map to Social Sciences 1 Computer Lab
Monday       4:00- 6:00        Social Sciences 1 PC   Ankit  
Wednesday   10:00-12:00        Social Sciences 1 PC   Ankit, Fatemeh  
Friday       9:00-11:00        Social Sciences 1 PC   Fatemeh

LSS Tutor:
 Sushmita Sen (susen@ucsc.edu)  
LSS Signup Link:  https://eop.sa.ucsc.edu/OTSS/tutorsignup/
LSS Tutor Hours:  
Wednesday   11:00-12:00        S&E Library 332
Friday      11:30-12:30        S&E Library 332


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