Objectives
  1. Cover java topics omitted in AP CSA
  2. Introduce concept of data structures
  3. What is Big-O?
  4. Discuss Java Collections Framework
  5. Describe basic, standard data structures: linked lists, stacks, queues, trees, and hashing

About This Course

IT IS STRONGLY RECOMMENDED THAT YOU MAXIMIZE THIS WINDOW AS YOU VIEW THIS (AND ALL OTHER) LESSONS.


You will also need to establish a Google account. 


Instead of trying to complete each lesson in one sitting, you should try to small pieces daily and expect to spend a good two weeks on this introductory lesson.


Spacing out your time on this lesson will better prepare you for the in-depth lessons that follow.


The main focus of this course is to learn about standard types of data structures.


This course will consist of the following topics:

  1. New java topics & Introduction to Data Structures (This is the lesson you are in)
  2. Big Omega (Big-O) Analysis
  3. Linked-Lists, Stacks & Queues
  4. Graphs, Trees & Binary Trees
  5. Heaps & Sets
  6. Hashing
  7. Sorting
  8. Regular Expressions

In the sections that follow, we will offer a brief review of each of these topics. While several topics are listed here, the two overriding goals are to enhance your knowledge of computer science with respect to trees and hashing. These are the two most important concepts taught in this course. With the exception of regular expressions, the other topics taught in this course are stepping stones to understanding trees and/or hashing.


Keep in mind that at the end of each full lesson, a set of graded questions or programming exercises will follow. You are permitted to go back and review any of the sections, websites and videos of your choosing as you answer these questions.


However, if you just study the questions and look up the answers in the material, you will do well on the questions but not as well when you take the tests.

Instructions for Completing the Programming Assignments in this Course



For each of the programming assignments in this course, there will be a strong temptation to look on the internet for similar code and to copy that. Although you might be able to get your projects to work with that strategy, it is highly likely that you will not do well on the corresponding exams on each topic with that approach.


Real learning on these important Computer Science topics can only come with working the projects from scratch.


As you complete each programming assignment in this course, be sure to demo it to your instructor before marking it done here.