Course Syllabus

CIS 22C-64Z: Data Abstraction and Structures

  • Spring Quarter, 2020
  • CRN# 42519

Course Instructor: Jennifer Parrish, M.S. Computer Science

Contact Information:
  • Email: parrishjennifer (at) fhda (dot) edu

Office Hours:

  • Mondays 10:00am-10:50am
  • Tuesdays 10:00am-10:50am
  • Wednesdays 10:00am - 10:50am
  • Thursdays 4:00pm - 4:50pm
  • Office hours will be held via Zoom. More information will be posted on Canvas.

Teaching Assistant:

  • Renmei Gao
  • Aaron Lee
  • T.A. office hours will be held via Zoom. More information will be posted on Canvas.

Communication Response Schedule:

  • To receive a same-day response to your email, Canvas message or forum post, please submit your questions to me by the following times:
  • Mondays: 5:00pm
  • Tuesdays: 5:00pm
  • Wednesdays: 5:00pm
  • Thursdays: 5:00pm
  • Fridays: 5:00pm
  • Saturday: (no responses)
  • Sunday: (no responses)

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.


  • CIS 22B or CIS 35A. Advisory: MATH 212 or equivalent.

Student Learning Outcomes:

  • 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.

Course Websites:

  • Course information, lectures, labs, and assignments can all be found on our main course website:
  • We will also be using Canvas for lesson videos, assignment submissions, and other tasks.
  • We will use Piazza for our course discussion forum, where you can post assignment and lesson questions, and answer the questions of your classmates.
    •  Students are encouraged to use Piazza to ask questions rather than sending an email so that other students can benefit from seeing the answer.

Course Textbooks:

  • Main, Michael. Data Abstraction & Other Objects Using Java. 4th Edition. Pearson. ISBN: 9780132576246
    • Note: Students can obtain an eText version of the course textbook for $34.99 by following the link here
  • Block, Joshua. Effective Java. 3rd Edition. Pearson. ISBN: 9780134685991

Weekly Topics:

  • Week 1: ADTs, data structures, linked lists
  • Week 2: linked lists
  • Week 3: stacks and queues
  • Week 4: recursion, algorithm efficiency
  • Week 5: trees, binary trees, binary search trees
  • Week 6: binary search trees
  • Week 7: hash tables
  • Week 8: heaps
  • Week 9: graphs
  • Week 10: graphs, sorting algorithms
  • For more detailed information, please see course schedule

Important Dates:

  • Monday, April 13 - First Day of Spring Quarter 
  • Saturday, April 25 - Last Day to Add Quarter-Length Classes
  • Sunday, April 26 - Last Day to Drop for a Full Refund or Credit
  • Sunday, April 26 - Last Day to Drop with No Record of Grade
  • Friday, May 8 - Last Day to Request a Pass/No Pass Grade
  • Monday, May 25 - Memorial Day Holiday
  • Friday, June 5 - Last Day to Drop with a "W"
  • Monday, June 22 - Friday, June 26 - Final Exam Week

Class Atmosphere:

  • Most important: Students are expected to treat each other and the instructor courteously and respectfully.
  • Students are expected to behave professionally, both in terms of their demeanor in the online classroom and in terms of their approach to their assignments.
  • Students are expected to submit their work on time.
  • Students are expected to watch lecture videos and participate in class discussions and review activities.
  • Students are expected to follow the De Anza Student Code of Conduct as outlined in the Online Student Handbook and by Foothill-De Anza Administrative Policies 5510 and 5520.


  • In the online classroom, students are expected to follow the core rules of Netiquette:
  1. Remember the human: If you wouldn't say something directly to someone's face, don't say it to them online.
  2. Adhere to the same standards of behavior online as in real life: If you would not do something in real life, don't do it online. Be ethical.
  3. Know where you are in cyberspace: Lurk before you leap to make sure you understand proper behavior for each website you visit.
  4. Respect other people's time and bandwidth: Remember that people are busy and that you are not the center of cyberspace. Keep your posts and questions short. Research your question for yourself before asking someone else.
  5. Make yourself look good online: Use proper language, grammar and spelling. Be sure you know what you are talking about before you say something.
  6. Share expert knowledge: If you know the answer to someone's question, answer it.
  7. Help keep flame wars under control: Don't perpetuate arguments or let your emotions get out of control.
  8. Respect other people's privacy: Don't snoop through other people's emails, or texts, or research people's personal information online.
  9. Don't abuse your power: Don't take advantage of other people if you have more knowledge or skills than they do or try to make yourself feel superior by making them look or feel bad.
  10. Be forgiving of other people's mistakes: Have good manners. Don't correct other people. If you must correct someone, do it in a private email.

Academic Success and Support Services:

  • If you have, or think you have, a disability in any area such as mental health, attention, learning, chronic health, sensory, or physical, please contact Disability Support Services (DSS) to arrange a confidential discussion regarding equitable access and reasonable accomodations.If you are registered with DSS and have accommodations set by a DSS counselor, please be sure that your instructor has received your accommodation letter from Clockwork early in the quarter to review how the accommodations will be applied in the course.
  • Students who need accommodated test proctoring must meet appointment booking deadlines at the Testing Center.
  • Exams must be booked at least five (5) business days in advance of the instructor approved exam date/time.
  • Final exams must be scheduled seven (7) business days/weekdays in advance of the instructor approved exam date/time.
  • For more information, please visit the Disability Program Support Services website or visit the DSS in the RSS Building, Suite 141, or call (408) 864-8753.

Plagiarism and Cheating:

  • The Student Code of Conduct states that plagiarism, in-class cheating, out of class cheating and furnishing false information are not allowed under any circumstances.Any student found violating the Academic Integrity Section of the Student Code of Conduct will be confronted by the instructor.
  • Depending on the nature and extent of the violation, the student may receive a warning, may receive a lowered grade on the assignment or in the course, or may be failed on the assignment or in the course.
  • The student may also face administrative consequences, including being placed on disciplinary probation, being placed on disciplinary suspension, being expelled, or being subject to arrest and or heavy fines if the academic dishonesty offense violates state or federal law.
  • In brief: Cheating in any form is a serious matter and will not be tolerated.

Assignment Integrity:

  • You are expected to work alone on some assignments and with other students on other assignments as listed in the assignment specifications.
  • When working alone, you must do all your own work.
  • You may discuss assignments with other people, but ultimately you must write the code yourself.
  • Not writing all the code yourself is cheating.
  • Copying solutions to assignments from online sources in considered cheating.
  • When working with others, the assignment specifies how you must contribute. Group work can accelerate learning, but only when each student takes responsibility for mastering all the assigned material. Little is learned if each student works only part of the assignment and merely copies answers for the rest.
  • If the assignment seems too hard to complete without more help, whether working in groups or not, then you should contact me. My job is to help you understand the material. As an option, you may discuss your assignment, and show your code to, another De Anza College Instructor, if they agree.
  • Note that this list does not include tutors. Tutors must follow the same rules for acceptable help as other non-students.
  • You may still help other students, and receive help from other students and tutors, and I encourage you to do so. The following lists are intended to help clarify the rules about appropriate assistance for assignments:

Acceptable Help:

  • Showing others how to use or solve problems with computer applications such as compilers, text-editors and debuggers, or receiving such help.
  • Discussing problems and ideas for solving problems with other students or tutors.
  • Describing your algorithms to other students using diagrams, psuedocode or natural-language statements (unless that was the assigned homework).
  • Looking at another person's code and pointing out an error, as long as you do not write, type, dictate, or otherwise communicate the actual program code required by the assignment.Tip: if you need to write code when explaining a problem, then use an example that is not part of the assignment.

Unacceptable Help:

  • Typing or writing any homework solution (or parts of a homework solution) for another person, or allowing someone to type or write a homework solution for you.
  • Looking at another person's homework code while typing or writing your homework code.
  • Listening to someone else dictate homework code while typing or writing, or dictating to someone else the homework code to type or write.
  • Providing a copy of your assignment solution, or any other person's solution, to anyone who is taking this course or might take this course in the future, including posting your solution online or emailing it to someone.
  • Receiving a copy of an assignment solution, or a part of a solution, from a former student of one of my classes or another student in this class until after you make a final submittal of your assignment and the due date has passed.
  • Uploading your work online for other students to view or viewing another student's work online (including the forum).
  • These are not all-inclusive lists. Students are expected to interpret and apply the overall concepts of academic honesty in good faith. If you have questions about what is permissible, please ask me.
  • Also, note that these rules do not prohibit you from sharing assignment solutions with other students after after both you and the other student have made a final submission of the assignment and the due date has passed. Reviewing other people's solutions can help you learn, but it is cheating unless you have already completed the assignment on your own.

Grading Policies:

  • Grading is done by a point system, combined with a percentage scale, to determine the final grade.
  • The percentages of grade for each component of the course that contributes to the overall final grade are as follows:
10%     Lab Assignments
  5%     Weekly Quizzes
  5%     Course Participation
10%     Course Project
40%     Midterm Exams (2 Exams)
30%     Final Exam (Cumulative)
  • Grades will be assigned as follows:
97.0 - 100.0% A+
93.0 - 96.9% A
90.0 - 92.9% A-
87.0 - 89.9% B+
83.0 - 86.9% B
80.0 - 82.9% B-
77.0 - 79.9% C+
70.0 - 76.9% C
67.0 - 69.9% D+
63.0 - 66.9% D
60.0 - 62.9% D-
0.0 - 59.9% F

Course Assignments

Lab Assignments:

  • With the exception of Lab 1, Labs are assigned on a Monday and due in approximately 2 weeks on Friday at 11:59pm.
  • The labs will be scored out of 100 points.
  • No credit for code that does not compile on the Eclipse IDE for Java.
  • Labs must be submitted on time
  • However, students may submit one lab assignment up to 48 hours late (Sunday at 11:59pm) for a 20 point deduction.
  • Students may also submit a second lab assignment up to 48 hours late (Sunday at 11:59pm) for a 50 point deduction.
  • To submit a late lab, you must upload it to Canvas.
  • Note that Lab 1 cannot be submitted late. Only lab 2-6 can be submitted late.
  • The instructor will mark down on the late assignment sheet when each late opportunity is taken.
  • After the second late assignment, no further late labs will be accepted.
  • No labs will be accepted by email.
  • All labs (with the exception of Lab 1) are required to be completed with a partner following the rules of pair programming as outlined in the course.
  • Important Note: Lab 1 and Lab 2 must be submitted or the instructor reserves the right to drop you from the class. However, It is your responsibility to drop yourself from this class, so do not count on the instructor dropping you if you do not complete Lab 1 and/or Lab 2.


  • Once per week, there will be a short quiz covering the material from the week's lessons.
  • Quizzes are available on Mondays and are due Thursdays at 11:59pm on Canvas.
  • No quizzes will be accepted after the deadline.
  • Quizzes can be taken as many times as desired up until the deadline.
  • Please do not collaborate with other students on your quizzes.
  • Instead, use them as a guide to help gauge your understanding of the course material.
  • Important Note: You must submit Quiz 1 and Quiz 2, or the instructor reserves the right to drop you from the class. However, It is your responsibility to drop yourself from this class, so do not count on the instructor dropping you if you do not complete Quiz 1 and/or Quiz 2

  • There will be two midterm exams and one (cumulative) final exam in this course.
  • All exams must be taken in person on the date and time scheduled.
  • You will be required to show your photo ID to be allowed to sit for the exam.
  • The exam dates for the quarter are as follows:
  • Midterm 1 on Friday, May 1 from 12:00pm-1:00pm on Canvas
  • Midterm 2 on Friday, May 29 from 12:00pm-1:00pm on Canvas
  • Final Exam on Friday, June 26 from 12:00pm-1:00pm on Canvas
  • No makeup exams will be offered - no exceptions. Therefore, please mark these days and times on your calendar now.
  • In the case of illness or emergency -- and at the instructor's discretion -- a student who must miss one midterm exam may have their final exam score substituted for the missed midterm. Only one midterm exam score may be substituted with the final exam score.
  • To take advantage of the missed midterm policy, you must contact the instructor by email before the midterm to receive permission. If I do not receive an email from you, you will get a 0 on the midterm.
  • Students will need to have access to Zoom, Canvas and the Proctorio app for Canvas during the exams.
  • Students will be required to use Proctorio on exams.
    • You must use Proctorio, or you will not be allowed to take the exam.
    • You must have a webcam and microphone attached to the computer on which you are taking the exam, otherwise you will not be allowed to take the exam.

Course Project:

  • This course project is to be completed on teams of approximately 5 people and is due on Monday, June 22 at 11:59pm.
  • Students must submit their code, along with a video presentation demonstrating all aspects of the project.
  • No late projects will be accepted.
  • More detailed information will be provided in the 8th week of the quarter, and teams will be selected at that time.


  • Weekly participation is required in this course.
  • Twice a week, you will be assigned practice exam questions -- one set of questions for each of the two weekly lessons -- and you will be asked to grade the practice exam question responses of other students in the class.
  • Answers to the questions will be due Tuesday and Thursday at 11:59pm, respectively, on Canvas.
  • Peer evaluation of the questions will be due the subsequent Saturday at 11:59pm on Canvas.

~ Have a Great Quarter! ~