Continuation of Introduction to Computer Science for Multidisciplinary Studies I. Emphasis on object oriented analysis and design of small-scale computational systems and implementation using an object oriented language. Issues of design, modularization and programming style will be emphasized.

Announcements

  • Website has been converted to inactive mode. (some links should no longer be expected to work)

Lectures

  • Lectures will be in-person in ICT 121 (North off hallway from ICT towards Engineering)
  • Lectures begin on Wednesday, September 6th, 2023
  • Last day to drop is Thursday, September 14th, 2023
  • Lectures end and last day to withdraw is Wednesday, December 6th, 2023
  • L01 WedFri 16:00 - 17:50

Tutorials

  • Tutorials will be in MS 571 (this isn't a CPSC lab, we'll use a web VM for tech. setup)
  • Tutorials will begin on Monday/Tuesday September 11/12th, 2023
  • T01 WedFri 11:00 - 11:50
  • T02 WedFri 12:00 - 12:50
  • T03 WedFri 13:00 - 13:50
  • T04 WedFri 14:00 - 14:50
  • T05 TueThu 14:00 - 14:50
  • T06 TueThu 15:30 - 16:20

Office Hours

  • Office hours will be in ICT 712
  • WedFri 15:00 - 15:50 or setup via email
  • Zoom is an option as well

Important Dates

  • University Closed for National Day for Truth and Reconciliation Monday, Saturday, September 30th, 2023. (During weekend)
  • University Closed for Thanksgiving Day Monday, October 9th, 2023. (No impact on this class)
  • University Closed for Remembrance Day Saturday, November 11th, 2023. (During weekend)
  • Term Break: Sunday-Saturday, November 12-18th, 2023. (no lectures/tutorials)

Top Hat

  • Join Code: XXXXXX
  • Use your UofC Account to access Tophat, not a CPSC account.

Optional Textbook Resources (if you want to buy something, these are not in bookstore)

  • Digital- JAVA: An Introduction to Problem Solving MyProgrammingLab w/ eText
    • 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.
  • JAVA : An Introduction to Problem Solving and Programming, 8E
    • Optional: Paperback version of previous etext without digital tool.
    • Earlier version 6e/7e is just as good for our purposes.

The due dates for the project, assignments can be found in the Project/Assignments sections of this page.

Support Materials

  • Course Information Sheet (Outline)
  • Topic 1: Course Organization
    • First Lecture pdf
  • Topic 2: Java: Basics
  • Topic 3: Java: Control
  • Topic 4: Java: Structures
    • Arrays/ArrayLists pdf
    • HashSet/HashMap pdf (Shifting Topic to after Software Dev for pacing to prep for A1/Project Stage 1)
  • Topic 5: Software Development (Git/JUnit)
  • Topic 6: Java: System
  • Topic 7: Classes and Objects
  • Topic 8: Encapsulation
    • Encapsulation pdf
  • Topic 9: Inheritance
  • Topic 10: Object Tool and Interfaces
    • Tools (hashcode/equals) pdf
    • Interfaces (sorting) pdf
  • Topic 11: JavaFX
  • Topic 12: OO Data Structures
    • OO Data Structures pdf
  • Topic 13: Recursive Data Structures
    • Recursive Data Structures pdf
  • Topic 14: Java Optimization and Profiling
    • Optimization/Profiling pdf

Technology

  • IntelliJ IDEA an IDE for Java (Free Community or Ultimate if you activate student licence)
  • SceneBuilder 2
  • Gitlab
  • Google Colab: interactive notebooks (emulating Java during lectures
  • Optional: Installations outside IntelliJ IDE
    • Java 20 (OpenJDK 20)
    • JavaFX
    • Git
    • JUnit 5

Assignments

  • Academic misconduct includes, but is not limited to, plagiarism, cheating, tampering or attempts to tamper with examination scripts, class work, grades and/or class records; failure to abide by directions by an instructor regarding the individuality of work handed in; the acquisition, attempted acquisition, possession, and/or distribution of examination materials or information not authorized by the instructor; the impersonation of another student in an examination or other class assignment; the falsification or fabrication of clinical or laboratory reports; the non-authorized tape recording of lectures. Please refer to Student Academic Misconduct Policy.
    If you are involved in an academic misconduct investigation, you will be contacted by the Department of Computer Science to schedule a meeting to discuss the case. Please do not contact your instructor or teaching assistant.

  • Assignment 1
    • Due Date: Friday, October 6th, 2023 23:59 (11:59 PM)
    • Topics: Java, Conditionals, Repetition, Functions, JUnit, Git
  • Assignment 2
    • Due Date: Friday, October 27th, 2023 23:59 (11:59 PM)
    • Due Date: Monday, October 30th, 2023 23:59 (11:59 PM)
    • Topics: Object-Oriented Re-design
  • Assignment 3
    • >Due Date: Friday, November 24th, 2023 23:59 (11:59 PM)
    • Due Date: Wednesday, November 29th, 2023 23:59 (11:59 PM)
    • Topics: JavaFX

Project

  • General Project Description

    A group data tracking programming project that will evolve from a procedural Java text-based program to an object-orientated program with an event-driven GUI interface over three project milestones demonstrated in tutorial through-out the semester.

  • Group Formation (Wednesday, September 27nd, 2023 - Participation 2)
  • Demo 1 (starts after assignment 1)
  • Demo 2 (starts after assignment 2)
  • Demo 3 (starts after assignment 3)
  • Final Project
    • Reflection
      • Due Date: Monday, December 11th, 2023 23:59 (11:59 PM)
    • Code
      • Due Date: Monday, December 11th, 2023 23:59 (11:59 PM)