CMPS 101-02
Algorithms and Abstract Data Types
Fall 2018  
 
Final Exam: Wednesday December 12, 7:30-9:30pm

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


Time and Place:  TTh 5:20pm - 6:55pm  Media Theater M110  
Class Webpage:  https://classes.soe.ucsc.edu/cmps101/Fall18/

Instructor:    Patrick Tantalo (http://www.soe.ucsc.edu/~ptantalo/) 
Office:
   E2  255 
Office Hours:
   Wednesday 9:30am-1:30pm, or by appointment  
Email:   ptantalo@soe.ucsc.edu 

Teaching Assistants:
Sohum Banerjea      (sobanerj@ucsc.edu)
Jayanth Yetukuri     (jyetukur@ucsc.edu)
Vishal Chakraborty  (vchakrab@ucsc.edu)

TA Office Hours:  
Wednesday   12:00- 1:00pm     E2 397           Sohum
Friday       1:00- 3:00pm     Baskin 119       Vishal
Friday       4:00- 6:00pm     Baskin 312C/D    Jayanth


Course Tutors:  
Alex Lue                (alue@ucsc.edu)
Surya Ruddaraju     (svruddar@ucsc.edu)
Thuan Le               (gile@ucsc.edu)

Lab Schedule:   
Monday       9:00-11:00am     Baskin 109       Sohum, Jayanth
Tuesday     11:00- 1:00pm     Baskin 109       Alex, Surya
Tuesday      1:00- 3:00pm     SocSci-1PC       Alex, Thuan  
Wednesday    1:00- 3:00pm     Baskin 109       Vishal, Jayanth
Thursday     3:00- 5:00pm     Baskin 109       Vishal, Thuan
Friday      11:00- 1:00pm     Baskin 109       Sohum, Surya



MSI Tutor:

Brent Gingell (bgingell@ucsc.edu)
MSI Sessions:
Monday       4:00- 5:00pm     ArcCenter 116
Tuesday      1:30- 2:30pm     ArcCenter 116
Thursday     9:50-10:50am     SocSci-2  137
Friday       2:40- 3:40pm     Crown     104

LSS Small Group Tutor:
   
Gina Bachtel (gbachtel@ucsc.edu)
Contact LSS  directly for sign-up instructions
  

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