CMPS 12B/M - Winter 2018
Introduction to Data Structures
Web Resources
Canvas
Piazza
Programming Assignments
Lab Assignments
Examples
Slides
Webcasts
Webcasts
username: cmps-12b-2
password: winter17
12B Description: Teaches students to implement common data structures and the algorithms associated with each data structure, through progressively difficult exercises. Topics include big "O" notation; pointers, recursion (induction), and dynamic allocation; linked lists and list processing; stacks, queues, binary trees and binary search trees; simple sorting techniques and simple search techniques. Students will gain a working knowledge of the elements of the Java and C programming languages. Prior experience with Unix is assumed. Prerequisite(s):
Prerequisites: course 11 or 12A or Computer Engineering 13. Concurrent enrollment in course 12M required.
12M Description: Complements course 12B, gaining additional competence with a number of important software development tools, languages, and techniques. Included are advanced Unix features and utilities such as grep, find, diff, the shell, and pipes; C programs utilizing I/O, arrays, pointers, and structures; a scripting language to perform simple text and file manipulation; and the make utility. Concurrent enrollment in course 12B required.
Meeting time
TuTh 03:20PM-04:55PM Humanities Lecture Hall
Instructor: Dustin Adams (homepage)
Office: E2 249B
Office Hours: TuTh 5:10 - 6:10pm, Wednesday 11am-1pm, Monday and Friday by appointment (appointment must be made at least 48 hours in advance).
Email: duwadams@ucsc.edu
Phone: 831-459-1339
Teaching Assistants
Chandranil Chakraborttii (cchakrab@ucsc.edu)
Sean-Ryan Smith (sewsmith@ucsc.edu)
Zehui Cheng (zecheng@ucsc.edu)
TA Office Hours
Sean: Monday 3-4pm, Thursday 12-1pm (E2 room 309)
Zehui: Monday & Friday 5pm - 6pm (Baskin Engineering room 312 C/D)
Chandranil: Monday 3-5pm (E2 room 392)
Lab Sections: (Jack Baskin 109)
A: Mo 01:00PM-02:00PM (Chandranil, Rohan)
B: Mo 02:00PM-03:00PM (Sean, Rohan, Chandranil)
C: Th 01:00PM-02:00PM (Sean, Zehui)
D: Th 02:00PM-03:00PM (Sean, Zehui)
E: Fr 12:00PM-01:00PM (Chandranil, Zehui, Steven)
MSI Tutors
Tyler Ebding(tebding@ucsc.edu) - Learning Assistant
Xiangfeng Zhu (xzhu27@ucsc.edu) - Tutor
Tyler:
Monday, 4:00-5:00, Digital Arts Research Center 206
Tuesday, 2:00-3:00, LSS/HSI Cowell College Mobile Office Lobby
Thursday, 11:40-12:40, Digital Arts Research Center 206
Friday, 10:40-11:40, LSS/HSI Cowell College Mobile Office Lobby
Xiangfeng:
Sign up at https://sserc.ucsc.edu/slug-success (signup starts Tu 1/16)
Mo: 12:00pm - 1:00pm
Mo: 4:00pm - 5:00pm
Tu: 3:15pm - 4:15pm
We: 2:40pm - 3:40pm
Recommended Text: Data Abstraction and Problem Solving with JAVA (2nd edition) by Frank M. Carrano and Janet J. Prichard. Addison Wesley 2005 (ISBN 9780321304285). We will cover (roughly) the following sections: 3.1-3.5, 4.1-4.3, 5.1-5.3, 7.1-7.6, 8.1-8.5, 9.1-9.3, 11.1-11.4, 13.2.
Supplementary Text:
C for Java Programmers: A Primer Charlie McDowell. Lulu.com 2007.
Your Unix (2nd edition) Sumitabha Das. McGraw-Hill 2006 (ISBN 978007250422).
Java By Dissection Ira Pohl and Charlie McDowell. Lulu.com 2006.
Other online 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
O'Reilly text on the Unix Operating System
Unix Tutorial
list of Unix Tutorials
Editors
An extensive list of Vi tutorials
Free Software Foundation Gnu Emacs Manual
Makefiles
Simple Makefile Tutorial
GNU make
Campus Resources
Information Technology Services
Computer Labs
Coursework and Evaluation for CMPS 12B:
***Latework Policy: Late assignments (even by 1 minute) will be accepted up to 2 days after the assignment due date for 80% credit; assignments will not be accepted after 2 day grace period.
Coursework for 12B will be weighted as follows:
Coursework and Evaluation for CMPS 12M:
Coursework for 12M will be weighted as follows:
Grading scale for both 12B and 12M
A+ 97%-100%
A 93%-96%
A- 90%-92%
B+ 87%-89%
B 83%-86%
B- 80%-82%
C+ 76%-79%
C 70%-75%
C- 67%-69%
D+ 64%-66%
D 61%-63%
D- 58%-60%
F 0%-57%
Letter grade boundaries may be lowered at my discretion in order to eliminate some borderline cases.
Accommodations for Students with Disabilities
UC Santa Cruz is committed to creating an academic environment that supports its diverse student body. If you are a student with a disability who requires accommodations to achieve equal access in this course, please submit your Accommodation Authorization Letter from the Disability Resource Center (DRC) to me privately during my office hours or by appointment, preferably within the first two weeks of the quarter. At this time, I would also like us to discuss ways we can ensure your full participation in the course. I encourage all students who may benefit from learning more about DRC services to contact DRC by phone at 831-459-2089, or by email at drc@ucsc.edu.
If you qualify for classroom accommodations because of a disability, please get an Accommodation Authorization from the Disability Resource Center (DRC) and submit it to me in person outside of class (i.e. during office hours) within the first two weeks of the quarter. Contact DRC at 459-2089 (voice), 459- 4806 (TTY), or http://drc.ucsc.edu for more information.
Academic Honesty
The Baskin School of Engineering has a zero tolerance policy for any incident of academic dishonesty. If cheating occurs, consequences may range from getting zero on a particular assignment to failing the course. In addition every case of academic dishonesty is referred to the students’ college Provost, who sets in motion an official disciplinary process. Cheating in any part of the course may lead to failing the course, suspension or dismissal from the Baskin School of Engineering, or from UCSC.
What is cheating? In short, it is presenting someone else’s work as your own. Examples would include copying another students’ lab or programming assignment, or allowing your own work to be copied. You may discuss programs with fellow students, but your collaboration must be at the level of ideas only. You may freely give and receive help with the computer facilities, editors, the UNIX operating system, and the proper use and syntax of the Java programming language; but you may not copy, paste, email, transfer or in any way share source code. If you do collaborate (legitimately) or receive help from anyone, you must credit them by placing their name(s) at the top of your program. Please go to https://www.ue.ucsc.edu/academic_misconduct to see the University's policy on Academic Misconduct.