CEP CERTIFICATE COURSE
ON
Practice of Programming using JAVA

Instructor: Rushikesh Joshi

A course offered for all campusites of IIT Bombay
Summer of 2006
Course Details
Results Announced: Grade Sheet


Deadline for Assignments 8-10 is Extended: Saturday evening 8pm
old notice: TODAY's Lecture (5th Wed) -- IRCC Hall >
old notice: Last Lecture: 5th July Wed: Lecture in IRCC Hall at 6pm
Exam on 9th morning Convo Hall 9-12 am

online submission site

Demo Programs used in Class

Lecture pdfs

online slides of Lecture 1    download pdf
download pdf of lect2 and lect3 slides
download pdf of lect4 slides
download slides used for discussion in lect5 (openoffice file)
download slides used for discussion in lect5 (pdf)
lect6 (pdf)
lecture 7 (pdf)
lecture 8 (pdf)
Lecture 9
Lecture 10
Lecture 11
Lecture 12
Lecture 13: Demos and discussions (no slides)


Latest Update: 00:50 am, Jul 6: class Object, class Class, swing components demo: Frame, Container, adding components to container, startup sequence, layout. last assignment.



Last Update: 4:20 pm, Jul 5: Assignments, Lecture 12, Demos on inner classes, static inner classes, anonymous classes, local classes, class Object, class Class
Last Update: 9:50 pm, Jul 3: lect 11, Package demos, applets, mouse capture, some gui components, NEW ASSIGNMENT on applets

people who want to do projects can skip next 3 assignments. But they will have to do this applet assignment.

Replacement class Monday at 6pm in IRCC auditorium -- done! 9:45pm July 3
Last Update: 1:13pm, July 3 -- lect 10 pdf
Last Update: 11am, July 2 -- assertion demos
Last Update: 10:30pm, July 1 -- demos: use level exception classes, break and continue family, assertions

Last Update: 10pm, June 30 -- synchronized statement; streams; lect 9 slides
Last Update: 1:00pm, June 30. -- multiple interfaces program uploaded
Last Update: 10:25pm, June 29. -- assignment 5,thread demos,lectures 7,8
visit this page Again for updates

Assignment Summary

1. Incremental Specifications of Objects (i) Interface (ii) private variables (iii) function bodies
-----------------------------------------------------

2.Recursive solution to Tower of Hanoi, count the no. of moves
-----------------------------------------------------

3.1 Matching parenthesis or Evaluating Postfix Expressions

3.2 Circular Queues: using bounded space for FIFO queues

3.3 Merge 2 sorted arrays

3.4 Binary search over an integer array

3.5 Recursive Factorial or Recursive Fibonacci function. (print no of calls made)
-----------------------------------------------------
no new assignment for lecture 5, complete all the earlier assignments.
For 3.1, you may now find some use of class String as well.
---------------------------------------------------------
4. Inheritance: Implement a collection hierarchy (stack,queue,set) with a common
interface (insert, fetch, membership test, cardinality). Test it
with a single polymorphic testing code. (Deadline: Monday evening)
----------------------------------------------------------
5. (a) Container with automatic on/off level control
(b) Update wait notify demo to implement train signaling over a shared track.
(c) Producer -- consumer problem (optional)
Deadline: Sunday noon. (hard deadline)
----------------------------------------------------------
6. (a) Pick one of your earlier programs (circular queue, collection classes) and add exception handling to it. Remove all error codes since exception handling will replace them. (b) Pick another program and add provide assert statements for member functions in the form of (i) preconditions (ii) postconditions (iii) invariants inside main control flow.
Deadline: Monday noon (hard deadline)
-----------------------------------------------------------
7 (a) Use applet demos below, modify them, beautify them, enhance them as per your wish; and then submit.
7 (b) Convert one of your programs into a package, set your package path, test it. Submit the package and a program that uses your package.
Deadline Tuesday July 4, 4 pm.
---------------------------------------------------------------
8. Modify one of your collection class and add an inner iterator to it.
Use this iterator from outside of the outer class through an interface
as described in the class. Deadline: Thursday 4pm
---------------------------------------------------------------
9. Draw any shape (square/circle/rectangle/line etc.)
and move it back and forth in your applet/gui window. (Deadline Friday 6pm)
----------------------------------------------------------------
10. Any of these: (a) Pick the graph formation program and remove all inner classes in it, clean it up, make it better structured, change properties. (b) convert the click counter applet to swing. (c) plot a function of your choice (Deadline Saturday 6pm)
---------------------------------------------------------------------
Project submission deadline: Saturday 6pm. (submit whatever stage your code gets to till this date).
---------------------------------------------------------------------

If you spot any corrections/missing files on this site: send a mail -- rkj