| Course website: Introduction to Computer Science I for majors [To the faculty website of James Tam] |
|
Day/Time for class |
L02: MWF 1:00 - 1:50 PM in KNB 132
|
|
James Tam |
|
|
|
Office time: Please identify yourself as a CPSC 217 student when you come into the 'office'
|
|
|
Email: tam@ucalgary.ca |
| Course topics and outline | [Main grid] |
| Course Outline |
[The
official signed version]
|
| Recommended (not mandatory) text |
|
Shortcut links for each week of lecture
- #Lecture_week_1
- #Lecture_week_2
- #Lecture_week_3
- #Lecture_week_4
- #Lecture_week_5
- #Lecture_week_6
- #Lecture_week_7
- #Lecture_week_8
- #Lecture_week_9
- #Lecture_week_10
- #Lecture_week_11
- #Lecture_week_12
- #Lecture_week_13
Week Topic (since this is a coordinated class the schedule is tentative, more links will added in the during the semester) Lecture week 1: Aug. 31 - Sept. 6 (lectures start on Tue. Sept. 2) Course introduction, administrative information (such as grading): Problem solving via top down decomposition Introduction to computer programming Part I
- (Not covered in detail in lecture but it may be a useful tutorial: creating/running python programs using two editors: PyCharm & IDLE): [Notes: PowerPoint] [Notes: Acrobat]
- Writing and running a python program, variables, displaying information to the user, common math operators, variables. [Notes: PowerPoint] [Notes: PDF] [Examples]
Lecture week 2: Sept. 7 - 13
Introduction to computer programming Part II Representations of data/information
- Types of variables, representing information, programming errors: [Notes: PowerPoint] [Notes: PDF] [Examples] [Exercise]
Lecture week 3: Sept. 14 - 20
Representations of data/information (continued from last week)
Branching
- Branching Part I [Notes: PowerPoint] [Notes: PDF] [Examples] [Exercise]
- Branching Part II [Notes: PowerPoint] [Notes: PDF] [Examples]
Lecture week 4: Sept. 21 - 27
Announcements: [Sept 24] Repetition:
- Part I [Notes: PowerPoint] [Notes: PDF] [Examples]
- Part II [Notes: PowerPoint] [Notes: PDF] [Examples]
- Part III [Notes: PowerPoint] [Notes: PDF] [Examples]
Lecture week 5: Sept. 28 - Oct. 4 (No classes Tuesday Sept. 30)
Project I: Sept. 28
Midterm I: Saturday October 4, 6:30-7:30 PM
"Catch up and review" Repetition (continued from last week) [Some practice exercises, extra help material]
Lecture week 6: Oct. 5 - 11 Program decomposition using functions
- Part I introduction, function parameters: [Notes: PowerPoint] [Notes: PDF] [Examples]
- Extra help and problems for functional decomposition [Link to resources]
- Part II function return values, scope (local vs. global), optional and default parameters: [Notes: PowerPoint] [Notes: PDF] [Examples]
Lecture week 7: Oct. 12 - 18 (No classes Monday Oct. 13)
Exercise: Oct 14 (parameters, returns, simple 1D list)
Program decomposition using functions (continued from last week) Introduction to "Data structures/composites"
- Part I, lists: [Notes: PowerPoint] [Notes: PDF] [Examples]
- common list operations: creating lists,
- accessing an element, traversing lists,
- modifying elements, adding elements, displaying lists using print()
Lecture week 8: Oct. 19 - 25
Exercise: Oct 21 (1D list, simple list operations)
Introduction to "Data structures/composites"
- Part I, lists (continued)
- Part II, arrays (for reference only, not covered in 217) introduction, function parameters: [Notes: PowerPoint] [Notes: PDF] [Examples]
- Part III, dictionaries: [Notes: PowerPoint] [Notes: PDF] [Examples]
Lecture week 9: Oct. 26 - Nov. 1
Project II: Oct. 26 (functional decomposition, composites)
Midterm II: Saturday Nov. 1, 6:30-7:30 PM
Exercise: Oct 30 file input
Introduction to "Data structures/composites"
- Part IV, tuples: [Notes: PowerPoint] [Notes: PDF] [Examples]
- Part V, sets: [Notes: PowerPoint] [Notes: PDF] [Examples]
File input and output, exception handling
Extra for Midterm #2: [Non-multiple choice practice problems for 2D lists]
Lecture week 10: Nov. 2 - 8
File input and output, exception handling
- Part I, file input: [Notes: PowerPoint] [Notes: PDF] [Examples]
- Part II, file output: [Notes: PowerPoint] [Notes: PDF] [Examples]
- Part III, exception handling to prevent run-time errors: [Notes: PowerPoint] [Notes: PDF] [Examples]
Reading Week: Nov. 9 - 15, no classes Lecture week 11: Nov. 16 - 22
Exercise 8 Nov 18 (file input and exceptions)
"External libraries"
- Extra optional resource if you need it (not on the exam), basic HTML web page 'tags': [Notes: PowerPoint] [Notes: PDF]
- (Since these notes are based upon the resources are based upon the work of another instructor they won't be posted publicly online but instead you can find them directly under the material for this week in D2L: Content->Week 11 Nov 16 - 22
- [My examples]
Lecture week 12: Nov. 23 - 29
Exercise 9 Nov 25 (external libraries)
"Generative A.I." (creating original content using Artificial Intelligence): 1 day (but keep in mind: 1) a lot of the things I have been talking about with respect to GenAI are directly what you can apply to the Project (other things in these notes that I didn't cover are useful for the future rather than now) 2) the course coordinator has also created videos on this content that tie directly to the project. So I may cover these section very quickly over even skip most of it entirely.
- (Since these notes are based upon the resources are based upon the work of another instructor they won't be posted publicly online but instead you can find them directly under the material for this week in D2L: Content->Week 11 Nov 16 - 22
Introduction to classes and objects: 2 days
- [Notes: PowerPoint] [Notes: PDF] [Examples]
Lecture week 13: Nov. 30 - 6 (last day of class is Fri. Dec. 5)
Project III: Nov. 30 (Generative AI could be useful, python libraries: requests, BeautifulSoup, csv, and mathplotlib)
Exercise 10 Dec 2 (O-O: init, str, methods, "driver program")
Introduction to classes and objects (continued from last week)
Review (if there is time)
Extras (if there is time): not on the final exam but you might still find it of interest. Final exam period: Dec. 9 - 19