A systematic study of data structures, including arrays, stacks, recursion, queues, linear and non-linear linked lists, binary trees, splay trees, binary heaps, hashing, comparative study of searching and sorting algorithms, Huffman codes. Introduction to the analysis of algorithms and the complexity of algorithms including big "O" notation, time and space requirements, object-oriented design of abstract data types. Focus on object-oriented programming and its principles of objects, classes, encapsulation, inheritance, and its relationship to the Java programming language.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.