This course introduces two core topics in computer science: data structures and algorithms. Basic data structures include lists (arrays, linked lists, stacks, queues), trees (binary trees, binary search trees, heaps), and graphs. Basic algorithms – both recursive and non-recursive – that use these data structures. This course also teach how to analyze such algorithms in terms of the amount of computation they use.
These data structures, algorithms, and analysis tools all will be used heavily in the field of CS. The 3 assignments and a final project in the course will use Java programming language. You will learn how to implement basic data structures and algorithms using Java. Java is a object-oriented language, and so there are some of the basic ideas of object oriented design such as how classes can be organized into hierarchies and how variables and methods defined in the classes of the hierarchy are related to each other.