Data Abstraction and Structures (in Java)

Winter 2018

Call Number Schedule ID Location
32256 CIS 22C-63Z Online
  • This is an online class. Most of the class will be held online using Canvas, except the midterm, team project presentations and final exam will be on campus.
  • 4 1/2 Units
Course Syllabus

INSTRUCTOR: Cynthia Lee-Klawender (

OFFICE HOURS, OFFICE: Held ONLY online in CCCConfer's ConferZoom (link given in Canvas) on Mondays and Thursdays, 4:30 - 5:30 PM , Tuesdays and Wednesdays, 3:30-4:30 PM or by appointment

PHONE & EMAIL: (408) 864-8609, E-mail for questions or help:

PREREQUISITE: Computer Information Systems 36B or 35A or equivalent (ability to program in Java including arrays, classes, inheritance, polymorphism).

ADVISORY: Mathematics 212 or equivalent.

COURSE DESCRIPTION: Application of software engineering techniques to the design and development of large programs; data abstraction and structures and associated algorithms: stacks, queues, linked lists, trees, graphs, and hash tables; internal and external sorting; use of recursion; team project.


  • Read, analyze and explain advanced data structures programs.
  • Design solutions for advanced problems using appropriate design methodology incorporating advanced data structures programming constructs.
  • Create and analyze efficiency of advanced level data structures algorithms, code, document, debug, and test advanced data structures programs using multiple source and header files.

TEXTBOOK:  Data Structures and Abstractions with Java, 4th Edition, by Frank M. Carrano & Timothey M. Henry,  (ISBN-13: 978-0-13-374405-7, ISBN-10: 0-13-374405-1)

LESSONS: Will be provided online on Canvas. You need to complete the orientation (see for links to the orientation for this course, then to get access to this course on Canvas) or sign in through MyPortal)

CLASS NOTES: Programming homework assignments, exercises, some answers and announcements will be posted in Canvas on a week-by-week basis.

COMPUTER LAB: You may use our computer lab or your own (or another) computer and compiler. If you don't use our computer lab, you need to have a Java compiler in order to do homework assignments. If you're enrolled in this class, you will automatically have an account in our ATC classrooms and AT203 Open Computer Lab (if you're adding, add online in Admissions office, wait a few hours before using the open lab). Bring a flash drive to the Computer Lab to back up your programs or remember to email to yourself.

COURSE OUTLINE (subject to change): This is an online class. There will be online meetings each week on Fridays, 5:00-6:00 PM (or you may watch a video of it) using CCCConfer (instructions will be given in Canvas). The midterm, team project presentations and final will be ON CAMPUS. Exact dates are given below.  

 Week Dates Lessons Resources
Week 1 Jan. 8 - 14 Generics, Linked List classes Canvas Lesson 1, Textbk. Ch. 1 (Java Interlude)
Week 2 Jan. 15 - 21 StacksQueues  Canvas Lesson 2 & 3, Textbk Ch. 5&6, Ch. 10&11
Week 3 Jan. 22 - 28 Complex Linked Lists Canvas Lesson 4
Week 4 Jan. 29 - Feb. 4 Recursion Algorithm Efficiency Canvas Lesson 5, Textbk Ch. 7Canvas Lesson 6, Textbk Ch. 4
Week 5 Feb. 5 - 11 Trees, Binary Trees, Binary Search Trees Canvas Lesson 7, Textbk Ch. 23, 24, 25
Week 6 Feb. 12 - 18 Hashing  Canvas Lesson 8, Textbk Ch. 21&22
Week 7 Feb. 19 - 25 MIDTERM on Tues., Feb. 20, 6:00-8:00 PM in Adm101)More on Hashing Canvas Lesson 8, Textbk Ch. 21&22
Week 8 Feb. 26 - Mar. 4 Graphs Canvas Lesson 11, Textbk Ch. 228&29
Week 9 Mar. 5 - 11 AVL Trees Heaps Canvas Lesson 9, Textbk Ch. 27Canvas Lesson 10, Textbk Ch. 26
Week 10 Mar. 12 - 18  Sorting: Shell Sort, Quick Sort, External Sort  Canvas Lesson 12, Textbk Ch. 8&9
Week 11 Mar. 19 - 25 Project Presentations on on Mar. 22 - 23Review for Final Info. on Canvas  on Canvas
Week 12 Thur., Mar. 29 FINAL EXAM  6:15-8:15 PM (room TBA) Comprehensive

EVALUATION: Prog. Assignments (5) 30% (Each = 6%)

 Participation 12% (Class exercises & online meetings)

 Midterm 25%

 Team Project 8%

 Final Exam 25%


MAKE-UP TESTS: NO MAKE-UP TESTS WILL BE GIVEN! Please notify the instructor ASAP if you know ahead of time you will be missing a test.

EXTRA CREDIT: Maximum of 5 extra credit projects may be counted! If the project is other than given with the lab assignments, it must be approved by the instructor before they are attempted or it may not be accepted. This will be discussed later in the semester. The extra credit projects are due the last day of the quarter (Mar. 30), and must include the source file(s) and output. (Note: Extra credit will only be counted if the student is receiving less than an A+.)

WITHDRAWING FROM CLASS: You will be dropped as a no show if you do not log into Canvas and submit the first 2 weeks' exercises (which have strict due dates)! After the first 2 weeks, I may not automatically drop anyone from class, even if you stop participating. If you wish to discontinue the class, you should go the Admissions Office yourself to officially drop from the class or you may receive a grade of 'F'. However, if you don't take the midterm, you most likely will be dropped!

PROGRAMMING HOMEWORK GRADING: Each will be graded as follows:

35 points: Does the program correctly & completely solve the problem?

 7 points: Is the listing commented & indented? Will I understand what the program is doing (good logic, variable, class and function names)? Is the program efficient?

 8 points: ON TIME! (1 point deducted starting day after due date + every other day late--CAN'T TURN IN 3 WEEKS after due date!)

50 points possible (for each programming assignment)


 GRADING BREAKDOWN (adding each score/max-points * weight):

Letter Low Total Percent High
A+  97.0 <= Total %<= 100
A 90.5 <= Total %< 97.0
A- 87.5 <= Total %< 90.5
B+ 84.5 <= Total % < 87.5
B 80.5 <= Total % < 84.5
B- 77.5 <= Total% < 80.5
C+ 74.5 <= Total% < 77.5
C 69.5 <= Total% < 74.5
D+ 65.5 <= Total% < 69.5
D 60.5 <= Total% < 65.5
D- 57.5 <= Total% < 60.5
F 0 <= Total% <  57.5

 Canvas instructions:

Wherever you have internet access, go to: and follow the instructions. If you have never created a Canvas account, follow the instructions for creating one. If you're enrolled in this class, you will have a link to Canvas materials for this class. Check Canvas at least twice per week!


Back to Top