All campus visitors must be fully vaccinated (boosted). Masks are highly recommended. Instructors & staff are required to submit a daily symptom check. COVID updates.
This course covers data structures such as dynamic array, dynamic string, long numbers, lists, heap, hash, trees and graphs. You will learn to create objects from scratch using object-oriented Java programming concepts, and then build bigger objects using the objects that have already been built and tested. You will write algorithms on these objects using techniques such as recursion, greedy, divide and conquer, back tracking and dynamic programming. The course discusses algorithms such as searching and sorting, union find problems, knapsack problems and NP complete problems. You will also learn to compute the worst case complexity of the algorithms in terms of time and space in order to choose the best techniques, and to ensure that the objects scale with arbitrarily sized inputs.
The course emphasizes common problems and implementation details in Java and does not cover advanced Java features. It provides ample examples and testing of codes. Many of the problems solved in the class are coding questions that are asked in interviews and on popular coding websites.
At the conclusion of the course, you should be able to
- Create effective and efficient programs using Java
- Express ideas using efficient data structures
- Apply operations to these structures
- Prove the complexity of the data structures method in terms of primitive operations
- Introduction to data structures and algorithms
- Review of Java used for this course
- Need for algorithms
- Tools for computing complexity in terms of problem size rather than hardware used
- Data structures for building extremely large objects like array, stack, heap, hash, trees and graphs
- Algorithm techniques for solving problems like greedy, divide and conquer, back tracking and dynamic programming
- Implementing objects and algorithms that scale for arbitrary large size problems
- Proving the worst case complexity of each algorithm in terms of time and space
Skills Needed: Working knowledge of Java or C/C++.
- Save Your Seat
Help us confirm course scheduling. Enroll at least seven days before your course starts.
- Accessing Canvas
Learn more about gaining access to your course on Canvas in our FAQ section.
Accessibility and Accommodation
For accessibility questions or to request an accommodation, please visit Access for Students with Disabilities or email the Extension registrar.
Finance Your Education
Here are ways to pay for your education.
Sections Open for Enrollment:
|Date:||Start Time:||End Time:||Meeting Type:||Location:|
|Tue, 06-21-2022||6:30 p.m.||9:30 p.m.||Live-Online||REMOTE|
|Tue, 06-28-2022||6:30 p.m.||9:30 p.m.||Live-Online||REMOTE|
|Tue, 07-05-2022||6:30 p.m.||9:30 p.m.||Live-Online||REMOTE|
|Tue, 07-12-2022||6:30 p.m.||9:30 p.m.||Live-Online||REMOTE|
|Tue, 07-19-2022||6:30 p.m.||9:30 p.m.||Live-Online||REMOTE|
|Tue, 07-26-2022||6:30 p.m.||9:30 p.m.||Live-Online||REMOTE|
|Tue, 08-02-2022||6:30 p.m.||9:30 p.m.||Live-Online||REMOTE|
|Tue, 08-09-2022||6:30 p.m.||9:30 p.m.||Live-Online||REMOTE|
|Tue, 08-16-2022||6:30 p.m.||9:30 p.m.||Live-Online||REMOTE|
|Tue, 08-23-2022||6:30 p.m.||9:30 p.m.||Live-Online||REMOTE|