Welcome to CSCI 161 — Spring 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
Lab Sections
Asynchronous — Content is to be covered independently while following the schedule.
Office Hours
By appointment
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