Published Jul 30, 2024
Introduction to basic imperative programming principles; programming concepts including functions, flow control, lists, arrays; numerical accuracy and efficiency; data analysis and general-purpose algorithms. Introduction to object-oriented programming concepts.
Given a clear and concise statement of a problem or task, write a program from scratch of up to a hundred lines of properly-formatted, tested, and documented Python code to solve the problem or carry out the task. |
Write useful Python programs working with scientific data stored in open file formats. |
Write programs that create plots, using Matplotlib. |
Use various forms of iteration (for, while) in programs. |
Describe the basic memory model for mutation of basic types, lists, and objects in Python. |
Distinguish between constant, linear, quadratic and exponential running times of algorithms. |
Explain the relative advantages and disadvantages of lists and dictionaries. |
Use NumPy to work with numerical data in arrays. |
Identify situations where recursion is an appropriate tool, and use it. |
Weeks | Dates | Content |
---|---|---|
1-2 | Sep 4-13 | M1: Basics of Computation |
3 | Sep 16-20 | M2: Making Decisions |
4 | Sep 23-27 | M3: While loops |
5 | Sep 30-Oct 4 | M4: Strings and Lists |
6 | Oct 7-11 | M5: Sorting and Dictionaries |
7 | Oct 21-25 | M6: Files |
8 | Oct 28-Nov 1 | M7: Plotting |
9 | Nov 4-8 | M8: Classes |
10-11 | Nov 11-22 | M9: Recursion and Fractals |
12 | Nov 25-29 | M10: Efficiency |
Title / Name | Notes / Comments | Required |
---|---|---|
Learn CMS | https://learn.uwaterloo.ca/ | Yes |
EdX Interactive Textbook | https://online.cs.uwaterloo.ca/ | Yes |
Component | Value |
---|---|
Assignments | 30% |
In-Class Participation | 5% |
Module Review Quizzes | 5% |
Midterm Exam | 20% |
Final Exam | 40% |
Notes:
Measure of Software Similarities (MOSS) is used in this course as a mean of comparing students' assignments in order to support academic integrity.
Assignments: Assignments will be submitted to MarkUs. Once you submit an assignment to MarkUs, you will receive an email consisting of basic tests that you passed or failed. Students should check their basic tests email to ensure that the code meets the specification exactly. We will not accept submissions that do not match our test output exactly. There will be no extensions on assignments. If ill, please complete a complete a Verification of Illness Form and contact the course coordinator to discuss alternate arrangements. Reweighting of assignments is not automatic even with a valid doctor's note and is up to the sole discretion of the instructor and coordinator to allow for reweighting. Remark requests for assignments can be made up to one week after the assignment has been returned by filling out the remark request form and submitting it to the appropriate drop box in our LEARN course shell.
Generative AI: This course includes the independent development and practice of specific skills, such as writing and reading code, tracing, and algorithm design. Therefore, the use of Generative artificial intelligence (GenAI) trained using large language models (LLM) or other methods to produce text, images, music, or code, like Chat GPT, DALL-E, or GitHub CoPilot, is not permitted in this class. Unauthorized use in this course, such as running course materials through GenAI or using GenAI to complete a course assessment is considered a violation of Policy 71 (plagiarism or unauthorized aids or assistance). Work produced with the assistance of AI tools does not represent the author’s original work and is therefore in violation of the fundamental values of academic integrity including honesty, trust, respect, fairness, responsibility and courage (ICAI, n.d.).
You should be prepared to show your work. To demonstrate your learning, you should keep your rough notes, including research notes, brainstorming, and drafting notes. You may be asked to submit these notes along with earlier drafts of your work, either through saved drafts or saved versions of a document. If the use of GenAI is suspected where not permitted, you may be asked to meet with your instructor or TA to provide explanations to support the submitted material as being your original work. Through this process, if you have not sufficiently supported your work, academic misconduct allegations may be brought to the Associate Dean.
In addition, you should be aware that the legal/copyright status of generative AI inputs and outputs is unclear. More information is available from the Copyright Advisory Committee: https://uwaterloo.ca/copyright-at-waterloo/teaching/generative-artificial-intelligence
Students are encouraged to reach out to campus supports if they need help with their coursework including:
Academic integrity: In order to maintain a culture of academic integrity, members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect and responsibility. [Check the Office of Academic Integrity for more information.]
Grievance: A student who believes that a decision affecting some aspect of their university life has been unfair or unreasonable may have grounds for initiating a grievance. Read Policy 70, Student Petitions and Grievances, Section 4. When in doubt, please be certain to contact the department’s administrative assistant who will provide further assistance.
Discipline: A student is expected to know what constitutes academic integrity to avoid committing an academic offence, and to take responsibility for their actions. [Check the Office of Academic Integrity for more information.] A student who is unsure whether an action constitutes an offence, or who needs help in learning how to avoid offences (e.g., plagiarism, cheating) or about “rules” for group work/collaboration should seek guidance from the course instructor, academic advisor, or the undergraduate associate dean. For information on categories of offences and types of penalties, students should refer to Policy 71, Student Discipline. For typical penalties, check Guidelines for the Assessment of Penalties.
Appeals: A decision made or penalty imposed under Policy 70, Student Petitions and Grievances (other than a petition) or Policy 71, Student Discipline may be appealed if there is a ground. A student who believes they have a ground for an appeal should refer to Policy 72, Student Appeals.
Note for students with disabilities: AccessAbility Services, located in Needles Hall, Room 1401, collaborates with all academic departments to arrange appropriate accommodations for students with disabilities without compromising the academic integrity of the curriculum. If you require academic accommodations to lessen the impact of your disability, please register with AccessAbility Services at the beginning of each academic term.
Turnitin.com: Text matching software (Turnitin®) may be used to screen assignments in this course. Turnitin® is used to verify that all materials and sources in assignments are documented. Students' submissions are stored on a U.S. server, therefore students must be given an alternative (e.g., scaffolded assignment or annotated bibliography), if they are concerned about their privacy and/or security. Students will be given due notice, in the first week of the term and/or at the time assignment details are provided, about arrangements and alternatives for the use of Turnitin in this course.
It is the responsibility of the student to notify the instructor if they, in the first week of term or at the time assignment details are provided, wish to submit alternate assignment.