INFSCI 0017 - Fundamentals of Object-Oriented Programming (Fall 2013)

Textbook:

Big Java: Early Objects, 5th Edition

Note: this textbook is required for this course

Objectives:

Upon successful completion of this course, the student will be able to:

  1. Understand and make proper use of core programming concepts such as data types, operators, and control structures in Java
  2. Effectively use Eclipse IDE (Integrated Development Environment) to develop and manage Java software projects
  3. Write human-readable code that complies with widely-accepted coding style guidelines
  4. Develop programs that appropriately utilize object-oriented concepts such as abstract classes, inheritance, interfaces and polymorphism
  5. Write effective in-code comments and generate documentation using JavaDoc tools
  6. Employ effective unit-testing techniques using JUnit testing framework

Course Schedule (tentative, subject to change):
Week Topic(s) Details
1 Introduction and overview Introduction to course
Java overview
Introduction to Eclipse IDE
“Hello World” program
2 Variables Variables (math vs. programming)
Data types
Brief introduction to objects (classes vs. objects)
Code documentation/Introduction to JavaDocs
3 Control structures If/else
Switch/case
4 Iteration/Loops For loop
While loop
Do/While loop
Loop nesting
5 Functions Code organization
Functions
Variable scope
Function parameters
Introduction to unit tests with JUnit
6 Arrays Lists in Java
Arrays
Brief introduction to ArrayLists and Hash Tables
7 In-class lab Midterm preparation
8 Midterm  
9 Objects Introduction to objects
Classes vs. objects
Properties
Methods
Visibility
10 In-class lab Designing objects
11 ArrayLists
Object relationships
Inheritance
Association
Aggregation
Composition
12 Java UI tools  
13 Advanced topics Introduction to recursion
Overview of JDBC + Databases
14 Thanksgiving Break  
15 In-class lab Help/questions with final project
16 Final project due  

Quizzes:

Each class will begin with a short 5-question quiz. Each quiz will be worth 20 points. All questions will be based on class lectures and reading assignments from the previous week. There will be no make-up quizzes, but at the end of the semester I will drop one lowest quiz grade.

Take-Home Assignments:

All take-home assignments, the midterm and the final project will be individual – you are not allowed to work in teams. Assignments will be graded as follows:

Submission Guidelines:

All assignments must be submitted via email sent to the course instructor (dmb72@pitt.edu). The due date for all programming assignment is the end of the day (11:59pm) BEFORE the lecture. Each project must be zipped into a single file using standard .ZIP format. That file will contain all source code, documentation and any external libraries used in your project. The final zipped file must be titled with the last name of the author, number of the assignment and course number separated by underscores. For example, if your last name is Doe and you are submitting assignment 2, your final file should be named Doe_Assignment2_INFSCI0007.zip. You will lose 2 points for every submission that does not follow this naming convention. Name of the course (INFSCI0017) and the name of the assignment you are submitting must also be in the email subject line.

Late Submissions:

Projects/assignments submitted after due date will be accepted, but your overall grade for that project/assignment will be reduced by 10% of the grade for every business day after the submission deadline. For example, if you will submit your work one week late, you will lose 50% of the grade.

Grading Policy:
  1. Participation/In-class exercises: 10%
  2. Quizzes: 20%
  3. Assignments: 30%
  4. Midterm project: 20%
  5. Final project: 20%
Academic Integrity:

Cheating/plagiarism will not be tolerated. All work must be your own, unless collaboration is specifically and explicitly permitted as in the course group project. Any unauthorized collaboration or copying will at minimum result in no credit for the affected assignment and may be subject to further action under the University Guidelines for Academic Integrity (http://www.provost.pitt.edu/info/ai1.html). You may incorporate excerpts from publications by other authors, but they must be clearly marked as quotations and properly attributed. You may discuss your ideas with others, but all substantive writing and ideas must be your own, or else be explicitly attributed to another, using a citation sufficiently detailed for someone else to easily locate your source.