| Instructor | Dr. Ben Uphoff |
| Office | L342 |
| Phone | (414) 277-7326 |
| uphoff@msoe.edu | |
| AIM | uphoffmsoe |
| Meeting Times | Monday/Wednesday 2-2:50pm (Lecture) Thursday 2-3:50pm (Lab) |
| Location | R102 (Lab and Lecture) |
| Office Hours | Monday 3-4pm Thursday 9-10am (IM only) Thursday 10-11am or by appointment |
This course provides an introduction to object-oriented software development using the Java programming language. Emphasis is placed on translating written problem descriptions into robust software solutions. Topics covered include Java program structure, algorithmic problem solving and modularization, I/O statements, control constructs, looping techniques, class libraries, user defined classes and methods, and arrays.
Please consult the official course description for more detailed information and course outcomes.
Java 5: Objects First, by Barry I. Soroka, Jones and Bartlett, 2006.
Note: Confusion with the bookstore resulted in the wrong book being ordered. Please check that you have the correct book.
| Week | Day | Topic(s) | Reading | Homework | Lab |
|---|---|---|---|---|---|
| 1 | M | Introduction to course [PDF] | Preface pp 2-23 | All Ch 1 problems | Lab 1: Intro to OOP |
| W | Classes and Objects [PDF] |
Ch 1 pp 31-43 | Ch 2 problems 5 to 10 | ||
| 2 | M | Using Predefined Classes and Objects; Java Programming Basics; Math & System classes [PDF] | Ch 3 pp 45-61 | Ch 3 problems 1 to 6 | Quiz 1 Lab 2: First Java Program |
| W | GUI Coordinates and Colors [PDF] | Ch 3 pp 61-73 | Ch 3 problems 7, 10, 11, 13 | ||
| 3 | M | Character Strings, Datatypes, variables,
identifiers; The String class [PDF]
|
Ch 4 pp 81-101 |
Ch 4 problems 1 to 4, 10 to 18 | Quiz 2 Lab 3: String Manipulation |
| W | String creation and manipulation; Comparing Objects, Immutability of Strings; The Eclipse Debugger; [Example code] | Ch 4 pp 101-107
The Java Style Guide [PDF] |
Ch 4 problems 20 to 22 | ||
| 4 | M | Overview of Output and Input [PDF] [Example code] | pp 113-129 | Ch 5 problems 3 to 6, 12 to 19 | Lab 4: I/O |
| W | Exam 1 (covers Chapters 1-4) | ||||
| 5 | M | Class Creation Basics; Defining and Using Classes Data Members and Methods; Class Variables and Methods; Visibility; Accessor and Mutator methods [PDF] | Ch 6 pp 135-164
|
Ch 6 problems 1 to 13 | Lab 5 |
| W | Class methods and method parameters; Constructors; Overloaded Methods; User Defined Classes; this operator; static methods/variables [PDF] | Ch 6 pp 165-189, skip 6.12 | Ch 6 problems 17, 18, 24, 25, 26, 28, 39 | ||
| 6 | M | Class creation example [Example Code] | Ch 6 pp 189-199 | Ch 6 problems 42 to 46 | Quiz 3 Lab 6 |
| W | Integer Datatypes; Numeric variables; Arithmetic operators, Precedence [PDF] [Example Code] | Ch 7 pp 212-251 | Ch 7 problems 2, 3, 6, 8, 14, 20 | ||
| 7 | M | Integer conversions; Outputting Integer values; Output using JOptionPane, String, Date classes [PDF] | Ch 7 pp 251-282 | Ch 7 problems 29, 30, 33, 41, 43 |
|
| W | Boolean Datatypes [PDF] | Ch 8 pp 309-326 | Ch 8 problems 9 to 12 | ||
| 8 | M | Exam 2 (covers Chapters 1-7) | Lab 8 | ||
| W | Character Datatypes [PDF] | Ch 9 pp 331-339 | Ch 9 problems 4, 5, 12, 13 | ||
| 9 | M | Floating-Point Datatypes [PDF] | Ch 10 pp 343-373 |
Ch 10 problems 4, 5, 8, 9, 15, 18 | Quiz 5 Lab 9 |
| W | Conditional Program Execution; The if() statement; Selection (conditional control) statements | Ch 11 pp 377-415 |
Ch 11 problems 3, 4, 5, 6, 7 | ||
| 10 | M | Condition Program Execution continued; Nested if() statements [PDF] | Ch 11 pp 415-436 |
Ch 11 problems 13, 14, 18, 19, 21 | Quiz 6 |
| W | Review for Final Exam; Course/Instructor Evaluation | ||||
| 11 | Final Exam
(cumulative by the nature of the course) TBA |
||||
Note that the labs constitute a significant part of your overall grade - a reflection of their importance in this course. Plan to devote a considerable effort in order to complete these labs successfully and professionally. You will have to expend a reasonable effort as you practice using the development tools (Eclipse). You should probably expect to spend additional time outside of class to complete the assignments for the labs.
Lab grades are determined by meeting the criteria specified on the individual lab assignments. Any lab assignment involving creation of a program must be substantially functional in order to receive a passing grade. If you turn in a non-functioning program and have not come to see me for help, a grade of no higher than 50 will be given for that assignment.
Homework will be graded as a "bonus" to your overall grade. See the Grading section below for how the quarter grade is computed. There are 17 homework assignments in the quarter. They will be graded on a 0-1-2 scale. A grade of 0 means not submitted or poor overall quality of work. A 1 means average quaity or partial completion of the homework with overall good work on the completed portions. A 2 means good overall quality of work with all assigned problems completed. Thus there are 34 homework points available. Students who get 20 points will receive a bonus percentage point added to their final quarter grade (a 89% becomes a 90%). Students that get 30 points will get two percentage points added to their grade (a 75% becomes a 77%).
Not doing homework does not cost you anything in your overall grade but not doing it will cause your exam and quiz scores to drop sharply. Skipping homework will also end up with you wasting time in lab learning topics that have already been covered in homework assignments. Homework is also a great way to get feedback from the instructor. I will try to comment on areas that need work and get you feedback in a timely manner.
Labs and homework should be submitted to the instructor via email as text files, PDFs or Word documents. Source code for labs must be attached in a separate zip file with NO class files (they take up way too much space). If there is a pen and paper type exercise you can either scan it and submit it via email, or slide it under my office door. For group projects, one group member will submit the assignment for everyone in the group, unless specified otherwise. Lastly, please follow this naming scheme for your email subject line when submitting anything:
Note that this algorithm indicates how a grade will be determined for students who have successfully demonstrated mastery of the course objectives. An acceptable level of success in meeting all course objectives is a prerequisite for a passing grade in the course.
| Criterion | Weight |
| Labs | 30% |
| Quizzes | 25% |
| Hour Exams | 25% |
| Final Exam | 20% |
Also note that it is possible to gain a 1 or 2 percentage point bonus for homework (see the Homework section above). It is not possible to use the bonus percentage to raise your grade above 100%. Sorry hardcore Java experts!
This page was last updated on 09/05/2008. Content heavily borrowed from Dr. Mark Hornick.