This introductory course assumes no prior programming background
and is intended for graduate students
who desire significant programming and program design experience
within a modern programming paradigm.
Exploration of the enterprise of software design,
creation, maintenance, and reuse.
Abstraction as a vehicle for reducing the complexity of problems.
Concepts of object-oriented programming.
Internet-related programming including threads.
Design and implementation of nontrivial algorithms
in selected application areas.
Prerequisites: NONE.
Credit 3 units.
[Note: This course meets no computer science degree requirements.]
Core Java, Vol. I, 2008 (8th ed), by Horstmann & Cornell
(
website)
Supplemental Texts
Program Development in Java, by Liskov & Guttag
(
website)
Java Software Solutions,
4th edition, Addison-Wesley, 2005 by Lewis & Loftus
(
website)
Thinking in Java by Bruce Eckel
(
website)
Other Java Texts
Big Java by Horstmann
(
website)
Java in a Nutshell, 5th ed, by David Flanagan
(
website)
Grading
Your grade in this course will be based on the following
(subject to change):
7 Quizzes
approx 50%
Bi-Weekly Machine Problems
approx 50%
Quizzes/Tests
Quizzes are planned periodically through the semester
for a total of six quizzes plus a final quiz.
These may vary in length and weight
and account for about half of the total points.
Plan not to miss a quiz,
but if for some good reason you will not be able to take a quiz,
please speak with the instructor in advance
to see if other arrangements can be made.
One quiz score (excluding the final quiz) will be dropped.
The final quiz
will count approximately the equivalent of two quizzes.
The final quiz cannot be dropped and will be comprehensive.
Machine Problems
Machine problems are an integral part of the course
and will be assigned approximately bi-weekly.
All work must be your own,
unless explicitly stated in the assignment,
but you are encouraged to seek help in understanding
and conceptualizing the problem.
This help should stop short of exchanging or copying code.
Each completed problem will be demonstrated in lab before submitted
for grading.
Machine problems turned in late will receive fewer points than
those that are on time.
All machine problems will count in the final grade
and none will be dropped.
Cheating
Cheating is the willful misrepresentation of someone else's work as your own
and will not be tolerated in this course.
Specific examples include (but are not limited to)
submitting work identical to someone else's,
submitting part or all of an assignment identical to someone else's,
or using unapproved sources of information during a quiz or exam
(e.g., your neighbor's exam, notes, textbook, cell phones, calculators, etc).
This is a serious matter.
Anyone found cheating will receive an F for the course
and the matter will be referred to the academic discipline board in the
School of Engineering.
Further action may be taken in extreme cases.