CPSC 219: Introduction to Computer Science for Multidisciplinary Studies II (Fall 2023)
Announcements
- CPSC Undergrad Changes IT Page
- You now use IT account (no CPSC accounts for undergrads)
- Increase in quota to 10GB
- Website changes
- New GitLab server for undergrads
- Possible printing changes
- Course material posted on this course website.
- Community Discussion Boards via discord.com (Invite link in D2L Content)
- Quizzes, Participation, Projects, and Assignment Submission/Grading via D2L
- Class interaction via TopHat (UCIT ID, not CPSC ID) - Do not sign in with high school or other institution TopHat login
- Lectures and tutorials will be in-person (recordings via Zoom will be attempted through Zoom in D2L
Lectures
- 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 begin on Monday/Tuesday September 11/12th, 2023
- T01 WedFri 11:00 - 11:50 Ghods, Shokoofa zahra.ghods@ucalgary.ca
- T02 WedFri 12:00 - 12:50 Ghods, Shokoofa zahra.ghods@ucalgary.ca
- T03 WedFri 13:00 - 13:50 Mirtabatabeipour, Amirhossein amirhossein.mirtabat@ucalgary.ca
- T04 WedFri 14:00 - 14:50 Mirtabatabeipour, Amirhossein amirhossein.mirtabat@ucalgary.ca
- T05 TueThu 14:00 - 14:50 Tapotosh, Ghosh tapotosh.ghosh@ucalgary.ca
- T06 TueThu 15:30 - 16:20 Tapotosh, Ghosh tapotosh.ghosh@ucalgary.ca
- T07 TueThu 17:00 - 17:50 (no enrollment so cancelled)
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: 328249
- 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.
- 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
- Topic 5: Software Development (Git/JUnit)
- Topic 6: Java: System
- Command Line pdf
- Files pdf
- Exceptions pdf
- Code
- Notebook CPSC219_6System.ipynb
- Topic 7: Classes and Objects
- Topic 8: Encapsulation
- Topic 9: Inheritance
- Creating pdf
- Overriding pdf
- Hierarchies pdf
- Designing pdf
- Code
- Inheritance/Faculty1 .java
- Inheritance/Staff1 .java
- Inheritance/Student1 .java
- Inheritance/Main .java
- Inheritance/Person .java
- Inheritance/Faculty .java
- Inheritance/Staff .java
- Inheritance/Student .java
- NewPackage/MyObject .java
- NewPackage/SamePackageObject .java
- OtherPackage/MyObject .java
- OtherPackage/SamePackageObject .java
- Topic 10: Object Tool and Interfaces
- Tools (hashcode/equals) pdf
- Interfaces (sorting) pdf
- Code
- HashCodeEquals/MyObject .java
- HashCodeEquals/MyObject2 .java
- HashCodeEquals/MyObject3 .java
- Sorting/MyObject .java
- Sorting/MyObject2 .java
- Sorting/MyObject3 .java
- Sorting/MyObject3Comparator .java
- Shapes/Main .java
- Shapes/Point .java
- Shapes/Shape .java
- Shapes/Drawable .java
- Shapes/Triangle .java
- Shapes/Circle .java
- Shapes/List .java
- Shapes/MyList .java
- 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 link (Free Community or Ultimate if you activate student licence)
- SceneBuilder 2 link
- Gitlab link
- Google Colab: interactive notebooks (emulating Java during lectures) link
- Optional: Installations outside IntelliJ IDE
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. - Guidelines for Avoiding Plagiarism
- Assignment 1
- Due Date: Friday, October 6th, 2023 23:59 (11:59 PM)
- Topics: Java, Conditionals, Repetition, Functions, JUnit, Git
- Assignment Description
- Game.java
- Starter.java (rename to Board)
- BoardTest.java (contains example of array comparison test)
- CPSC Gitlab Server
- Video
- 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 Description
- CPSC219F23A2-Files.zip
- UML
- Javadoc
- Assignment 3
Due Date: Friday, November 24th, 2023 23:59 (11:59 PM)- Due Date: Wednesday, November 29th, 2023 23:59 (11:59 PM)
- Assignment Description
- CPSC219F23A3-Files.zip
- Topics: JavaFX
Project
- General Project Description
- Group Formation (Wednesday, September 27nd, 2023 - Participation 2)
- Demo 1 (starts after assignment 1) Requirements
- Demo 2 (starts after assignment 2) Requirements
- Demo 3 (starts after assignment 3) Requirements
- Final Project Requirements
- Reflection
- Due Date: Monday, December 11th, 2023 23:59 (11:59 PM)
- Code
- Due Date: Monday, December 11th, 2023 23:59 (11:59 PM)
- Reflection