CSC108H5 Winter 2021 Introduction to Computer Programming
Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit
CSC108H5 Winter 2021
Introduction to Computer Programming
Course Description
Welcome to CSC108H5, Introduction to Computer Programming!
Successful students from past terms agree that the keys to this course are: (1) frequent
practice; and (2) being active in the community. First, read or write Python code every day - if
only for a few minutes - rather than cramming the exercises and assignments into full-day
sessions . This will make lectures easier to understand, will give you plenty of time to ask
questions, and utilizes spaced repetition, which has been shown to improve learning . Second,
make friends with your peers in lecture and labs .You will see the people in this class also taking
MAT102, calculus, and in later computer science courses (e .g . CSC148) . Communicate with
each other on the discussion board, form study groups, and look for departmental seminars and
social events to get engaged early.
Prerequisite: Grade 12 Advanced Functions (MHF4U).
Exclusion: CSC108H1 or CSC120H1 or CSC148H5 or CSC148H1 or CSC150H1 or CSCA08H3 or CSCA20H3 (SCI)
Distribution Requirement: SCI
Students who lack a pre/co-requisite can be removed at any time unless they have received an
explicit waiver from the department. The waiver form can be downloaded from here.
Note about Time Zone
All dates and times for lectures/labs/deadlines reflect the time zone in which the University
of Toronto Mississauga is in (i.e. Eastern Daylight Time/Eastern Standard Time).
Learning Outcomes
By the end of this course, you should be comfortable with procedural programming in Python
and will have been exposed to software development topics like testing, design, and
documentation . You will also be exposed to some core computer science ideas, such as
complexity, abstraction, and the use of algorithms.
Some of the topics covered in this course are:
- Python Arithmetics, Logic and Booleans
- Functions, Procedures, Scoping, Design
- Strings, Indexes, Formatting
- Conditionals, Loops
- Data Structures (Lists, Dictionaries, Tuples)
- File I/O (Reading, Parsing, Writing)
- Testing (Doc Tests and Unit Tests)
- Introduction to OOP (Structures, Methods, Magic Methods, Design)
- Introduction to Sorting, Timing, and Complexity
Course Links
Quercus (for announcments, lecture exercises/slides, labs, quizzes/tests): https://q.utoronto.ca/
(also includes all password-protected links, i.e. for lecture, piazza and discord
Course Website (central hub) : https://mcs.utm.utoronto.ca/~108s21/ (this website has our
weekly breakdown, as well as information about all the course tools we will be using such as
Zoom, Python, IDLE, etc.)
Course Instructors
Sadia Sharmin (co-ordinator)
Lecture times: MWF 11-12 (LEC9101) on Zoom (link on Quercus)
Office Hours: Mon 12:30-2, on our Discord Server (click on "#chat-with-sadia" on the sidebar,
and we can chat on there during office hour times – you can also request private voice/video
chat)
Email Address: s.sharmin@mail.utoronto.ca
Barbara Pioro
Lecture times: MWF 12-1 (LEC9102) on Zoom (link on Quercus)
Office Hours: Wed 12:30-2, on our Discord Server (click on "#chat-with-barbara" on the sidebar,
and we can chat on there during office hour times – you can also request private voice/video
chat)
Email Address: b.pioro@utoronto.ca
Lecture Information
This course will involve a virtual flipped classroom.
Here is your weekly routine for most weeks:
Monday by 10:00am (Before lecture):
Watch and complete "Prepare" exercises on PCRS (link will be available on Quercus)
Monday, Wednesday, Friday 11am - 12pm / 12pm - 1pm (During lecture):
Take part in synchronous online lecture exercises and discussion guided by your instructor,
often working with peers in the class to solve problems together
Sunday by 11:59pm (After lecture):
Complete the "Practice/Perform" exercises on PCRS
NOTE:
For Weeks 1 & 2: the PCRS exercises will be due late for these two weeks (see deadlines in the
calendar on Quercus), to give students who may join the course late a chance to catch up.
Lab Information
Starting from Week 3, you will have bi-weekly lab sessions during PRA times run by your TAs
(see calendar on Quercus and weekly breakdown on course website for exact dates) . Labs are
a scheduled time for you to get hands-on experience applying course concepts . Each one
consists of a few tasks that range from design, implementing functions in Python, writing tests,
and even learning some new material then applying it!
Some Lab Tips:
1. Your TAs are there to help! Don't be afraid to ask them questions about the lab - that's why
they are there .
2. If you happen to finish the regular lab tasks early, there are challenge problems that you can
work on! These are great practice!
Textbook Information
There is no required textbook, all course materials are provided on the course website. The
course website and PCRS is required reading.
This course requires regular access to a computer*. The software required for this course has
been installed in the computer science labs (DH2010/2020/2026) . Due to the online nature of
this semester, if you wish to install it on a personal machine, links to the required software and
packages are found on the course webpage.
Software includes: Python 3.8, an IDE** (e.g. IDLE -- this comes with the Python installation,
Wing101 -- your PCRS exercises use this, PyCharm, etc .), certain Python packages (see
course webpage), and Google Chrome as your browser.
*Please see the recommended and minimum technology requirements for remote/online
learning from the Office of the Vice Provost .
**This course will only support the use of IDLE and Wing101, if you choose to use another IDE
you must do so at your own discretion and without the troubleshooting support of course staff/
faculty.
Assessment Information
Item |
Deadline |
Weight |
PCRS (Prepare, Practice, Perform) |
Ongoing |
15% |
Bi-weekly Labs |
Ongoing |
15% |
Assignment 1 (Individual) |
February 11, 2021 |
10% |
Assignment 2 (Individual) |
March 11, 2021 |
15% |
Assignment 3 (Individual) |
April 8, 2021 |
15% |
Final Exam |
TBA |
30% |
NOTE: Last Date to drop course from Academic Record and GPA is March 15, 2021
ALL COURSE ASSESSMENTS (Assignments, Labs, PCRS, Exam, etc.) MUST BE
COMPLETED INDIVIDUALLY. THE WORK YOU ARE SUBMITTING SHOULD BE YOURS AND YOURS ALONE.
Weekly Practice (PCRS: Preparation, Practice, Perform)
Research consistently shows us that students remember only a small fraction of what is
presented in lecture . It is not easy to make sense of material that you see for the first time in a
fast-paced lecture environment, let alone to stay focused for 50-minutes . It's also important to
space out your studying (spaced repetition) . To prime you for what we will discuss, you will view
a set of videos and complete exercises before Monday's lectures (by Monday 10AM) . These are
the "Prepare" exercises in PCRS . Then, you will complete a more challenging set of online
exercises by the next Sunday night by 10PM to test your understanding of that week's material .
These are the "Practice" and "Perform" exercises.
Although these exercises are marked, the important point is not that you get full marks but that
you emerge with an understanding of what you do and do not know. Use these exercises as
formative feedback: if you are struggling to answer the questions, go to the lab, ask questions in
lecture, or visit office hours to get help early, before you are stuck.
PCRS content and exercises will be released every Monday at noon.
Preparations for lecture will be due before that lecture on Mondays by 10:00 AM (7 days after
release).
Practice/Perform to reinforce that week's content will be due after the last lecture of each
week, on Sundays by 10:00 PM (13 days after release).
The Preparation, Practice, Perform on PCRS is worth a total of 15% of your final grade - each
week's exercises will be worth 1.5%.
You are allowed to skip two weeks (i.e. your lowest two marks will be dropped).
Labs
This course consists of 5 bi-weekly labs that will take place during your PRA sessions (see the
calendar on Quercus for the exact dates), and will be run by your TAs . Each lab is worth 3% of
your final mark and will mainly be graded based on your level of effort and creativity, as well as
completion and reasonable correctness.
Assignments
This course has 3 assignments, which are much larger than Labs and PCRS exercises. They
will combine multiple concepts indepth and comprehensively test your understanding of key
course concepts.
You must work by yourself on all the assignments.
Assignment handouts will be made available on the course website. Assignments must be
submitted by 11:59pm on the day due through MarkUs.
You may, and are encouraged, to submit your assignment as many times as you'd like (this will
help deter technical issues when submitting but also act as a repository of your progress on the
assignment). We mark the most recent submission (adhering to the deadline).
Final Exam
This course will have two practice tests and a final exam, they will be distributed on Quercus in
the form of a "Quercus Quiz" and be entirely online . Additional details will be distributed in
lecture and on the discussion board . The practice tests and exam are comprehensive and take
place outside of lecture.
Practice Test 1: Will be available on Quercus starting from Friday, Feb 12
Practice Test 2: Will be available on Quercus starting from Friday, Mar 26
Final Exam: TBA by the Registrar's Office
The final exam will also take place on Quercus as a timed quiz (2 hours). More information will
be announced closer to the exam date.
Note: You must achieve a minimum of 40% on the final exam, failure to do so will result in a
maximum mark of 47 for the course.
Policy for Seeking Help
Read Announcements
You are responsible for reading all Quercus announcements made by your instructors. We may
provide clarifications or additional information, when necessary, so it is your responsibility to
read the announcements carefully. It is also a good idea to periodically skim over your
classmates’ posts on Piazza.
Use Piazza over Email
Please post all of your questions about the course material and assignments on Piazza so that
everyone can benefit from your questions . We will monitor the discussion board regularly, but
feel free to answer other students’ questions too! Helping someone else learn is one of the most
effective ways of truly mastering a subject.
Piazza Rules
Please do not commit academic offences on the discussion board. Both when asking and
answering questions, you are not to post your solution (even partial code), nor your approach to
solving a problem . You may provide hints to guide someone in the right direction, but you are
not to discuss solutions or the ideas behind them with other students, as you are depriving them
of valuable steps in their learning process.
Email Policy
For personal questions or emergencies, please email the course co-ordinator from your UofT
address . Please include “CSC108” in the subject line, and your full name and UTORid/student
number in the body of the email. Otherwise, your message might be marked as spam!
We will try to respond to email and discussion board postings by the end of the next business
day. However, it may take longer, especially near due dates . If you do not hear back quickly, we
are always available during office hours to help.
THINGS TO REMEMBER
1. You must start working on assignments early, in case you have questions, as we may not
get back to you on time around the deadline when the discussion board is typically very
busy.
2. Do not post parts of your solution code for exercises/assignments on the discussion board!
If you have a question that requires disclosing code, you can make your post on Piazza
PRIVATE (only instructors/TAs can see), or ask during a lab session or office hours.
Remark Requests
If you feel there was an error in the marking of an assignment, you may request a remark using
this form: https://forms.gle/fU73favrpeyvtfDE7
You must give a specific reason for the request, referring to a possible error or omission by the
marker. Please keep in mind that your grade may stay the same, may increase, or may even
decrease, after your remark request is assessed.
Remark requests MUST be received within one week of when the grade was released.
Policy for Missed Deadlines
Penalties for Lateness
No late assignments accepted.
I do provide a one hour grace period. After that, no exceptions will be made.
Missed PCRS Exercises
PCRS exercises are timed with the delivery of the lectures, extensions will not be provided for
these under any circumstance . Please note that you are allowed to miss two PCRS with no
penalty (the lowest two scores get dropped).
Missed Lab and Assignment
Contact the co-ordinator as early as possible (hopefully before the assignment due date) if you
feel as though you can't meet a deadline for a valid reason! Usually, if an extension is not
possible then the weight of that missed term work will be redistributed to other parts of the
course.
To request special consideration, do the following:
1. Declare your absence on ACORN if you are ill
2. Fill out this form: https://forms.gle/31KnkmDNPZbuMZvY8 and
3. Email the course coordinator, letting them know you have filled out the form.
Exact accommodations will be determined on a case-by-case basis and will not be given
automatically . In other words, you risk getting a mark of zero for missed work unless you
contact your instructor promptly.
In case of an emergency that will cause you to miss a midterm or an assignment deadline,
please contact the course coordinator via email within 24 hours of the assignment deadline or
test date.
Missed Final Exam
Students who cannot complete their online final examination due to illness or other serious
causes must file an online petition within 72 hours of the missed examination . Late petitions will
NOT be considered . Students must also record their absence on ACORN on the day of the
missed exam or by the day after at the latest . At this time, the university has temporarily
suspended the requirement to provide medical documentation if illness is cited as the reason for
a deferred exam request . Fees for deferred exam requests are also temporarily being waived
during this examination period.
Academic Integrity
Honesty and fairness are fundamental to the University of Toronto’s mission. Plagiarism is a
form of academic fraud and is treated very seriously. The work that you submit must be your
own and cannot contain anyone elses work or ideas without proper attribution . You are expected
to read the handout -- How not to plagiarize (http://www.writing .utoronto .ca/advice/using-
sources/how-not-to-plagiarize) and to be familiar with the Code of behaviour on academic
matters, which is linked from the UTM calendar under the link Codes and policies.
All of the work you submit must be done by you alone, and your work must not be submitted by
someone else . Plagiarism is academic fraud and is taken very seriously. The department uses
software that compares programs for evidence of similar code.
Please read the Rules and Regulations from the U of T Calendar (especially the Code of
Behaviour on Academic Matters).
Please don't cheat. It is unpleasant for everyone involved, including us. Here are a couple of
general guidelines to help you avoid plagiarism:
- Never look at another student's assignment/lab/pcrs solution(s) . Never show another student
your assignment solution . This applies to all drafts of a solution and to incomplete and even
incorrect solutions .
- Keep discussions with other students focused on concepts and examples . Never discuss
assignments before the due date with anyone but your Instructors and your TAs .
- Do not discuss your solution publicly on the discussion board or publicly in the lab rooms/
office hours. (And never on online sites like Chegg, StackOverflow, etc.)
NOTE: A series of plagiarism detection software and tools will be utilized to detect the
similarity of submissions in this course for the purpose of detecting plagiarism . All submitted
work in this course is subject to this verification.
Accessibility Needs
Students with diverse learning needs are welcome in this course. In particular, if you have a
disability/health consideration that may require accommodations, please feel free to approach
your instructor and/or Accessibility Services as soon as possible. Accessibility staff (located in
Room 2037, Davis Building) are available by appointment to assess specific needs, provide
referrals and arrange appropriate accommodations . Please call 905-569-4699 or email
[email protected] . The sooner you let us know your needs the quicker we can assist you
in achieving your learning goals in this course.
More information about course tools and topics will be posted on our course website as the term
progresses. Stay up to date by reading all announcements, posts, and website updates!
2022-08-09