CS420 -- Advanced (Java) Programming


Lecture timings

Tuesday - 9.40 am - 11.10 am.
Wednesday - 8.50 am - 9.30 am.
Friday - 8.00 am - 9.30 am.

Instructor

Umar Kalim
Address: R#15, AB#3, St#8.
E-mail: umar [dot] kalim [at the rate] niit.edu.pk
Tel: 9280439 x 134

Office Hours

One hour after the lecture on Friday.


Course Description and Contents | Announcements | Lecture Notes (Most recent) | Reading List

Course description

The course is aimed towards introducing advanced methods of programming. Starting from writing maintainable and extensible code, methods of debugging, logging, profiling to implementing design patterns, developing software for enterprise applications; this course aims at introducing Java technologies such as J2EE - Servlets, JSP, Struts, JSF, JDBC, Portlets etc.

Course contents

Upon completion of the course, students will have a thorough understanding of selected topics among the following:

The list of topics may be subject to change.

Text & Reference books

There is no text book for this course. Most of the course work will be handled through printed and online reference material, lecture notes and class handouts.

Grading Criteria

One Hour Tests (OHT) : 15%
Assignments : 15%
Quizzes : 10%
Class Participation: 5%
Semester Project : 20%
End Semester Examination (ESE) : 35%

Quiz policy (at least 3)

Quizzes will be un-announced as well as announced.
Missed quizzes cannot be retaken.
All quizzes will count towards the total.

Assignments

One assignment will be given after completion of each major topic.
Late assignments will not be accepted / graded.
All assignments will count towards the total.

OHT/ESE Grading Policy

Relative marking, standard deviation based on the class average.

One Hour Test policy

There will be 2 one hour tests.
The portion of syllabus covered in 1st one-hour test will not be tested in the 2nd one hour test.

Group Mail Address

acn-bit@googlegroups.com

Google Groups Subscribe to Advanced Java Programming - BIT 6
Email:
Browse Archives at groups.google.com

Announcements


Assignments


Lecture notes


Week Date (2007) Lecture topic (the text book is to be consulted) Miscellaneous Pointers Reading before lecture Assignment
1
18/09
Course details, Introduction and writing maintainable code Writing clean code, Programming for tomorrow, Code conventions for Java, How to Write Doc Comments for the Javadoc Tool   [Reading assignment] Java Style, Handout-1 UNIX/Linux command reference
 
19/09
Review of Java Fundamentals Moore's Law, IBM Java JIT, Java HotSpot, Comparison of C# and Java, Java Tutorials, Collections   [Reading assignment] Handout-2 Java-1, Handout-3-OOP, Handout-4-OOP in Java, Handout-5-Java-features, Handout-6-OOP-Design, Annotations, Handout-7-Collections, Handout-8-OOP-Design
 
21/09
Revisiting Java Fundamentals   Object Serialization, Java I/O, Serialization FAQs   [Reading assignment] Handout-9-Serialziation
2
25/09
Review Exam
 
26/09
Revisiting Java Fundamentals   Object Serialization, Java I/O, Serialization FAQs [Reading]
Handout-9
 
 
28/09
Threads Thread, Mutual Exclusion, Java, Daemon threads   [Reading assignment] Handout-10-Threads, Handout-11-Threads-2, Handout-12-Threads-3
3
02/10
Programming Threads Concurrency Tutorial    
 
03/10
Threads & Synchronization   Synchronization, Thread Safety, Non-blocking synchronization   [Programming assignment 1 - due: 09/10/07] Problem statement, Associated code
 
05/10
Revisiting Synchronization   More on synchronization    
4
09/10
Programming Threads & Synchronization    
 
10/10
SQL & JDBC JDBC, JDBC Drivers, Prepared Statements   [Reading assignment] Accessing databases with JDBC
5
15/10
Eid-ul-fitr Holidays (12-16 October, 2007)
6
17/10
Revisiting JDBC   Stored Procedures [II], Transactions, ResultSet, JDBC Fundamentals   [Reading assignment] Accessing databases with JDBC
 
19/10
Logging using Log4j Log4j, Overview, Why, what & how?    
7
23/10
Revisiting Programming Threads & Synchronization    
 
24/10
Introduction to J2EE Java EE, J2EE [II], Java EE Tutorial   [Reading assignment] Chapter 1 - Designing EE Applications
 
26/10
Web Application Architecture Web Application - Getting Started    
8
30/10
SQL & JDBC Programming SQL, MySQL, JDBC Basics, JDBC-MySQL driver [cached], sample code, sample data   Using Joins and Transactions
 
31/10
Revisiting Web Application Architecture Web Application - Getting Started    
 
02/11
J2EE ~ Servlet Basics Java Servlet, SUN Servlet Technology, SUN Tutorial (old)    
9
4/11
OHT-1
10
16/11
OHT-1 - Discussion - Post OHT results [awardlist] [graph]
11
20/11
Revisiting JDBC Programming SQL, JDBC-MySQL driver [cached 661KB], Log4j-1.2.15 library [cached 383KB]   JDBC Advanced Topics [Scrollable ResultSet] [Batch Updates] [SQL3 datatypes]
 
21/11
Programming Servlets   SUN Servlet Technology    
 
23/11
Revisiting Programming Servlets        
12
27/11
Programming Servlets Filtering requests [Reading] Servlet Lifecycle [Reading assignment] Session Tracking
 
28/11
Discussion ~ Semester Assignments proposal template    
 
30/11
J2EE ~ JSP Basics JSP ~ Java EE 5 Tutorial chapter [5] [6]    
13
04/12
Programming JSP Buffering, Handling Errors, misc resources [Reading] JSP Lifecycle Using shared objects
 
05/12
Revisiting JSP Basics JSP coding convention    
 
07/12
Revisiting JSP Basics, Programming JSP (continued)      
14
11/12
Programming JSP (continued)      
 
12/12
J2EE ~ JSP & JavaBeans Using JavaBeans [cached], tutorial, misc articles   [Reading assignment] Handling Cookies [cached]
 
15/12
Model View Controller (MVC)      
15
18/12
J2EE ~ MVC (JSP, Servlets and JavaBeans) Understanding MVC    
 
19/12
Revisiting MVC MVC [cached]    
 
20/12
Eid-ul-azha Holidays (20-25 December, 2007)
16
26/12
[26/12 - 01/01] OHT-2 - Post OHT 2 results [awardlist] [graph]
17
01/01
[01/01 - 06/01] Lectures rescheduled
18
08/01
Revisiting MVC (JSP, Servlets and JavaBeans) Understanding MVC   [Reading] JavaBeans
 
09/01
You & Your Research - Richard Hamming        
 
11/01
J2EE ~ JSP 2.0 - Expression Language EL (sun), CoreServlets EL [cached]    
19
15/01
Relieved for Semester Assignments        
 
16/01
Revisiting J2EE ~ JSP 2.0 - Expression Language     [Reading] Hibernate - getting started, tutorial [I] [II] [III]
 
18/01
Revisiting J2EE ~ JSP 2.0 - Expression Language      
20
22/01
Progress Review of Semester Assignments        
 
23/01
J2EE ~ JSP Custom Tags Developing Custom Tags    
 
25/01
Revisiting JSP Custom Tags JavaServer Pages Standard Tag Library (JSTL)    
21
29/01
Java Optimization ~ Basics JVM Specification, Java HotSpot VM   [Reading] 30 ways to improve the performance of Java programs by Glen McCluskey, A practical guide for squeezing every drop of performance out of your Java applications
30/02
Semester Assignments ~ Demonstrations        
 
01/02
Invited Lecture ~ Apache Struts ~ by Mr. Sajjad Rizvi Struts tutorial, Struts Framework    
 
07/02
Invited Lecture ~ J2ME ~ by Mr. Shahryar Khan J2ME    
22
09/02
End Semester Exam - Post ESE results [awardlist] [graph]

Last updated: 13th of February, 2008.