This course provides basic introduction to data structures and algorithms and emphasizes the relationship between algorithms and programming. Students will learn intermediate object-oriented design, programming, testing and debugging. Topics include algorithm complexity, generic programming, linked list, stack, queue, recursion, trees, searching, and sorting.
- Understanding algorithms, object-oriented programming, and gain programming experience in Java.
- Understanding algorithms' performance and analyzing algorithms' complexity.
- Understanding Graphical User interfaces (GUIs) in Java.
- Understanding how the data is defined inside the machine.
- Understanding how to apply elementary data structures to solve practical problems including simple simulations.
- Understanding how to apply sorting and searching algorithms.
- Understanding recursive solutions and using recursion to solve problems such sorting and searching.
- Understanding how to store and search data using the basics of more advanced data structures such as trees.