Course Overview


Welcome to your first course in programming! This course introduces you to fundamental computer programming concepts as you learn to program in the Java language. Algorithm development, structured programming, code organization (methods), data organization (arrays), basic object-oriented programming, exception handling, and file access are covered.

Learning Objectives

Students successfully completing this course will be able to analyze problems and formulate algorithms; create robust, user-friendly, well-structured and well-documented Java programs; read basic Java programs to determine their purpose; and have a basic understanding of how computers work.


Daniel Liang, Introduction to Java Programming, Brief Version, 10th edition, Pearson, ISBN 9780133592207

Mailing Lists

Important announcements will be sent to the class mailing list ( as well as posted to the web page, so please read your mail frequently! You are responsible for the material sent to that list. Note that the class list is automatically generated based on who is enrolled in the class.


Enroll in Piazza for posting questions about class contents and getting it answered by Instructor, TAs and fellow students. And also check piazza frequently to stay up to date.


Exams are worth 40% of your final grade. There will be two exams to test your knowledge and conceptual understanding and each will be worth 20% of your grade. The exams will be closed book, and will cover material from class, projects, and assignments. Bring your UW ID to the exams! Read more about exams here.


See the projects page for project handouts and due dates.

As part of the course, you will complete FIVE programming Projects. Project are worth 40% of your grade.

The projects are a fundamental part of this course. Most projects require a significant amount of time; do not procrastinate! It is likely they will take longer than you expect. Do not wait until the day before the project is due to start. These projects should be started pretty much when they are handed out. All information necessary to complete the projects will be available from the class web page.

As stated above, all of the projects will be in Java. We will help introduce these a bit but of course the real learning of anything as awesome as a new language is done on your own. Get to work!

For the projects, you will primarily be graded on how well your implementation works. We will test your program on a suite of input sets. Your grade will be based on how many of the tests your application passes; we will also examine your code to ensure that you followed the specifications of the project. Any project turned in after the due date/time and up to 24 hours late will receive a deduction of 25% of the total points. Any project turned in 24 hours to 48 hours late will receive a deduction of 50% of total points. Any project turned in more than 48 hours after the due date/time will not be graded, and it will receive a zero score.

Also, don't cheat.


Assignments are worth 20% of your grade. There will be both in-class assignments and homework assignments. For most of the assignments, you'll be writing java programs. Unless otherwise specified, assignments are individual work..