CSCI 162 — Winter 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
Tue 11:30 – 12:20 (K4), MULH 4024
Wed 13:30 – 14:20 (K5), MULH 4024
Fri 12:30 – 13:20 (K6), MULH 4024
Labs
Lab Sec 11: Thr 14:30 – 16:20 (L8-A9), MULH 4024
Lab Sec 12: Fri 14:30 – 16:20 (C9-K9), MULH 4024
Office Hours
Office Hours Etiquette — Don’t Do This.
Tue 12:30 – 13:20, Annex 20B
Wed 12:30 – 13:20, Annex 20B
Thu 13:30 – 14:20, Annex 20B
Fri 13:30 – 14:20, Annex 20B
- 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