程序案例-COMPSCI 1MD3

COMPSCI 1MD3 Winter 2022 Course Syllabus
1 Administrative Details
Instructor Email Office Hours Location
Nicholas Moore moorenc@mcmaster.ca Wed. 15:30-16:20 ITB 102 or MS Teams
TA Email Office Hours Location
Mark Hutchison hutchm6@mcmaster.ca TBA MS Teams
David Kanter Eivin kantered@mcmaster.ca TBA MS Teams
Sarthak Anand anands16@mcmaster.ca TBA MS Teams
Mridul Arora aroram15@mcmaster.ca TBA MS Teams
Manav Shardha shardham@mcmaster.ca TBA MS Teams
Instructor Office Hours will be either in ITB 102 or Virtually via MS Teams this semester.
Important Websites
https://www.youtube.com/channel/UC7gXXzu2D5rSu3NH4DJw9cw – Lecture Recordings and Livestreams
http://avenue.mcmaster.ca – Lecture slides, grade book, additional information, this document
https://discord.gg/EjXJ7WZxeB – Class Discord Server. Use this for Q&A!
– The top 3 questioners will receive an extra 2% on their final grade.
A question must be instructor endorsed to count towards your total, so no rewards for spamming!
– The top 3 answerers will recieve an extra 4% on their final grade.
Again, your answer needs to be endorsed by an instructor to count.
https://jhub1md3.cas.mcmaster.ca – interactive assignments, assignment submission. If you are having any difficulty
logging in to JupyterHub, please try the following:
– Double-check the URL address. If you have used Jupyter for another class, your old URL will not work for this
course.
– Check your VPN connection. In order to access JupyterHub from off campus, you need to use the school’s VPN
(see below).
– Try logging in again 5 minutes later.
– It is sometimes the case early in the semester that late registrants were not given an account when the server was
set up. Please send an email to rabiejs@mcmaster.ca to make sure you have an account.
– If all else fails, you can download the assessments from Avenue, complete them on a local Jupyter installation (see
below), and submit through Avenue.
– If you are reading this at the beginning of the semester, please keep in mind it will take us probably the first week
to get everything set up, so please be patient! We will make an announcement when jupter is ready for you to try
logging in.
https://www.mcmaster.ca/uts/network/vpn/ – Instructions for accessing McMaster’s VPN
https://www.anaconda.com/distribution/ – Instructions for installing Python3 and Jupyter using Anaconda
Microsoft Teams – Office hours, and backup lecture location.
Schedule
Lectures
Lectures will occur Mondays and Wednesdays from 14:30 to 15:20, and Fridays from 16:30 to 17:20. Lectures may be
either in person or virtual this semester, depending on the evolving situation of the Covid-19 Pandemic.
All livestreamed lectures will have links posted in the Avenue announcements feed. If lectures are in person or virtual
will be indicated in the Avenue announcements feed.
1
Virtual lectures will be livestreamed from the instructor’s Youtube channel https://www.youtube.com/channel/
UC7gXXzu2D5rSu3NH4DJw9cw. Lectures will be unlisted videos during streaming, and made public once complete.
Links will be provided in the Avenue announcement feed. Lectures will be available for viewing after the time of
streaming, class participation will occur using Youtube’s in-built chat feature. If sufficient technical difficulties occur,
a meeting on Microsoft Teams will be our backup lecture location. Lectures occuring on Teams will be recorded and
uploaded to the above YouTube channel.
In-person lectures will be video recorded and uploaded to the Youtube channel listed above.
Tutorials
There will be no tutorials in the first week of classes.
Section TA Time Type Location
T01 David Tuesday 11:30 – 12:20 Physical BSB 244
T02 Sarth Thursday 11:30 – 12:20 Physical BSB 244
T03 Manav Tuesday 17:30 – 18:20 Physical BSB 244
T04 Mark Tuesday 13:30 – 14:20 Physical BSB 244
T05 Mridul Tuesday 19:00 – 20:00 Physical BSB 249
— Mark TBA Virtual MS Teams
Prerequisites
One of:
– MATH 1K03
– MATH 1LS3
– Grade 12 Advanced Functions and Introductory Calculus U
– Grade 12 Calculus and Vectors.
Antirequisites:
ENG 1D04
2 Course Objectives
By the end of this course, students will have:
a working, basic knowledge of the Python programming language, and by extension, imperative and object-oriented
programming languages
a knowledge of Python sufficient for scaffolding further exploration of programming as a skill
learned how to organize, write, document, and test medium-sized programs
an awareness of the limits of computation
the ability to bring an informal problem statement into a computational formulation
the ability to apply algorithmic techniques for solving complex problems
Calendar Description 3 units. Introduction to fundamental programming concepts: values and types, expressions and
evaluation, control flow constructs and exceptions, recursion, input/output and file processing.
3 Evaluation and Assessment
Assignments 40%
Tests 30%
Final Exam 30%
All evaluations in this course are individual in nature: no group work will be assigned. All assessments in this course will
use Jupyter Notebooks. There are two ways to get and complete the assessments.
2
1. Log in to JupyterHub directly. Assessments may be completed in-browser and submitted using the JupyterHub interface.
This option requires you to use a VPN connection when off campus, which, let’s face it, we probably all are.
2. Download the assessment (in the form of a *.ipynb jupyter notebook) from the Avenue assignment folders, and then
use a local installation of Jupyter to complete the assessment. Then, upload the completed notebook to Avenue in the
appropriate assignment folder. If you do not submit a jupyter notebook (i.e., you just submit python source code) you
will get a zero for the assessment.
3.1 Assignments
Assignments will be written using the online learning platform JupyterHub (https://jhub1md3s.cas.mcmaster.ca). The
assignments are designed to reinforce the material presented in lecture, as well as the tutorials. Completion of these assign-
ments on an individual basis is essential to your success in this course. There will be 10 weekly assignments for this course.
Late submissions will not be accepted. Assignments will be due Sundays at Midnight (i.e., at 12:00 AM EST). For further
information, please see the Timeline outlined in §4. Assignments will be autograded using JupyterHub. Assignments will
often contain bonus questions which are more difficult in nature. However, the amount your assignment marks will contribute
to your grade can not exceed 40%, even if, for example, your average assignment mark was 110%.
3.2 Tests
There will be two mid-term tests (see the timeline in §4). The tests will be in take-home format and distributed through
JupyterHub. The tests are open-book, but collaboration between students on test questions will not be tolerated. You will
have 24 hours to complete each test. The tests will be cumulative. The test will also feature bonus questions, but the total
amount your test grade can contribute to your final grade is capped at 20%. (i.e., bonus marks on the test are applicable
only to the test.)
3.3 Final Examination
The exam will be in take-home format and distributed through JupyterHub. The exam is open-book, but collaboration
between students on test questions is strictly forbidden. You will have 24 hours to complete the exam. The exam will be
cumulative. The exam will also have bonus question(s), and the amount your final exam may contribute to your final grade
is capped at 40%.
3.4 Extension and Late Submission Policy
Invoking an MSAF for an assignment results in a 3 day due date extension for the assessment.
Invoking an MSAF for a test increases the weight of the final exam by the percentage value of the test.
For the final exam, standard University policy will be applied (i.e., the policy on deferred examinations).
MSAFs must be submitted online at http://www.mcmaster.ca/msaf/
If you require an accomodation beyond the scope of MSAF related policy, please email the instructor. Be advised that
the instructor reserves the right to ask you questions, and to make a determination about further exemptions based on
the answers provided.
4 Course Timeline
The instructor reserves the right to modify the information stated below as particular circumstances arise.
All such modifications will be indicated both in class and on Avenue.
First day of classes Last day of classes
January 10th April 12th.
3
Week # Week of Topic Assignment Assignment Due Test
1 Jan. 9 Course overview & Introduction – NO TUTORIALS
2 Jan. 16 Programming & Expressions
3 Jan. 23 Statements & Control Flow 1 Jan. 30
4 Jan. 30 Structured Data Types 2 Feb. 6
5 Feb. 6 Functions, Abstraction & Recursion 3 Feb. 13
6 Feb. 13 Numerical Computation 4 Feb. 27
7 Feb. 20 READING WEEK!
8 Feb. 27 Testing & Exceptions 5 Mar. 6 1
9 Mar. 6 Object Oriented Programming I 6 Mar. 13
10 Mar. 13 Classes & Object Oriented Programming II 7 Mar. 20
11 Mar. 20 Permanent Memory Interaction (File I/O) 8 Mar. 27
12 Mar. 27 Graphing, Time & Databases 9 Apr. 3 2
13 Apr. 3 Machine Learning 10 Apr. 10
14 Apr. 10 Exam Review
4.1 Test and Exam Schedule
Test Start Time End Time
Test 1 Saturday Mar. 5 @ 9:00 AM EST Sunday Mar. 6 @ 9:00 AM EST
Test 2 Saturday Apr. 2 @ 9:00 AM EST Sunday Apr. 3 @ 9:00 AM EST
For individuals with testing accomodations, extra time will be alloted in accordance with your accomodation plan.
Students requiring accomodation must be registered with the office of Student Accessibility Services. Accomodation testing
will be performed in accordance with the relevent McMaster policy documents.
5 Resources
5.1 Textbook
Weekly readings are recommended but not compulsary. The textbook used is:
John V. Guttag, Introduction to Computation and Programming Using Python with Application to Understanding
Data, second edition, MIT Press, 2016. ISBN 9780262529624
The book will be available from the Campus Store, and is also available for purchase on Amazon and Chapters/Indigo, in
both paperback and eBook formats.
Many online resources on Python programming exist, but in general they are not thorough enough to be a substitute for a
proper textbook. Another recommendable textbook is
John M. Zelle, Python Programming: An Introduction to Computer Science—2nd Edition Franklin, Beedle, and
Associates, 2010.
Additionally, you will find the information available at https://www.python.org/ to be invaluable. This is the python
documentation, and essentially serves as your desk-reference for programming in Python 3.
Some additional internet resources containing practice problems will be posted to Avenue. These are not compulsory, but
are fantastic practice (and fun too! But who as time for fun, amirite )
Whatever resource you use, ensure that it uses Python 3, not Python 2.
5.2 Getting Assistance!
When seeking assistance, please try the following things in the following order.
1. First: We have set up a Discord server (see course links above), where students may ask questions and receive answers
from our instructional team or their peers in a somewhat organized manner. Check to see if someone else has had
your problem, and if not, post your problem. If you have a question about an assignment or test, or “I don’t know
what I’m doing wrong here!” or anything of that nature, Discord is a great resource, with the fastest response times.
2. Second: Ask your TA in tutorial!
3. Third: You can email your TA!
4. Fourth: If all else fails, you can email the instructor.
4
6 Academic Integrity
You are expected to exhibit honesty and use ethical behaviour in all aspects of the learning process. Academic credentials
you earn are rooted in principles of honesty and academic integrity.
Academic dishonesty is to knowingly act or fail to act in a way that results or could result in unearned academic credit or
advantage. This behaviour can result in serious consequences, e.g. the grade of zero on an assignment, loss of credit with a
notation on the transcript (notation reads: “Grade of F assigned for academic dishonesty”), and/or suspension or expulsion
from the university.
It is your responsibility to understand what constitutes academic dishonesty. For information on the various types of
academic dishonesty please refer to the Academic Integrity Policy, located at
http://www/mcmaster.ca/academicintegrity
The following illustrates only three forms of academic dishonesty:
Plagiarism, e.g. the submission of work that is not one’s own as one’s own.
Improper collaboration in group work.
Copying or using unauthorized aids in tests and examinations.
Allowing your work to be copied by another student.
Submitting for academic credit work that was already submitted for academic credit (i.e., a previous offering of
1MD3).
6.1 Automated Plagiarism Detection
In this course we will be using a web-based service (MOSS) to interrogate the authenticity and ownership of student
submitted work. MOSS is a system developed specifically for detecting plagiarism in programming code, and is tuned to
the specific ways code is plagiarised. MOSS generates a plagiarism report in which pairs of submissions are given a
similarity score, the highest of which are tabulated into a report. Submissions which have a high degree of similarity and
then examined manually for plagiarism, and dealt with accordingly.
DON’T BE FOOLED – Contrary to public opinion, a person’s code is as unique to them as an essay would be. Academic
dishonesty will be prosecuted.
Students who do not wish their work to be submitted through the plagiarism detection software must inform the Instructor
before the assignment is due. No penalty will be assigned to a student who does not submit work to the plagiarism
detection software. All submitted work is subject to normal verification that standards of academic integrity have been
upheld (e.g., on-line search, other software, etc.). For more details about McMaster’s use of Turnitin.com please go to
http://www.mcmaster.ca/academicintegrity.
6.2 Courses with an Online Element
Some courses may use on-line elements (e.g. e-mail, Avenue to Learn (A2L), LearnLink, web pages, capa, Moodle,
ThinkingCap, etc.). Students should be aware that, when they access the electronic components of a course using these
elements, private information such as first and last names, user names for the McMaster e-mail accounts, and program
affiliation may become apparent to all other students in the same course. The available information is dependent on the
technology used. Continuation in a course that uses on-line elements will be deemed consent to this disclosure. If you have
any questions or concerns about such disclosure please discuss this with the course instructor.
6.3 Online Proctoring
Some courses may use online proctoring software for tests and exams. This software may require students to turn on their
video camera, present identification, monitor and record their computer activities, and/or lock/restrict their browser or
other applications/software during tests or exams. This software may be required to be installed before the test/exam
begins.
7 Various Disclaimers and Other Boilerplate Stuff
7.1 Expectations of Student Conduct
As a McMaster student, you have the right to experience, and the responsibility to demonstrate, respectful and dignified
interactions within all of our living, learning and working communities. These expectations are described in the Code of
5
Student Rights & Responsibilities (the “Code”). All students share the responsibility of maintaining a positive environment
for the academic and personal growth of all McMaster community members, whether in person or online.
It is essential that students be mindful of their interactions online, as the Code remains in effect in virtual learning
environments. The Code applies to any interactions that adversely affect, disrupt, or interfere with reasonable participation
in University activities. Student disruptions or behaviours that interfere with university functions on online platforms (e.g.
use of Avenue 2 Learn, WebEx or Zoom for delivery), will be taken very seriously and will be investigated. Outcomes may
include restriction or removal of the involved students’ access to these platforms.
7.2 Academic Accomodation for Students with Disabilities
Students who require academic accommodation must contact Student Accessibility Services (SAS) to make arrangements
with a Program Coordinator. Academic accommodations must be arranged for each term of study. Student Accessibility
Services can be contacted by phone 905-525-9140 ext. 28652 or e-mail sas@mcmaster.ca. For further information, consult
McMaster University’s Policy for Academic Accommodation of Students with Disabilities.
7.3 Requests for Relief for Missed Academic Term Work
McMaster Student Absence Form (MSAF) – In the event of an absence for medical or other reasons, students should review
and follow the Academic Regulation in the Undergraduate Calendar “Requests for Relief for Missed Academic Term Work”.
7.4 Academic Accommodation for Religious, Indigenous or Spiritual Observances (RISO)
Students requiring academic accommodation based on religious, indigenous or spiritual observances should follow the
procedures set out in the RISO policy. Students requiring a RISO accommodation should submit their request to their
Faculty Office normally within 10 working days of the beginning of term in which they anticipate a need for accommodation
or to the Registrar’s Office prior to their examinations. Students should also contact their instructors as soon as possible to
make alternative arrangements for classes, assignments, and tests.
7.5 Copyright and Recording
Students are advised that lectures, demonstrations, performances, and any other course material provided by an instructor
include copyright protected works. The Copyright Act and copyright law protect every original literary, dramatic, musical
and artistic work, including lectures by University instructors The recording of lectures, tutorials, or other methods of
instruction may occur during a course. Recording may be done by either the instructor for the purpose of authorized
distribution, or by a student for the purpose of personal study. Students should be aware that their voice and/or image
may be recorded by others during the class. Please speak with the instructor if this is a concern for you.
7.6 Extreme Circumstances
The University reserves the right to change the dates and deadlines for any or all courses in extreme circumstances (e.g.,
severe weather, labour disruptions, etc.). Changes will be communicated through regular McMaster communication
channels, such as McMaster Daily News, A2L and/or McMaster email.
7.7 On-Line Participation Disclaimer
In this course we will be using Avenue, JupyterHub, Youtube, Microsoft Teams and Piazza. Students should be aware that,
when they access the electronic components of this course, private information such as first and last names, user names for
the McMaster e-mail accounts,and program affiliation may become apparent to all other students in the same course. The
available information is dependent on the technology used. Continuation in this course will be deemed consent to this
disclosure. If you have any questions or concerns about such disclosure please discuss this with the course instructor.
6