CMPS 101
Algorithms and Abstract Data Types
Spring 2019  
 
Final Exam: Tuesday, June 11, 12:30–2:30pm
Please bring your UCSC picture ID to the exam

Syllabus
Canvas  
Piazza  (Signup Link)
Programming Assignments   
                                           
Homework Assignments                     
             
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 Review Problems   Solutions to Selected Problems  


Time and Place:  TTh 11:40am-1:15pm  Media Theater M110  
Class Webpage:  https://classes.soe.ucsc.edu/cmps101/Spring19/

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

Teaching Assistants:
Ishani Chakraborty  (ischakra@ucsc.edu)
Saeed Kargar  (skargar@ucsc.edu)
Hou-I Lin  (hlin64@ucsc.edu)
Lena Reed  (lireed@ucsc.edu)
Brian Schwarzmann  (brschwar@ucsc.edu)
Jiaqi Wu  (jwu64@ucsc.edu)

TA Office Hours:  
Hou-I Lin: Tuesday, 9:00-11:00am in JBE 119
Ishani Chakraborty
: Tuesday, 10:00-12:00pm in Graduate Student Commons 208
Jiaqi Wu
: Monday & Friday, 4:00-5:30pm in Science & Engineering Library 332
Lena Reed
: Thursday 9:00-11:00am in JBE 119
Brian Schwarzmann
: Monday 10:00-12:00pm in JBE 118
Saeed Kargar: Friday 5:00-7:00pm in JBE 312 C/D

Course Tutors:  
Thuan Le  (gile@ucsc.edu)            
Gabriella Lindsey  (glindsey@ucsc.edu)
Nikhil Dodd  (ndodd@ucsc.edu)
Francisco Braga  (fbraga@ucsc.edu

Lab Schedule:  
Monday        10:00am-12:00pm       BE 109       Ishani, Gabriella 
Monday        12:00pm- 2:00pm       BE 109       Hou-I, Brian
Monday         6:30pm- 8:30pm       BE 109       Saeed, Nikhil
Tuesday        2:00pm- 4:00pm       BE 109       Jiaqi, Thuan
Tuesday        6:00pm- 8:00pm       BE 109       Lena, Francisco
Wednesday     12:00pm- 2:00pm       BE 109       Brian, Gabriella
Thursday       8:00am-10:00am       BE 109       Hou-I, Jiaqi
Thursday       2:00pm- 4:00pm       BE 109       Lena, Thuan
Friday        11:00am- 1:00pm       BE 109       Ishani, Francisco
Friday         1:00pm- 3:00pm       BE 109       Saeed, Nikhil


MSI Learning Assistant:

Ismael (Izzy) Chavez (ischavez@ucsc.edu)
MSI Schedule:  
Monday        10:40am-11:40am       ARCenter 202
Wednesday     12:00pm- 1:00pm       Cowell 222
Thursday       7:10pm- 8:10pm       ARCenter 221
Friday         9:20am-10:20am       Cowell 222

LSS Small Group Tutor:
   
Jonathan Amar (jsamar@ucsc.edu)
SGT Signup Instructions:  
https://lss.ucsc.edu/programs/small-group-tutoring/index.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 in a Nutshell  
Practical C Programming 
Pointers in C
C Programming by Steve Summit
Notes on Programming in C by Rob Pike
C Reference 
Gnu C Reference Manual  
TutorialsPoint: C Library Reference
GeeksForGeeks: C Programming Language  


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