CS 141: Software Engineering I
Registered students, use the
course homepage
- Prerequisites:
- CS 131 (See
undergraduate
curriculum)
- No familiarity with object-oriented programming
is required. Some knowledge of C or C++ will be advantageous but not required.
- Course description:
-
In this course, students will learn how to write object-oriented code
using Java. Concepts will focus on object-oriented thinking,
software composition, inheritance and polymorphism, and design
patterns. Programming techniques, assignments and lab exercises
will focus on Java, specifically, the language and its core libraries.
The course will be conducted lab-style with a mix of lecture,
lab assignments and projects.
- Textbook:
Given the vast amount of on-line documentation (including lecture
material for this course),
FAQ's and tutorials, there is probably no need for a Java textbook.
Also, given the sheer size of the language, no single book really does
justice. However, you will find the "Nutshell" book (see below) useful.
Additional books and references are suggested in the
Resources section below
-
Lecture material and examples.
-
The book Java in a Nutshell, 3rd Edition
by David Flanagan (O'Reilly Pub.).
This book is a handy reference that contains a (rather terse)
overview of the language, tools and API's. Initially, a beginner will
find it difficult to read, but it's probably the only
book you will continue to use even after becoming a Java expert.
-
Suggested companion book: Core Java 2, Volume 1
by C.Horstmann and G.Cornell (Prentice-Hall, ISBN 0-13-081933-6).
This book, a introduction to Java for programmers, starts from
scratch, has plenty of examples and comparisons with other languages.
Use this book beyond the course material to get a different take
on the same material.