CS 401 - Intermediate Programming using Java

Summer 2006

Links

Course Info
Syllabus
Remote Access & Submission Procedures
Projects
Resources
Sun's Java Page
Software Tools
Eclipse
Textpad
  Instructor Lab TA
Name:PJ DillonMehmud Abliz
Email: pdillon (at) cs (dot) pitt (dot) edu mehmud (at) cs (dot) pitt (dot) edu
Phone: (412) 624-8456 (412) 624-8464
Office: 6804 SENSQ 6150 SENSQ
O.H.: T,H  10-12am
H 2:30-3pm
W 1-3pm

Meeting Times Lecture
CRN 10646
Lab
CRN 10647
Time:TH 12:30-2:15pm T 2:30-4:20pm
Location:SENSQ 5129SENSQ 6110

Announcements

  • Project 3 is now posted
  • Project 2 is now posted
  • Project 1 is now posted

Schedule

Date Lecture Reference Lab
May 16th
  • Course Introduction and Policies
  • Course Goals
  • Introduction to Computers and Java
  • Introduction to our programming environment
Lecture Notes
HelloWorld.java
LL Chapter 1
Lab 1
May 18th
  • Introduction to Java Language
  • Keywords, Identifiers, Types
  • Variables
  • Statements
  • Expressions
Java Basics Notes (Updated 5/22/06)
ex2a.java
LL Chapter 2
May 23rd
  • Using References
  • Program Input
  • Begin exploring Procedural Programming
  • Boolean Expressions
  • Control Structures: if, while
Procedural Notes(5/30/2006)
LL Chapter 3.1-3.2
LL Chapter 5

Examples:
ex3.java(Using Objects, StringBuffer)
ex4a.java(Scanner)
ex4b.java(Scanner)
ex4c.java(Command Line Args)
ex5a.java(if, while)
ex5b.java(if, while)

Lab 2
May 25th
  • Control Structures: do/while, for, switch
  • Methods and Parameters
Procedural Notes above
LL Chapter 5
LL Chapter 4.3

Examples:
ex5c.java(for, do/while)
ex5d.java(for)
ex6.java(switch, NumberFormat)

May 30th
  • Arrays
  • Recursion
Procedural Notes
LL Chapter 7
LL Chapter 11

Examples:
ex7.java(Static methods, Memory Separation)
ex8.java(Methods, Arrays, Sequential Search)
ex9.java(Methods, 2D Arrays)
ex10.java(Recursion)

Lab 3
June 1st
  • Problem Solving with Procedural Programming
  • Finish Procedural Programming
  • Intro to Object-Oriented Programming
  • Data Abstraction
  • Encapsulation
  • Composition of an Object
  • Classes and Objects
  • Instance Variables
  • Instance Methods
Procedural Notes
Object Oriented Programming Notes(6/15/06)
LL Chapter 3
LL Chapter 4

Examples:
ex11.java(Modular Design)
ex12.java(Using instance methods)

June 6th
  • Designing a class
  • Wrappers & autoboxing
  • Files & Streams
OOP notes
LL Chapter 6

Examples:
IntCircle.java
ex13.java(Using IntCircle)
MusicCD.java
CompilationCD.java
CDTest.java
(MusicCD Driver) MyInteger.java(int parsing)
ex14.java(Using MyInteger)

Lab 4
June 8th

Exam I

Topics:
  • Java Basics, including terminology
  • Expressions & Statements
  • Control Structures
  • Methods
  • Arrays
  • Recursion
  • Procedural Problem Solving
 
June 13th
  • File Streams
  • Composition
  • Inheritance
OOP notes
LL Chapter 8

Examples:
ex15.java(File input - Scanner)
ex16.java(File output)
ex17.java(Text vs. Binary file sizes)
SuperClass.java
SubClass.java(Inheritance)
ex18.java(SuperClass, SubClass driver)
RationalNumber.java
MixedNumber.java(Composition)
MixedNumber2.java(Inheritance)
ex19.java(MixedNumber driver)

Lab 5
June 15th
  • Polymorphism
  • Object Class
OOP Notes(6/20/06)
LL Chapter 9

Examples:
ex20.java
ex21.java

June 20th
  • Exceptions
  • Abstract Classes
OOP Notes
LL Chapter 10

Examples:
ex22.java
ex23.java
AbstractCD.java
MusicCD2.java
CompilationCD2.java

Lab 6
June 22nd
  • Interfaces
  • Generic Operations
  • Sorting
OOP Notes

Examples:
ex24.java(Interfaces)
SortInt.java(Selection and Insertion Sort)
ex25.java(Using SortInt)
Sorting.java(Generic Selection & Insertion Sort)
ex26.java(Using Sorting)
SortingT.java(New parameterized Sorting)
ex26T.java(Using SortingT)
AbstractCD.java(Using Comparable<AbstractCD>)

June 27th
  • Searching
  • Collections
  • Lists
  • Sets
  • Iterators
  • Queues
OOP Notes
LL Chapter 12
The Java Tutorial

Examples:
Searching.java
ex27.java(List)
ex28.java(Set)
ex28b.java(TreeSet)
ex28c.java(Queue)

Lab 7
June 29th Project 2 Help Session  
July 4th Happy 4th of July No Lab
July 6th
  • Stacks
  • Maps
  • Generics
OOP Notes
LL Chapter 12
The Java Tutorial

Examples:
ex28d.java(Stack)
ex29.java(Map)
ex30.java(Generics, Wildcard)
ex31.java(Bounded Wildcard)
ex32a.java(Generics)
ex32b.java(Generics)
ex32c.java(Generics)
ex32d.java(Generics)

July 11th

Exam II

Topics:
  • Designing Classes
  • Data Abstraction
  • Encapsulation
  • Composition
  • Inheritance
  • Abstract Classes
  • Interfaces
  • Polymorphism
  • Exception Handling
  • Wrapper Classes
  • equals(), hashCode(), compareTo()
  • Files & Streams
  • Searching & Sorting
  • Collections
  • Iterators
  Lab 8
July 13th Power Outage  
July 18th
  • Begin Event-Driving Programming
  • Graphical User Interfaces
  • JFrames
  • Components & Containers
  • JLabels
  • JButtons
  • Event Handling
  • JTextFields
  • Inner Class Definitions
  • Layout Managers
Event-Driven Notes (7/24/06)
LL Section 3.9
LL Section 4.6
LL Section 4.7
LL Section 9.7
LL Section 4.8
LL Section 5.10
LL Section 6.11

Examples:
ex33.java(JLabel)
ex33b.java(JButton)
ex33c.java(JButton with state)
ex33d.java(Inner Class Definition)
ex34.java(FlowLayout)
ex34b.java(GridLayout)
ex34c.java(BorderLayout)

Lab 9
July 20th
  • JOptionPane
  • JCheckBox
  • ItemListener
  • JRadioButton
  • JComboBox
  • Model/View/Controller Architecture
  • JList
  • JScrollPane
  • JPanel
  • Borders
  • JTextArea
EDP Notes
LL Section 5.11
LL Section 5.12
LL Section 10.8

Examples:
ex35.java(JOptionPane)
ex36.java(JCheckBox)
ex36b.java(JRadioButton)
ex36c.java(JComboBox)
ex37.java(JList)
ex37b.java(JList with Model)
ex38.java(JPanel/Borders)

July 25th
  • Mouse Events
  • Adapter Classes
  • Java GUI Processing
  • Custom Painting
  • Menus
  • Popup Menus
  • JColorChooser, JFileChooser
  • Internal Frames
EDP Notes (7/24/06)

Examples:
ex39.java(MouseEvent, JTextArea)
ex40.java(Custom JPanel)
ex41.java(GeneralPath-Star)
ex42.java(Menus)
ex42b.java(Popup Menus)
ex42c.java(JColorChooser, JFileChooser)
ex43.java(JSlider)
ex44.java(JDesktopPane, JInternalFrame)
ex45.java(JSplitPane)
ex46.java(JTabbedPane)

Lab 10
July 27th
  • Threads
  • Networking

Examples:
ex47.java(Thread Subclass)
ex47b.java(Implements Runnable)
ex48.java(Unprotected Shared Memory)
ex49.java(Unsynced Producer/Consumer)
ex49b.java(wait/notify P/C)
ex49c.java(lock/condition P/C)
MyClient.java(Client)
MyServer.java(Simple Server)
MyServer2.java(Multiclient server)
MyServer3.java(Multithreaded server
MyClients.java(Multiple client simulator)
MyServer4.java(Message Passing server)
MyClients2.java(Multiple client message passing sim)

August 1st Exam III    
August 3rd