CMPUT 201 (Practical Programming Methodology)

Winter 2022, Sections B1+B2, Instructor: Michael Buro (email: mburo@... [UofA account])
Lectures B1: MWF 13:00-13:50 synchronous remote, starting Jan-5
Lectures B2: TR 12:30-13:50 synchronous remote, starting Jan-6

Labs start Jan-10

Have a question? If it is of general interest please submit it to the eClass forum. Otherwise, please contact one of your lab TAs first via email (see list below)

Lab Id   Time             TA Information
A   H01  Mo 14:00-16:50   MS[1]  GT[2M]           
B   H02  Tu 17:00-19:50   JT[1]  CK[1]  AA[2] AH[2M]
C   H03  We 17:00-19:50   MS[1]  AR[2M] GT[2] CK[2]
D   H04  Th 14:00-16:50   JT[1M] AA[2]
Legend: [1] part 1, [2]: parts 1+2, [M] marking

News

Quick Access

Lecture/Lab Timetable

           Mo           Tu           We           Th           Fr
12:00 ------------+------------+------------+------------+------------+
  :30             |------------|            |------------|            |
13:00 ------------+   Lec-B2   +------------+   Lec-B2   +------------+
  :30    Lec-B1   |            |   Lec-B1   |            |   Lec-B1   |
14:00 ------------+------------+------------+------------+------------+
  :30    Lab A    |    Q/A     |    Q/A     |   Lab D    |            |
15:00    small    +----------- +------------+   small    +            +
  :30    2 TAs    |            |            |   2 TAs    |            |
16:00             +            +            +            +            +
  :30             |            |            |            |            |
17:00 ------------+------------+------------+------------+            +
  :30             |   Lab B    |   Lab C    |            |            |
18:00             +    big     +    big     +            +            +
  :30             |   4 TAs    |   4 TAs    |            |            |
19:00             +            +            +            +            +
  :30             |            |            |            |            |
20:00 ------------+------------+------------+------------+------------+
  ~               ~            ~            ~            ~            ~
22:00 ------------+------------+------------+------------+   Hj due   +

Weekly Schedule

             Lec.   Lab     Mo+0  We+2 Fr+4        Tu+1 Th+3              Fr+4
  Week of   Topic  Topic      Lectures B1         Lectures B2     H.rel.  H.due  Reading rel. 
  (Monday)  -----  -----   -----+-----+-----      -----+-----   -----------------------------
 1. Jan.03  Intro    %       %    L01   L02         %    L01      H00             R01
 2. Jan.10   R01    H00     L03   L04   L05        L02   L03      H01     H00d    R02
 3. Jan.17   R02    H01     L06   L07   L08        L04   L05      H02     H01d    R03
 4. Jan.24   R03    H02     L09   L10   L11        L06   L07      H03     H02d    R04
 5. Jan.31   R04    H03     L12   L13   L14        L08   L09      H04     H03d    R05
 6. Feb.07   R05    H04     L15   L16   L17        L10   L11      H05     H04d    R06
 7. Feb.14   R06    H05     L18   L19   L20        L12   L13      H06     H05d    R07
    Feb.21  % ---------------------------- Reading week ---------------------------- %
 8. Feb.28   R07    H06     L21   L22   L23        L14   L15      H07     H06d    R08
 9. Mar.07   R08    H07     L24   L25   L26        L16   L17      H08     H07d    R09
10. Mar.14   R09    H08     L27   L28   L29        L18   L19      H09     H08d    R10
11. Mar.21   R10    H09     L30   L31   L32        L20   L21      H10     H09d    R11
12. Mar.28   R11    H10     L33   L34   L35        L22   L23      H11     H10d    R12
13. Apr.04   R12    H11     L36   L37   L38        L24   L25              H11d    REX

Legend: Li  : lecture i
        Rk  : reading assignment k (12)
        Hj  : homework exercise and lab agenda j (related to Rj) (12)
        Hjd : homework Hj due Fridays 22:00 
        %   : no class / lab / reading

FEX Q/A session: TBA, bring questions!
Tentative FEX dates: Apr-22 09:00-12:00 (B1), Apr-20 09:00-12:00 (B2), REMOTE/CLOSED BOOK FORMAT
Deferred final exam date: Apr-26-2022, 13:00-16:00

This looks complicated but it boils down to repeating the following 12 times:

  1. read material (weekend)
  2. solve related small problems during lectures the following week
  3. solve related medium sized problems in lab and homework the week after

For instance, R01 is released Jan-7, related small problems will be solved in the lectures between Jan-10 and 14, and medium sized problems related to R01 will be solved in the lab and homework exercises between Jan-17 and 21

Course Overview

This course provides an introduction to the principles, methods, tools, and practices of the professional programmer. The lectures focus on the fundamental principles of software engineering based on abstract data types and their implementations. The labs offer an intensive apprenticeship to the aspiring software developer. Students use C, C++, and software development tools of the UNIX environment

Objectives

Be able to handle small scale programming tasks using C or C++ and UNIX. Have the skills to combine your knowledge of program design and data structures (174/175), with useful algorithms and mathematics (204/272), and application-specific knowledge (291/379) to design and implement non-trivial software

Prerequisites

Course Topics

Course Structure

Instead of the established lecture-lab-assignment-exam routine, in this course we'll try something different: the inverted class room. The goal of this method, which has been experimented with extensively in recent years, is to help students to become independent learners and problem solvers more effectively. The main idea is to replace lecture time that used to be filled with instructors' monologues by more valuable interactive problem solving sessions

Here is how it will be done in this course:

Benefits:

Course Work

Components

Expected Weekly Time Investment

Total: ~10h

Lab Exercises, Homework Exercises, and Quizzes

Students must attend sessions (lectures and labs) they are registered in. Quiz and lab exercise submissions outside the registered session times will be ignored

Details about course delivery including Zoom and Google Meet links are given here

Labs sessions will consist of multiple parts:

For the help session it is crucial that you have made yourself familiar with the homework exercise problem set and already started working on it prior to your lab. Also, if you'd like to get help with your homework exercise during the labs we suggest that you solve the prep problem ahead of time, so that during the lab prep phase you can ask for homework help

During lab sessions students must reside in the main Google meet room, as well as in their private Google meet rooms with your camera, mic, and speakers switched on and sharing your entire screen. This will allow TAs to quickly interact with you in case you need help in the prep phase

In the lab exercise phase TAs will visit you in your private Google meet room randomly to check whether you work on the exercise without external help. In case of irregularities (e.g., camera off, screen not shared, student not present, non-course URL accessed) the student will receive a warning. If after more than 10 minutes passed a second irregularity is detected, the student will receive 0 marks for that lab

Homework exercises are released on Fridays and due the following Friday at 22:00 - see the H.due column in the schedule. E.g., H01 solutions are due Friday Jan-21 at 22:00. Homework and lab exercise solutions are tested on lab computer ug01.cs.ualberta.ca. You need to ensure that your submissions work there (e.g., use scp and ssh to copy and test your files, or use x2go to connect to a lab computer)

Short quizzes are randomly scheduled during the lecture time and relate to the current reading assignment. They give students an incentive to prepare for the week's lectures in which problems related to the reading assignment are discussed

Late (or not submitted) homework or lab exercise solutions and missed quizzes will receive 0 marks. However, because we use best-x-of-y rules, students are granted some essentially free absences. Questions or concerns about marking must be brought to the instructor's attention by email within 2 days of the return date

Lastly, lab exercise k and homework k can only be solved with the reading material up to Rk. E.g., Lab 3 and H03 solutions must be based on material up to R03. This means that you can't use advanced C++ functionality that will be introduced later, for instance

Final Grades

Please visit this page to learn about our interpretation of letter grades. In this course grades will not be curved, they are absolute - following these cut points:
 ≥ 90% A+  ≥ 85% A  ≥ 80% A- (excellent)
 ≥ 76% B+  ≥ 73% B  ≥ 70% B- (good)
 ≥ 66% C+  ≥ 63% C  ≥ 60% C- (satisfactory)
 ≥ 55% D+  ≥ 50% D           (minimal pass)
 < 50% F                     (fail)

Academic Integrity

The University of Alberta is committed to high standards of academic integrity and honesty. Students are expected to be familiar with these standards regarding academic honesty and to uphold the policies of the University in this respect. Students are particularly urged to familiarize themselves with the provisions of the at Code of Student Behaviour and avoid any behaviour which could potentially result in suspicions of cheating, plagiarism, misrepresentation of facts and/or participation in an offence. Academic dishonesty is a serious offence and can result in suspension or expulsion from the University. (GFC 29 SEP 2003)

Copying and cheating on assignments will be penalized with a mark of 0 (see the standard handouts for academic dishonesty and copying and cheating, and Section 30.3.2 Inappropriate Academic Behaviour in above document

If you want to use a git repository for storing your course work make sure it is private. You also must not share your repository with fellow students. Keep in mind that it is easy to find code similarities with automated tools ...

Course Policies

Unless otherwise noted, the CS Department Policies are in effect

Video recordings of lecture and lab sessions (e.g., using OBS Studio) are allowed for personal use only

Collaboration

In this course we use the "Consultation" model: students are encouraged to discuss and solve problem sets in small groups to speed up learning and stimulate idea exchange. In the end, however, students must write down their own solutions and be able to solve similar problems independently

Regardless of the collaboration method allowed, you must always properly acknowledge the sources you used and people you worked with. Failure to give proper credit is considered plagiarism. In general, academic dishonesty is a serious offence and can result in suspension or expulsion from the University

Your instructors reserve the right to give you an exam (oral, written, or both) to determine the degree that you participated in the making of the deliverable, and how well you understand what was submitted. For example, you may be asked to explain any code that was submitted and why you choose to write it that way. This may impact the mark that you receive for the deliverable

Note that this potential additional questioning about your deliverable is part of the assessment process, both summative (for marks) and formative (for feedback to you and us). It is intended to give us additional information about what you have learned. So, whenever you submit a deliverable, especially if you collaborate, you should be prepared for an individual inspection/walkthrough in which you explain what every line of your code, assignment, design, documentation etc. does and why you chose to write it that way


last modified on  ; you are visitor # since Jun/22/2021