CSCI 162 — Summer 2025
This course emphasizes the use of abstraction in programming. Elementary data structures are introduced (stacks, queues, lists, trees) along with related algorithms. The data structures and other simple iterative and recursive algorithms are used (e.g. searching and sorting) are used to introduce algorithm analysis.
Professor
Dr. James Hughes
jhughes at stfx.ca
Annex 20B
GitHub Repo
The course content is available on GitHub
Feel free to submit issues, fork the repo, and submit pull requests
Follow the guidelines
In other words, feel free to make contributions to the course content
In fact, I encourage this
Class Times
Labs
Asynchronous — Content is to be covered independently while following the schedule.
Office Hours
By appointment
Course Notes
- 1. Introduction
- 2. Java vs. Python
- 3. Objects Review
- 4. Unit Tests
- 5. Data Structures Review
- 6. Collections
- 7. The Stack ADT
- 8. ArrayStack
- 9. Unit Testing Collections
- 10. Links
- 11. LinkedStack
- 12. Algorithm Analysis
- 13. The Queue ADT
- 14. LinkedQueue
- 15. ArrayQueue
- 16. The Bag ADT
- 17. Inheritance
- 18. Bag Implementations
- 19. Iterators
- 20. Exceptions
- 21. Memory & The Call Stack
- 22. Recursion
- 23. Searching
- 24. Tree ADT
- 25. Binary Trees
- 26. Binary Search Trees
- 27. Linked Binary Search Trees
- 28. Sorting
- 29. Sorting Recursively
Labs
Assignments
Getting Started