SE-1010: Software Development

Fall 2008

Instructor Dr. Ben Uphoff
Office L342
Phone (414) 277-7326
Email 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



Course Description

From the MSOE catalog:


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.


Textbook

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.


Java Development Tools

You will need your laptop for lab sessions. Make sure you get it set up before the first lab. We will be using the Eclipse Integrated Development Environment and Java 1.6. You can get Eclipse here and Java here. Don't hesitate to contact me if you are having troubles getting your development environment configured!


Schedule

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
  • Quiz 4
  • Lab 7
  • Review for Exam 2

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

Lab 10

W Review for Final Exam; Course/Instructor Evaluation    
11 Final Exam (cumulative by the nature of the course)
TBA


About Labs

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

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.


Lab and Homework Submission

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:


Grading

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.