Course Syllabus

CS3 - Advanced Data Structures

Instructor: Don Yanek - dgyanek@cps.edu - 773-534-3954 x26834

Course Description
This course extends the concepts of AP® Computer Science A with an emphasis on object-oriented programming (OOP) and design. Students will analyze, design, modify and implement many of the advanced data structures used in computer science that are universal to most programming languages. Other topics include program design and implementation, algorithm analysis, and object-oriented programming design. 

Students have the option to gain college credit by enrolling in the CS331: Advanced Data Structures course offered by the Illinois Institute of Technology. The IIT course is taken concurrently and taught online by an IIT Computer Science faculty member. 

This course is intended to serve both as an introductory course for computer science majors and for students who will major at disciplines that require significant involvement with computing. 

Textbook(s) and Resources 

  • Horstmann, Cay. Java Concepts – AP® Edition, 4th Ed. New York,  Wiley, 2005.
  • Trees, Fran, Advanced Placement Computer Science Study Guide, 4th Ed. New York, Wiley, 2006.


Student Outcomes:
After successfully completing this course, students will be able to:

  • Design and implement computer-based solutions to problems in several application areas.
  • Learn implement, and modify well-known algorithms and data structures.
  • Develop and select appropriate algorithms and data structures to solve problems.
  • Code fluently in a well-structured object oriented fashion using the JAVA programming language.
  • Design and implement object oriented programs using integrated JAVA IDE such as Netbeans, Eclipse, Blue J, or JBuilder.
  • Students are expected to be familiar with and be able to use standard JAVA AP®I (Application Programming Interface).
  • Read and understand a large program and a description of the design and development process leading to such a program.  
  • Identify the major hardware and software components of a computer system, their relationship to one another, and the roles of these components within the system.
  • Recognize the ethical and social implications of computer use.

Topics Covered:

  • Semester One:
    • Introduction to Object Oriented Programming
    • Objects and Classes
    • Arrays
    • 2 Dimensional Arrays
    • ArrayLists
    • Linked Lists
    • Algorithm Efficiency
    • Maps
    • Sets


  • Semester Two: [IIT CS331: Advanced Data Structures]
    • Lists [ordered and unordered]
    • Stacks
    • Queues
    • Expression Tress
    • Binary Search Trees
    • Up-trees
    • Hash Tables
    • Heaps
    • Functional Data Structures



Grade Calculation:
Your grade is based on points earned. 
Progams / Labs: 10pts
Quizzes: 10pts
Homework: 5pts
Midterm: 20pts
Final Exam: 30pts
 
Late Assignments No late work is accepted without prior arrangement. If you are absent, the assignment is due at the beginning of school on your first day back.  If you miss a quiz or a test, you must make up the quiz on your first day back.  

Final grades will be given according to the following scale:

Percentage Letter grade
90-100 A
80-89 B
70-79 C
60-69 D
0-59 F



Academic Honesty:

This course will follow Northside College Prep's standard policy on academic honesty. In particular, any cheating, or assisting another student’s cheating on any test, assignment, or the final exam will be penalized by the policies and procedures set forth in the Student Code of Conduct. 

Your work on exams is expected to be entirely your own; failure to adhere to this may result in an F for the course. As for written homework assignments, talking to others about confusing points is permitted and, to some extent, encouraged. However, it is expected that all actual solution writing, program typing, and program design be done by yourself. In particular, the sharing of your program source files is never acceptable. Inappropriate collaboration may result in your receiving a zero for the homework or programming portions of the course. 

Students with Disabilities:
All requests for extended-timed testing must be discussed with your teacher at least two days before the assessment is given. 

Office Hours / Online Hours: I am often available online through chat and email.  I am also able to meet most days after school and possibly during your lunch period if it is not during one of my teaching blocks. Please setup ALL non-class meetings via email. 

Open Lab: 
If you do not finish a lab during regular lab hours, or if you want help on your homework assignments, you may politely knock on the door of a class in session to see if there are any available computers to work at.  If there are, be sure to be quiet and not disrupt any other students in the room.  


Tutoring:


 
oftware is available free online.

Course Summary:

Date Details Due