CMPS 101
Algorithms and Abstract Data Types
Summer 2018 (June 25 - August 17)  
 
Final Exam: Friday August 17, 2:00-4:00pm

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:  MWF 2:00-3:45pm  Jack Baskin Engineering 152  
Class Webpage:  https://classes.soe.ucsc.edu/cmps101/Summer18/

Instructor:    Patrick Tantalo (http://www.soe.ucsc.edu/~ptantalo/) 
Office:
   E2  255 
Office Hours:
    TTh 2:00-5:00pm, or by appointment  
Email:   ptantalo@soe.ucsc.edu 

Teaching Assistants:
Sohum Banerjea (sobanerj@ucsc.edu)
Arghyadeep Giri (argiri@ucsc.edu)

Program Grader:
Sravya Pulavarthi (spulavar@ucsc.edu)

TA Office Hours:  
Sravya: Thursday 11:00am-12:00pm in Jack's Lounge
Arghyadeep: Thursday 12:00pm-2:00pm in Jack's Lounge
Sohum: Friday  11:00am-1:00pm in E2 397


Lab Schedule:  
All labs are held in Social Sciences 1 PC   
Monday      11:00am- 1:00pm  Arghyadeep   
Tuesday      3:00pm- 5:00pm  
Arghyadeep, Sohum
Wednesday    4:00pm- 6:00pm  Sohum


LSS Small Group Tutor:
 
Gabriel Hartman (ghartman@ucsc.edu)
Sign-up link: https://sserc.ucsc.edu/slug-success (space is limited so please sign-up)
LSS Sessions:
Monday      12:30-1:30pm      ARCenter 221
Monday       4:30-5:30pm      ARCenter 202
Wednesday    4:00-5:00pm      ARCenter 202


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