Course Information
Zoom Link (Updated Sept 29): https://utoronto.zoom.us/j/85824997701
Links to an external site. (Passcode: 1339)
Calendar (click on dates to jump to session information below)
SEPT | OCT | NOV | DEC | |||||||||||||||||||
Mo | Tu | We | Th | Fr | Mo | Tu | We | Th | Fr | Mo | Tu | We | Th | Fr | Mo | Tu | We | Th | Fr | |||
1 | 2 |
3 | 1 | 1 PATTERNS |
2 | 3/4 | 5 | 1/2 | 3 | |||||||||||||
6 |
7 | 8 | 9 |
10 | 4 INFO-JIGS |
5 | 6/7 | 8 | 8 RE |
9 AD |
10 ING |
11 WE |
12 EK |
6 LEARNING |
7 | 8/9 | 10 | |||||
13 START |
14 | 15/16 | 17 | 11 TGD |
12 | 13/14 |
15 | 15 APIs |
16 | 17/18 | 19 | 13 ALIGNMENT |
14 | 15 | 16 | 17 | ||||||
20* FLOW2NUMBERS |
21 | 22/23 |
24 | 18 REPETITION |
19 | 20/21 | 22 | 22 SECRETS |
23 | 24/25 | 26 | |||||||||||
27 NUMBERS2LOGIC |
28 | 29/30 | 25** AUTOMATION |
26 | 27/28 | 29 | 29 VISION |
30 | ||||||||||||||
* ADD DEADLINE; ** DROP DEADLINE | ||||||||||||||||||||||
KEY | class | tutorial | holiday | exam out | exam in |
Jump to Welcome-Slow-TechStack | Flow | | Automation | InfoJigs | Repetition | Patterns | APIs | Secrets | Vision | Learning | Alignment
Course Description
This course introduces fundamental concepts from computer science as critical thinking skills. These thinking skills can serve as a foundation for further studies in technology but they are useful in all manner of everyday problem solving.
Computational reasoning begins with the habit of "thinking slowly" and being deliberate about how we communicate solutions to problems. We learn the discipline of stepwise refinement and the power of abstraction and decomposition.
We build up procedural thinking starting with sequence - developing our "step by step" intuition - and then adding contingency - decisions - learning to pay attention to proverbial forks in the road - where are they? what are the alternatives? on what basis is the choice among them made? Sequence plus contingency allows us to add repetition to our repertoire. We learn to recognize the kinds of problems that can be solved iteratively and how to design iterative solutions. We will supplement these basic styles of thinking in hand we can begin to consider more complex problems by the method of decomposition - breaking a large, hard-to-solve problem into smaller, more manageable problem that we know how to solve - and by learning the art of shifting our focus up and down so that we can move between the details of a problem and its overall shape.
Those are the big ideas. More concretely, we'll learn about number systems and logic and the way we can represent these in digital and electronic form. We then turn our attention to the general problem of automation and unpack the basics of how automatic computational machines work. This will take us into the realm of data structures and algorithms, modularity and patterns.
And then we'll look at some applications asking how machines keep secrets, how machines see, how machines learn, and how to keep the behaviors of machines aligned with human values.
I will endeavor to make the pedagogy here "look, listen, do" - that is, start with the readings/viewings prior to each class session and then we talk about the ideas in class - mostly as lecture/demonstration but also some discussion, and then you practice the skills in the problem sets that follow each class session.
Problem sets will be implemented as Quercus quizzes, assignments, and discussions. In general there will be one problem set per course topic - most topics are one class session but some are multiple class sessions.
Basic Course Info
Instructor Information | Student Resources |
---|---|
Name: Dan Ryan Email: Via Piazza and Links to an external site. Quercus Inbox. This term we will use Piazza for most back and forth between you and me and between one another about the course material. The system is designed to get you help fast and efficiently from classmates and myself. Rather than emailing questions, post them on Piazza. This way (1) everyone can see the answers and (2) a classmate might answer more quickly or more helpfully than I do. Find our class page at: https://piazza.com/utoronto.ca/summer2021/inf313h1ylec0101/home Links to an external site. Virtual Office Hours: TBA. Always via appointment on the Quercus calendar. If no is signed up for office hours when I go to sleep the day before I reserve the right not to be there. |
Technical Support Assistant: Leanna Chan (leanna.chan@mail.utoronto.ca)
Quercus (Canvas) Student Guide |
SHORTCUTS: | ZOOM (Passcode: 1339) Links to an external site. | "Paper" Syllabus | Books | Problem Sets | Exams | Discussions | Asynch Lectures | Synchronous Recordings | Bibliography |
Course Schedule
The work for this course proceeds topic by topic. Some topics will be stretch across multiple sessions. Each topic consists of asynchronous preparatory work, a synchronous "lecture," and an asynchronous problem set. The problem set in the 4th, 8th, and 12th weeks will be comprehensive exams. The overall grade for the course will consist of 40% problem sets and 25% midterm and 35% final exam. Fall 2021 per announcement in lecture 01:
Component | Proportion |
---|---|
Tutorial Participation | 15% |
Review Questions (done/not) | 5% |
Problem Sets (10) | 20% |
Exam 1 | 10% |
Exam 2 | 20% |
Exam 3 | 30% |
The exam problem sets will be similar to weekly problem sets but comprehensive (covering the whole course to date) and possibly longer than weekly ones. Previous exams are here. These will be completed asynchronously and will be "open book," but once you begin the exam you are expected not to consult with others.
Course Delivery Method
This is a lecture/problems/tutorial course that will be delivered remotely this semester. Some material will be available asynchronously and we will endeavor to make recordings of synchronous activity available but cannot guarantee that this will always be possible nor that it will always be accomplished promptly. Course related conversations will be handled via Piazza and all work will be submitted via Quercus.
E-mail Policy and Office Hours
Email: Correspondence that is inappropriate for Piazza should be done through Quercus Inbox. This ensures that it comes to me with a subject header that filters it into a mailbox that I pay attention to. I'm usually very prompt on emails. Exceptions late in the evening and on weekends.
Office Hours: TBA. Office hours are always via appointment on the Quercus calendar and held via Zoom If no is signed up for office hours when I go to sleep the day before I reserve the right not to show up.
Course Objectives
The purpose of this course is to convey, in a manner that is accessible to students coming from a wide variety of intellectual backgrounds and useful to students destined for a wide variety of further avenues of study, a set of intellectual reflexes and styles of thought and a repertoire of practical skills drawn from, and deployed in, computational science. The course is NOT intended as "computer science 101" or "a first course in programming" or "introduction to data processing."
Course Learning Outcomes
This course introduces students to a style of thinking that yields problem solutions that can be programmed, are predictably reliable, involve careful and exhaustive consideration of problem and solution spaces, and can be implemented at high speed and high volume. Although this usually means solutions that are carried out by machines, the application of this style of thinking is more generally applicable.
The goal, then, will be to inculcate an "algorithmic" style of thinking: the deliberate decomposition of large and complex problems into a set of nested subproblems, the construction of solutions in terms of sequence, repetition, and contingency, the recognition and exploitation of pattern, and the inclination to defer detail, automate, and modularize.
Upon successful completion of this course you will have enhanced your capacity to
- have enhanced general purpose critical thinking skills (THINK)
- think slowly about things that move fast and/or have many parts (SLOW)
- break large and complex problems into cognitively/computationally/organizationally manageable subproblems (DECOMPOSITION)
- recognize, describe, and exploit patterns (PATTERN)
- defer detail and move between levels of abstraction (ABSTRACTION)
- build complex, robust, and legible systems from cognitively manageable and reusable parts (MODULARITY)
- think about data and information structurally (DATA)
- understand the complexity of computational solutions (COMPLEXITY)
- formulate problems and solutions using computational thinking in different fields of endeavor (APPLY)
- deploy a set of mental categories, intellectual reflexes, conceptual tools, and practical skills necessary for a participatory role contemporary information technologies (TECH)
