Welcome to CSCI 161 — Fall 2025
An introduction to computer science, programming, algorithms, and data structures. No experience with programming is required.
This course is devoted to learning problem solving and elementary programming skills. Topics include problem analysis, algorithm development, data representation, control structures, functions, lists, and objects.
The content used to generate the course can be found on GitHub
Professor
Dr. James Hughes
jhughes at stfx.ca
Annex 20B
Lecture
Tue 11:30 – 12:20 (K4), MULH 4024
Wed 13:30 – 14:20 (K5), MULH 4024
Fri 12:30 – 13:20 (K6), MULH 4024
Lab Sections
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
Tue 10:00 – 11:00, Annex 20B
Wed 10:00 – 11:00, Annex 20B
Thr 10:00 – 11:00, Annex 20B
Fri 10:00 – 11:00, Annex 20B
Course Notes
- 1. Introduction and Output
- 2. Print, Values, Variables, Types
- 3. Statements and Expressions
- 4. Input and Changing Types
- 5. Functions
- 6. Propositional Logic
- 7. Testing Your Code and Type Hints
- 8. If/Else
- 9. Putting Things Together
- 10. Loops
- 11. Strings & Objects
- 12. Lists
- 13. References
- 14. Aliases & List Trivia
- 15. Tuples, Dictionaries, and Sets
- 16. Debugging
- 17. File IO
- 18. Exceptions
- 19. Objects I — Introduction
- 20. Objects II — More on Methods
- 21. Objects III — Interacting Objects
- 22. Unittest
- 23. Objects IV — Data Structures
- 24. Searching and Complexity
- 25. Sorting Algorithms
Labs
Getting Started