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.
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.
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
Language Fundamentals: Java statements and expressions, fundamental data types, operators and precedence, and the general syntax of Java
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
Strings and Arrays: Two fundamental data structures and their methods
Objects and Classes: The object-oriented development pardigm, definitions of objects and classes, explanations of instance variables, instance methods, and constructors
Objects, Continued: Passing parameters to methods, the meaning of “this”, class variables and class methods, object deletion and the garbage collector
Inheritance: The concepts of inheritance and polymorphism, the syntax of inheritance in Java, the Java class hierarchy, and the effect of inheritance on constructors
Abstract Classes and Interfaces: Abstract classes, interfaces, and their importance
Errors and Exceptions: The Java exception handling mechanism, the difference between errors and exceptions, syntax of expressions, and the creation of exception classes
Packages and Class Visibility: Logical class groupings using packages, the environment variable CLASSPATH, inner and anonymous classes and their uses
Collections: The Collections infrastructure in Java, various collection classes, choosing which collection to use, Comparable and Comparators, and Java’s wrapper classes
Multithreading: The purpose of multithreading, Java’s multithreading mechanism, concurrency issues caused by multithreading, and synchronized access to shared resources
Streams and Files: Principles of I/O streams and their uses, options and limitations, and mechanisms for file system access
Events and the AWT: Principles of the Java 1.1 event model, and its use with GUI-based applications
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
Applets: Appets and their purpose, and embedding applets in HTML pages
Layered Architectures: Principles and importance of layered architectures, and the structure of application development in Java
JDBC — Java Database Connectivity: Architecture of JDBC, classes in the java.sql package, and the use of JDBC
Servlets: General architecture and purpose of servlets, creation of a basic servlet
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.
The following texts on Java programming are available on reserve, for use by CPSC 331 students, in the University of Calgary library.
Cay S. Horstmann
Big Java,
First Edition
Wiley, 2002
QA 76.73 J38 H67 2002
This has been used as a textbook in CPSC 233 in recent years.
Walter Savitch
Java: An Introduction to Problem Solving and Programming,
Fourth Edition
Prentice-Hall, 2004
QA 76.73 J38 S27 2005
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 |