CS 207 Programming II

This couse will provide programming skills that go beyond the basics into object oriented programming as well as to provide you with standard techniques to solve common programming problems that arise in everyday programs such as sorting, working with files and the web, etc. At the end of the couse you should be able to use these techniques effectively as well as to be proficient in researching solutions to other, more complex, programming challenges.

Instructor:
Francisco Iacobelli
Meetings:
1:40 - 2:55 pm
At:
FA 108
Website:
The course will be on blackboard
Textbook:
JAVA: An introduction to problem solving and programming.6th Edition by Walter Savitch, Prentice Hall, 2010. ISBN-10: 0-13-216270-9
Office Hours:
Tu & Th: 3:00pm-5:00pm, Wed: 4:00pm - 6:00pm in person and online (chat)
Must haves:
You must create an account in StackOverflow and provide me with your ID number by the first class.



Week

Topic, Objectives and Readings

Assignment & Materials




1
  • Topic: Review++: Review of basic programming and introduction to functions
  • Objective: Demonstrate proficiency with basic programming techniques, including functions
  • Contents: loops, conditionals, arithmetic and functions. Following specs and why they are important.
  • Readings: Chapters 1 – 4 of the book




2
  • Topic: Classes and Methods
  • Objective: Demonstrate understanding of objects, its basic components and the main method
  • Contents: Objects, Memory/references, classes, member variables and methods, and the public and private modifier.
  • Readings: Chapter 5: Defining Classes and Methods, Encapsulation, Objects.

  • Assignment: Create an enhanced Array object that can provide statistics such as sum, max, min and average.
  • Assignment: Create an object that represents a contact and then another object that represents a contact book.
  • Quiz: Trace a program




3
  • Topic: Classes and Methods II
  • Objective: Demonstrate understanding of objects, how they are built and utilized
  • Contents: Objects, private, public and package modifiers; static vs. non-static variables
  • Readings: Chapter 6: Constructors, Static Variables and Methods, Overloading, Packages.

  • Assignment: Create classes for three Robots that act differently depending on how you treat them. Have the user interact with them until they are happy.
  • Quiz: Trace a program




4
  • Topic: Searching and Sorting
  • Objective: Evaluate searching and sorting techniques; Show proficiency implementing bubble sort and binary search.
  • Contents: Bubble, insertion and selection sort. Sequential and binary search.
  • Readings: Chapter 7: Arrays, in Classes and Methods, Searching, Sorting, MultiDimensional.

  • Assignment: Implement a sort algorithm comparison as well as a search comparison. How many comparisons are performed on average?
  • Assignment Implement an object that is able to sort an array.




5
  • Topic: Two Dimensional Arrays
  • Objective: Demonstrate proficiency utilizing two dimensional arrays
  • Contents: 2D arrays, checking for boundaries and contents of cells
  • Readings: Chapter 7.

  • Assignment: Implement Bubble sort on a two dimensional array. This algorithm should sort the 2d array given a column to sort on.
  • Assignment: Implement the minesweeper game.
  • Quiz: Trace a program




6
  • Topic: Recursion
  • Objective: Demonstrate understanding of recursion as a programming technique
  • Contents: Recursion: fibbonacci, binary search, factorial. Do the same without recursion.
  • Readings: Chapter 11: Recursion Basics

  • Assignment: TBD. (Binary search with an array of objects that represents a contact. Basically enhance the search function of your ContactBook object)
  • Midterm Quiz




7
  • Topic: Strings and Wrapper Classes
  • Objective: Demonstrate understanding of wrapper objects (Integers, Characters, Double, Math) and proficiency using Strings
  • Contents: When to use wrapper classes; String operations to find and parse text
  • Readings:

  • Assignment: Create an object that given a line of an HTML String it extracts the text and the tag.
  • Assignment: Have the user enter an arithmetic operation and perform the computation.




8
  • Topic: Errors and Exception Handling
  • Objective: Be able to handle exceptions correctly when necessary.
  • Contents: try,catch,finally; throws. When to throw and when to catch.
  • Readings: Chapter 9.1: Exception Handling.

  • Assignment: Handle the input of numbers
  • Quiz.




9
  • Topic: Input and Output
  • Objective: Demonstrate understanding of input and output and its uses
  • Contents: Reading and writing text files, reading and parsing from the web.
  • Readings: Chapter 10.1-10.4: File I/O. Supplementary material I/O from the web.

  • Assignment: Read contacts from a file and create an address book.
  • Assignment: Allow the contact book to add new contacts and delete contacts. Then save.
  • Assignment: Have an object that reads the songs in a playlist and also reads their information from MusicBrainz




10
  • Topic: Inheritance and Polymorphism
  • Objective: Demonstrate understanding of the effects of inheritance in java objects.
  • Contents: Inheritance, protected variables, instanceof, extends.
  • Readings: Chapter 8: Inheritance, Polymorphism.

  • Assignment: TBD.




11
  • Topic: Inheritance and Polymorphism II
  • Objective: Demonstrate understanding of Interfaces and Abstract classes.
  • Contents: Interfaces, Abstract classes, classes with inheritance via extends and implements.
  • Readings: Chapter 8: Inheritance, Polymorphism, Interfaces, and Abstract Classes.

  • Assignment: TBD.




12
  • Topic: GUI Programming
  • Objective: Demonstrate understanding of basic GUI objects, layouts.
  • Contents: Swing, AWT, JFrame, JTextArea, JButton, JLabel.
  • Readings: TBD

  • Assignment: TBD.




13
  • Topic: GUI Programming II
  • Objective: Show proficiency with GUI objects and demonstrate understanding of event handling.
  • Contents: Events, Event handlers, inner classes, file chooser. Intro to delegate pattern.
  • Readings: .

  • Assignment: TBD.




14
  • Topic: Linked Lists
  • Objective: Show understanding of this basic data structure: The linked list
  • Contents: Linked lists: adding, removing and moving elements in a linked list
  • Readings:

  • Assignment: TBD.




15
  • Topic: Advanced topics
  • Objective: Demonstrate understanding of the MVC pattern and demonstrate basic understanding of the delegate pattern
  • Contents: Interfaces applied to GUIs, MVC and delegate pattern in GUIs.
  • Readings: Java SE Application Design with MVC

  • Assignment: TBD.







The fine print

This syllabus is a living document. It is subject to change. If you want to look at the syllabus always download the latest copy from the website.

Also, you will need to reach a quarterly change of reputation of at least 20 to get an A on the Stack Overflow component of the course.

Grading



Item Weight


Assignments Average 20%
Quiz Average 15%
Midterm Quiz 20%
Stack Overflow Score 15%
Final Exam 30%





Weighted AverageCourse Grade



90% or higher A
80% – 89% B
70% – 79% C
60% – 69% D
0% – 59% F



NOTE: You MUST receive at least 60% on the Common Final Exam in order to receive a grade of ”C” or higher for the course. If you do not, you will receive a ”D” or an ”F” for the course, depending on your Weighted Average.

Every Class

Come prepared, google the topics, read the book and, of course, do the homework on your own.

Late Work Policy

Each day1 that your work is late the maximum possible grade decreases by one letter point.

Academic Integrity

Students are required to abide by Northeastern Illinois University’s academic integrity policy. Failure to adhere to this policy will likely result in a failing grade in the class and / or expulsion from the University.

Web Link to Emergency Information

It is recognized that a safe university environment is a shared responsibility of faculty, staff, and students, all of whom are expected to familiarize themselves with and cooperate with emergency procedures. Emergency Procedures and Safety Information can be found on NEIUport on the MyNEIU tab or at:

Main campus:
http://www.neiu.edu/~neiutemp/Emergency_Procedures/MainCampus/
El Centro(English version):
http://www.neiu.edu/~neiutemp/Emergency_Procedures/ElCentro/
El Centro(Spanish version):
http://www.neiu.edu/~neiutemp/Emergency_Procedures/ElCentro_Spanish/
CCICS:
http://www.neiu.edu/~neiutemp/Emergency_Procedures/CCICS/
Chicago Teachers Center(CTC):
http://www.neiu.edu/~neiutemp/Emergency_Procedures/CTC/
University Center at Grayslake:
http://ucenter.ehclients.com/pdfs/UCLCEmergencyPreparedness.pdf