Welcome to CSCI 161 — Fall 2023
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
Professors
Dr. James Hughes (Section 11 & 12)
jhughes at stfx.ca
Annex 20B
Lecture Section 11
Tue 11:30 – 12:20 (K4), MULH 2070
Wed 13:30 – 14:20 (K5), MULH 2070
Fri 12:30 – 13:20 (K6), MULH 2070
Lecture Section 12
Mon 10:30 – 11:20 (C1), SCHW 110
Wed 09:30 – 10:20 (C2), SCHW 110
Fri 08:30 – 09:20 (C3), SCHW 110
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
Lab Sec 13: Mon 13:30 – 15:20 (C4-A7), MULH 4024
Lab Sec 14: Tue 13:30 – 15:20 (A5-K7), MULH 4024
Office Hours
Tue 12:30 – 13:30, Annex 20B
Wed 12:30 – 13:30, Annex 20B
Thr 13:30 – 14:30, Annex 20B
Fri 13:30 – 14:30, 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