Course website: Introduction to Computer Science I for majors [To the faculty website of James Tam]

CPSC 233: winter 2025

Lecture, important administrative course information, general assignment information

Day/Time for class

L01: MWF 11:00 - 11:50 PM (in person, in a lecture room on campus):
  • ENG 60

  • Need help finding a room on campus, try the [Room Finder] - I didn't write it so don't direct your commendations or complaints my way it's posted in case you have trouble with the engineering complex.

L03: MWF 3:00 - 3:50 PM (taught in real time remotely via Zoom):

 

Contact Information

James Tam

 

Office time (for all students):  Please identify yourself as a CPSC 233 student when you come into the 'officeMonday and Wednesday: 2:00 - 2:30.

 

Email: tam@ucalgary.ca

Course topics and outline ]Main grid]
Official Course Information Sheet [Lecture_ALL_CPSC_233.pdf]

 

Recommended (not mandatory) text
  • From Prof. Jonathan Hudson (presumably he will post these in D2L, if you cannot find them then you can contact him directly: jwhudson@ucalgary.ca)
    • A link to a reading list for O'Reilly Learning (https://learning.oreilly.com) will be posted for each topic we cover.
    • If you choose to buy the textbook:
      • Digital- Introduction to Java Programming and Data Structures (Liang, 2020)
        • Optional: For those who appreciate a self-paced textbook to assist the process of learning to code. No content referenced directly in course. No exercises references either.
      • Also recommended: JAVA : An Introduction to Problem Solving and Programming, 8E (Savitch)
         
        • Optional: Paperback version of previous etext without digital tool.
        • Earlier version 6e/7e is just as good for our purposes.
        • You may be able to find used copies of this book!

 

Main grid: Course topics, course schedule

Shortcut links for each week of lecture

Week Topics (more links will added in the during the semester), this rough outline is based on the [rough outline] provided by Prof. Hudson at the start at the semester. Graded component due (unofficial: check D2L for official dates)
Lecture week 1:  Jan. 12 - 18 Course introduction and administration: [Notes PDF] [Notes PowerPoint]

Java basics: [Notes PDF] [Notes PowerPoint] [Examples]

 

 

Lecture week 2: Jan. 19 - 25

 
Java basics (continued from last week)

 

Control structures (branching and looping): [Notes PDF] [Notes PowerPoint] [Examples]

 

 

Lecture week 3: Jan. 26 - Feb. 1

Control structures (branching and looping, continued from last week)

 

'Structures': [Notes PDF] [Notes PowerPoint] [Examples]

 

 

Lecture week 4: Feb. 2 - 8

'Development': [Notes PDF] [Notes PowerPoint] [Examples]

 

 

Lecture week 5: Feb. 9 - 15

'Development' (continued from last week)

 

'System': [Notes PDF] [Notes PowerPoint] [Examples]

 

 
Reading week: Feb. 16 - 22 (no classes)    

Lecture week 6: Feb. 23 - Mar. 1

Object-Orientation (O-O): [Notes PDF] [Notes PowerPoint] [Examples]

 

 

Lecture week 7: Mar. 2 - 8

Object-Orientation (O-O, continued from last week):

 

 

Lecture week 8: Mar. 9 - 15

Inheritance: [Notes PDF] [Notes PowerPoint] [Examples]

 

Encapsulation: [Notes PDF] [Notes PowerPoint] [Examples]

 

 
Lecture week 9:  Mar. 16 - 22 'Override/identity': [Notes PDF] [Notes PowerPoint] [Examples]

 

Interfaces/'Order': [Notes PDF] [Notes PowerPoint] [Examples]

 

 

Lecture week 10: Mar. 23 - 29

JavaFX: [Notes PDF] [Notes PowerPoint] [Examples]

 

 

Lecture week 11: Mar. 30 - Apr. 5

O-O data structures: [Notes PDF] [Notes PowerPoint] [Examples]

 

 

Lecture week 12:  Apr. 6 - 12

 
'Rec. data structure': [Notes PDF] [Notes PowerPoint] [Examples]