CSC 148H - Advice on skipping 108
University of Toronto - Fall 2000
Department of Computer Science
CSC 148H - INTRODUCTION TO COMPUTER SCIENCE
Advice on skipping 108
If you are thinking about skipping 108
csc108 is a prerequisite for csc148, which means that we will assume
from the first day of classes that you already know the material in csc108.
On the other hand, the prerequisite is not checked, which means that
you can decide for yourself that you are going to skip 108, and no one
will stop you.
For many students, skipping 108 is a bad idea -- it would lead to
a miserable experience and a poor grade in 148.
This page is intended to help you figure out if skipping 108 might make
sense for you.
I would advise you to skip 108 and go straight into 148 only if
- You have learned Java through some other means, perhaps self study.
See below for how much of Java we are assuming you know.
- Or you know all the concepts
below, but in C++,
and can devote 10-20 hours in the next two weeks to learning how to
express them in Java.
- Or you know how to program, but don't know object-oriented programming
(OOP),
and have nothing else to do but learn OOP and Java in the next month or so --
and you don't mind getting a lower mark in 148 due to the disadvantage
of taking it without the relevant background.
Otherwise, you should either
- Switch to 108 and take 148 later.
Don't be discouraged -- this is the normal sequence,
and 148 is offered every term, including
summers.
- Or skip 108, but teach yourself
OOP and Java before your csc148 term begins.
If you have no programming experience at all, I urge you to take 108.
In csc148, we will assume you know all of the following, in Java:
- what a class is vs an instance
- how to define a class
- how to use a class
- how to define and use data members (also called instance variables)
- how to define and use methods
- how to write classes that inherit from other classes
Of course, we also assume that you understand basic programming concepts,
including:
- variables
- control structures: if, for-loop etc.
- arrays
- parameters/arguments
- strings
We will assume that you are able to write a program that is
several pages long,
that defines 3 or more classes,
and where no method is more than one page long.
How to check your understanding
Here are some things to do that will test your understanding of Java:
If you have significant problems with either of these, it is probably
a sign that your background is weak. You may want to talk to your
professor for advice.
References
Here are some references that may be helpful if you need to
build up your background in Java:
- The csc108 textbook:
Introduction to Programming Using Java: An Object-Oriented Approach (Java 2
Update) by David Arnow and Gerald Weiss; Addison-Wesley, 2000.
(See this list of
errors in the text, compiled by 108 instructors.)
This book is for beginners, but you can skip over the sections on
things you already know and focus on what you
need.
- ProgramLive with Java by David and Paul Gries.
(I may have the title slightly wrong.)
This is a new book, completely on CD-ROM.
It is at the 108-level, but is more interactive than an ordinary book.
The UofT bookstore carries it.
- Java in A Nutshell by David Flanagan; O'Reilly and Associates.
This book is suitable for C and C++ programmers who want a quick
introduction to Java.
-
The online documentation for the Java
API libraries.
This won't teach you Java, but is an extrememly useful
reference if you are brushing up on built-in Java classes like
String or Vector.