CS 382: Course Introduction

Steven Zeil

Last modified: Jul 23, 2015
Contents:

Welcome to CS382, Introduction to Java

This course is intended for students who have taken programming courses in C++ up to and including the use of classes to support the concept of Abstract Data Types (ADTs) as a principle of program design. Ideally, students in this course will have taken a C++-based course in data structures and so will be familiar with many of the features of the C++ std:: library.

This course is not a course for beginning programmers. This course assumes that you already know what if statements, loops, functions, parameters, structured data, pointers, classes, and encapsulation are and when to use them, but that you do not know what these look like in the Java programming language.

1 Readings and Commentaries

Since the early beginnings of the Java programming language, Sun Microsystems (the designers/developers of Java) have provided an excellent set of on-line tutorials describing the language. Following Sun’s purchase by the Oracle Corporation, these tutorials remain available. I have elected to use these rather than a “traditional” Java programming textbook. In part, that’s because a typical “Intro to Java” textbook is going to be aimed at people who have never programmed before. Such books will spend a lot of time telling you what a variable is, why variables have to be declared and initialized, what assignment statements and expressions are used for, etc. You presumably know all that already. You just don’t know how to tailor those concepts to Java.

At the same time, the Sun/Oracle Java tutorials do not assume a specific programming language background. They are aimed equally well at programmers who come from backgrounds in C++, C, FORTRAN, C#, Perl, etc.

Most of your reading, then will be pairs of documents. One will be a section of the Sun Tutorials. The other will be my own commentary on how this relates to your prior experience in C++. You might find it useful, in many cases, to open both documents, side-by-side.

2 Labs and Assignments

In each section of the course, you can expect to find one or more labs and assignments. Both the labs and assignments are “hands-on” activities of some kind. The distinction between them is that labs are not graded, but assignments are.