Syllabus, CPSC 331, Winter 2007

home page -  news -  syllabus -  topics -  schedule -  assignments -  tutorials -  tests -  java -  references -  Mike Jacobson


syllabus -  learning goals -  CS background -  math background -  how to succeed -  what to avoid -  assessment

 CS Background

Since students in this course have successfully completed either Computer Science 233, 235 or Computer Engineering 339, familiarity with the syntax of an object-oriented programming language (likely either Java or C++) will be assumed.

Most (ideally all) students will also be familiar with various concepts in object-oriented programming. Note that this is not the same as being familiar with the syntax of an object-oriented programming language, since you can write “procedural” programs (instead of “object-oriented” programs) using an object-oriented language.

Note: Since CPSC 331 is not a programming course, lectures will not include detailed discussions of programming, and discussions in tutorials will emphasize programming concepts that are likely to be new to students who have already successfully completed CPSC 233.

Students who have not received an introduction to object-oriented programming using Java may therefore need to spend time on their own to learn this material. The following resources should be helpful for this.

Resources

Online Lecture Notes

Professor Craig Schock has made the following online lecture notes, on Java and object-oriented programming, available for general use. Famaliarity with the material in the first seven lectures, below, will be assumed in CPSC 331.

  1. Introduction: The key aspects of Java, the Java software development kit (SDK), function of the Java virtual machine, and the Java language and class libraries

  2. Language Fundamentals: Java statements and expressions, fundamental data types, operators and precedence, and the general syntax of Java

  3. Controlling Program Flow: Boolean expressions in Java, the use of the if and switch statements to carry out tests, and the three Java looping mechanisms for, while, and do while

  4. Strings and Arrays: Two fundamental data structures and their methods

  5. Objects and Classes: The object-oriented development pardigm, definitions of objects and classes, explanations of instance variables, instance methods, and constructors

  6. Objects, Continued: Passing parameters to methods, the meaning of “this”, class variables and class methods, object deletion and the garbage collector

  7. Inheritance: The concepts of inheritance and polymorphism, the syntax of inheritance in Java, the Java class hierarchy, and the effect of inheritance on constructors

  8. Abstract Classes and Interfaces: Abstract classes, interfaces, and their importance

  9. Errors and Exceptions: The Java exception handling mechanism, the difference between errors and exceptions, syntax of expressions, and the creation of exception classes

  10. Packages and Class Visibility: Logical class groupings using packages, the environment variable CLASSPATH, inner and anonymous classes and their uses

  11. Collections: The Collections infrastructure in Java, various collection classes, choosing which collection to use, Comparable and Comparators, and Java’s wrapper classes

  12. Multithreading: The purpose of multithreading, Java’s multithreading mechanism, concurrency issues caused by multithreading, and synchronized access to shared resources

  13. Streams and Files: Principles of I/O streams and their uses, options and limitations, and mechanisms for file system access

  14. Events and the AWT: Principles of the Java 1.1 event model, and its use with GUI-based applications

  15. AWT Components: Classes present in the java.awt package, inheritance hierarchy of the AWT, basic structure of GUIs, adding components to containers, use of Layout Managers, and basic graphics processing under the AWT

  16. Applets: Appets and their purpose, and embedding applets in HTML pages

  17. Layered Architectures: Principles and importance of layered architectures, and the structure of application development in Java

  18. JDBC — Java Database Connectivity: Architecture of JDBC, classes in the java.sql package, and the use of JDBC

  19. Servlets: General architecture and purpose of servlets, creation of a basic servlet

Online Tutorials

The Java tutorials are “practical guides for programmers who want to use the Java programming language to create applications.”

Tutorials in the Getting Started and the Learning the Java Language sequences appear to be useful for students wishing to prepare for programming exercises and assignments in CPSC 331.

Reserve Material

The following texts on Java programming are available on reserve, for use by CPSC 331 students, in the University of Calgary library.

It will not be necessary to work through all of the material found in these textbooks to be prepared for CPSC 331. However, a familiarity with basic control structures (including tests and loops), fundamental data structures (including strings and arrays), and object-oriented programming concepts (including classes and objects, inheritance and polymorphism) will be assumed.


This page last modified:
http://www.cpsc.ucalgary.ca/~jacobs/cpsc331/W07/syllabus/cs_background.html