An introduction to the field of computer science combining the tools and techniques of programming (using the Python programming language) with rigorous mathematical analysis and reasoning. Topics include: data representations; program control flow (conditionals, loops, exceptions, functions); mathematical logic and formal proof; algorithms and running time analysis; software engineering principles (formal specification and design, testing and verification). Prior programming experience is not required to succeed in this course.
This course is restricted to students in the first year Computer Science admission stream, and is only offered in the Fall term. Other students planning to pursue studies in computer science should enrol in CSC108H1, CSC148H1, and CSC165H1/CSC240H1.