Lecture notes for the Introduction to Computer Science II by James Tam Return to the course web page

CPSC 233: Summer 2006

 

Index

 

Lecture Information

Lecture 60  

Day/Time

Tuesdays, Thursday: 11:00 - 13:45  

Location 

ICT 116  

Contact information

James Tam

 

Office: ICT 707

 

Office hours: Tuesdays, Thursday 14:00 - 15:00

 

Phone: 210 - 9455

 

Email: tamj@cpsc.ucalgary.ca

 

 

Tutorial  Information

Tutorials

Date/Time

Location

Tutorial instructor

Email

T60 MW 11:00 MS 211 A.A. Williams awilliam@cpsc.ucalgary.ca

 

Course Outline and Notes

Sections Topics Related text book chapters (Java Illuminated)
1 Introduction: [Acrobat] [PowerPoint]
  • Course administration
  • Java overview
  • Pascal to Java transition

Working from home: ssh

Section 1.4, Section 1.5

Chapter 2

Section 5.1 - 5.7, 5.11

Chapter 6

2 Introduction to classes and objects [Acrobat] [PowerPoint]:
  • Attributes and methods
  • Creating new classes
  • Dynamic memory allocation and automatic garbage collection
  • Encapsulation and information hiding
  • Constructors
  • Shadowing
  • Arrays
 
Section 3.1 - 3.5

Section 7.1 - 7.8

Section 8.1 - 8.5

Section 9.1 - 9.6

Appendix A, B

3 More advanced Object-Oriented and Java concepts [Acrobat] [PowerPoint]:
  • More on Java methods
  • Relations between classes: Association, Aggregation, Multiplicity
  • Issues associated with references
  • The static keyword
  • Classes and state
  • Debugging code
Section 3.6

Section 3.7: Page 372 - 373 (Overloading)

Section 8.3.5 (the book talks about copying arrays but the same principle applies when working with references)

Section 3.6, Section 7.11

4 Advanced relations [Acrobat] [PowerPoint]
  • Inheritance
  • Interfaces vs. classes
  • Abstract classes
Chapter 10
5 Packages [Acrobat] [PowerPoint] This section is not addressed in the book
6 Object-Oriented design and testing [Acrobat] [Powerpoint] Issues related to design and testing is discussed in various parts of the text
7 Exception handling [Acrobat] [PowerPoint] Section 11.1 - Section 11.2
8 File input and output [Acrobat] [PowerPoint] Section 11.4
9 Introduction to GUI design [Acrobat] [PowerPoint] A different version of Java GUI's is covered in Chapter 12
10 Concurrent programming with Java threads (If there is sufficient time) [Acrobat] [PowerPoint]  
11 Additional topics (If there is sufficient time) [Acrobat] [PowerPoint]  

 

Assignments and Exams

 

Assignment submission guidelines

 

Information about academic misconduct (cheating)

 

Information about the electronic submission mechanism (New: Unless otherwise informed you are to email your code to your TA)

  Coding style guide

 

Assignment 1 (Due Monday July 10, worth 2% of your overall grade): Writing a simple Java program

 

Assignment 2 (Due Monday July 17, worth 2% of your overall grade): Introduction to classes

 

Assignment 3 (Due Monday July 24, worth 7% of your overall grade): Dynamic memory allocation with an array of references
  In class midterm examination (Thursday July 27): Link with additional information
  Bonus Assignment (Due Monday July 31, worth an additional 3% to the overall grade): Dynamic memory allocation with a linked list

 

Assignment 4 (Due Tuesday August 8, worth 10% of your overall grade): Writing programs with multiple classes

 

Assignment 5 (Due Tuesday August 15, worth 11% of your overall grade): Inheritance

 

Assignment 6 (Due Friday August 18, worth 8% of your overall grade): Designing a simple graphical-user interface, file input and output

 

A Registrar scheduled final exam: Link with additional information (coming near the end of the term)