Spring 2013
Overview
In our second introductory course in Computer Science, we
emphasize
thinking in abstractions and
object-oriented design and programming.
We will cover abstract data types and explore
various implementations of those abstractions. We also consider
how different data structures can be used to solve various
problems. The data structures we will
study include stacks, queues, lists, trees and graphs. In
addition to basic data structures, we will be studying and implementing
algorithms that utilize them. For our primary computer
language, we will use Java. But learning to program in Java is only a side-effect of the course.
The primary goal is to improve your problem solving and program design skills.
Course Materials
- Wayne's Philosophy of education
and his Suggestions for success
- Required Textbook:
Java Structures: Data Structures in Java for the Principled Programmer,
by Duane A. Bailey.
(Netiquette requires that I link to the Welcome page instead of directly to the book;
two clicks will get you there.
But do explore Professor Bailey's site; he has a wealth of information there.)
- Java: you will need to install a Java JDK (not JRE) on your machine.
There are multiple options from which to choose.
I will be using OpenJDK (1.7.0_09) on Linux;
it may be a good idea to use the same to ensure that I can run your programs.
However, you can also download and install Java from Oracle (Sun)
for Mac or Windows (or Linux for that matter),
or find some other implementation of Java.
NB: If using Oracle (Sun) Java, you are warned not to use version 6 or earlier.
- Development environment: you will also need some development environment.
While it is perfectly possible to get by with Emacs or VI to edit your source
code and then compile and run your programs from the command line,
you may also consider using
Eclipse,
NetBeans,
DrJava,
BlueJ,
or some other IDE (Integrated Development Environment).
There are many free and commercial products from which you might choose.
- Documentation: you will, at a minimum, want to bookmark a link to the
Java 7 API Documentation.
I recommend that you install the documentation on your own machine
for faster and off-line access.
- Optional reference book (but your best reference will be the Java API documentation):
Java In a Nutshell, Flanagan, D. O'Reilly.
Administrivia
- Time and place: TTh 10:00-11:50am; Winter Hall 110, Computer Lab
- Professor: Wayne Iba
- Office: 308 Winter Hall, 3rd Floor, Math/Computer Science Wing
- Phone: 805-565-6799
- Email: Iba at Westmont dot edu
- Office Hourse: see my teaching page
- Course Syllabus
- Class schedule: authoritative version found on Eureka