CMPT 120 Lecture Notes

  1. Course Introduction [“Course Introduction” slides]
    1. This Course [This Course slides]
    2. Placement Test [Placement Test slides]
    3. Grading [Grading slides]
    4. Lectures [Lectures slides]
    5. Exercises [Exercises slides]
    6. Assignments [Assignments slides]
    7. Quizzes/Exams [Quizzes/Exams slides]
    8. References [References slides]
    9. Expectations [Expectations slides]
    10. Computer Requirements [Computer Requirements slides]
    11. My Course Plan [My Course Plan slides]
    12. Topics [Topics slides]
  2. Computing Science Basics [“Computing Science Basics” slides]
    1. Algorithms [Algorithms slides]
    2. Data Structures [Data Structures slides]
    3. Computer Science [Computer Science slides]
    4. Expressing Algorithms [Expressing Algorithms slides]
  3. Programming Basics [“Programming Basics” slides]
    1. Python [Python slides]
    2. Starting With Python [Starting With Python slides]
    3. Doing Calculations [Doing Calculations slides]
    4. Functions [Functions slides]
    5. Storing Information [Storing Information slides]
    6. Aside: Interactive Shell [Aside: Interactive Shell slides]
    7. Types [Types slides]
    8. Type Conversion [Type Conversion slides]
    9. User Input [User Input slides]
  4. Representing Information [“Representing Information” slides]
    1. Bits and Bytes [Bits and Bytes slides]
    2. Integers [Integers slides]
    3. Adding Integers [Adding Integers slides]
    4. Signed Integers [Signed Integers slides]
    5. Floating Point [Floating Point slides]
    6. Characters & Strings [Characters & Strings slides]
  5. Control Structures [“Control Structures” slides]
    1. Making Decisions: if [Making Decisions: if slides]
    2. Conditions [Conditions slides]
    3. If/Else [If/Else slides]
    4. If/Elif/Else [If/Elif/Else slides]
    5. Intersecting Lines [Intersecting Lines slides]
    6. Repetition [Repetition slides]
    7. The for Loop [The for Loop slides]
    8. The while Loop [The while Loop slides]
    9. The Guessing Game [The Guessing Game slides]
    10. Example: special numbers [Example: special numbers slides]
    11. Running Time [Running Time slides]
  6. Functions and Decomposition [“Functions and Decomposition” slides]
    1. Defining Functions [Defining Functions slides]
    2. Calling Functions [Calling Functions slides]
    3. Using Functions [Using Functions slides]
    4. Variable Scope [Variable Scope slides]
    5. Debugging [Debugging slides]
    6. Coding Style [Coding Style slides]
    7. Modules [Modules slides]
    8. Objects [Objects slides]
    9. Pillow [Pillow slides]
  7. Data Structures [“Data Structures” slides]
    1. Tuples [Tuples slides]
    2. Lists [Lists slides]
    3. Accumulator Pattern [Accumulator Pattern slides]
    4. More List Operations [More List Operations slides]
    5. Slicing & Dicing [Slicing & Dicing slides]
    6. Mutability [Mutability slides]
    7. References [References slides]
    8. Really Copying [Really Copying slides]
    9. Sets [Sets slides]
    10. Handling Errors [Handling Errors slides]
  8. Algorithms [“Algorithms” slides]
    1. Linear Search [Linear Search slides]
    2. Binary Search [Binary Search slides]
    3. Sorted Lists [Sorted Lists slides]
    4. Sorting [Sorting slides]
    5. Insertion Sort [Insertion Sort slides]
    6. Other Sorts [Other Sorts slides]
  9. Recursion [“Recursion” slides]
    1. Example: Reversing [Example: Reversing slides]
    2. Working With Recursion [Working With Recursion slides]
    3. Debugging Recursion [Debugging Recursion slides]
    4. Other Examples [Other Examples slides]
    5. Why Recursion? [Why Recursion? slides]
  10. More Python Techniques [“More Python Techniques” slides]
    1. IDEs [IDEs slides]
    2. Type Hints [Type Hints slides]
    3. Input and Output [Input and Output slides]
    4. Jupyter Notebooks [Jupyter Notebooks slides]
    5. Data in Python [Data in Python slides]
    6. More Python Data Tools [More Python Data Tools slides]
    7. Summary [Summary slides]
  11. Conclusion [“Conclusion” slides]
    1. Linear Search [Linear Search slides]

Course home page.

Study Guide.

Schedule

Week Deliverables (*) Lecture Hour Lecture Date First Slide
1 1 May 6
2 May 8
3 May 10
2 Exer 1 4 May 13
5 May 15
6 May 17
3 Exer 2 7 May 20
8 May 22
9 May 24
4 Exer 3 10 May 27
11 May 29
12 May 31
5 Exer 4, Assign 1 13 Jun 3
14 Jun 5
15 Jun 7
6 Exer 5, Quiz 1 16 Jun 10
17 Jun 12
18 Jun 14
7 Exer 6 19 Jun 17
20 Jun 19
21 Jun 21
8 Exer 7, Assign 2 22 Jun 24
23 Jun 26
24 Jun 28
9 Exer 8 25 Jul 1
26 Jul 3
27 Jul 5
10 Exer 9, Quiz 2 28 Jul 8
29 Jul 10
30 Jul 12
11 Exer 10, Assign 3 31 Jul 15
32 Jul 17
33 Jul 19
12 Exer 11 34 Jul 22
35 Jul 24
36 Jul 26
13 Exer 12, Assign 4 37 Jul 29
38 Jul 31
39 Aug 2
14 Final Exam

* Check CourSys for the actual due dates and times.

Quiz instruction slide.