CSc 413
Software Development
(Fall 2002)


Professor : Ilmi Yoon
Lec. session III
TTH 12:35 - 1:50 pm
Lec. Location:
TH 432
Lec. session IV
TTH 2:10 - 3:35 pm
Lec. Location:
HSS 302
Office Phone
(415) 338 - 2335
Office #:
TH 970
Office Fax
(415) 338 - 6136
Office Hours:
T W TH 
11:00 - 12:00 pm
Email Address
yoon@cs.sfsu.edu
Mailing Address
Computer Science Department 
San Francisco State University 
1600 Holloway Avenue
San Francisco, CA 94132

Course Description

The focus of this course is to teach you the fundamentals of the Software Developments by practice. It will cover the principals and concepts of software development, Object-oriented programming, fundamental structures and classes of Java, SWING components, and event handling programming.  Term project is building a XHTML browser (individual project).  Therefore, course broadly but lightly covers XML, XHTML, DTD, Schema, Parser, HTTP, socket programming, CSS, XSL to be able to build the browser.
 

Course Web page
http://tlaloc.sfsu.edu/~yoon/csc413

prerequisites
Grade C or better in CSc313 and MATH 330

TEXT
Introduction to JAVA Programming, Y. Daniel Liang, 3rd edition PH PTR

Recommended Readings
Core Java 2 Volume I - Fundamentals, C. Horstmann and G. Cornell, PH PTR
Core SWING Advanced PRogramming, Kim Topley, PH PTR
Understanding Object-Oriented Programming with Java, Budd, T., Addison-Wesley, 2000
 
Schedule of Lecture 
(The schedule is subject to change, especially midterm exam and due days of projects)
Week
Topic
Readings
Course Notes
Misc.

(starting from 8/29)
Introduction to Software Development & Object Oriented Programming (OOP)   Project 1 - Simple Java Programs Project 1 with full text - Thanks Seto!  

(starting from 9/3)
Introduction to Java
(Characteristics and Programming Env)
Exceptions and Debugging
Chater 1  Lecture slides 1  
3
(starting from 9/10)
Fundamental Programming Structures in Java Chapter 2 & 3 & 4
JBuilder 7.0 Download
Example Java files
Java 1.3 API
Lecture slides ch 2
Lecture slides ch 3
Lecture slides ch 4
 

(starting from 9/17)
Objects and Classes Chapter 5
Example Java Code from Liang's book chapter 4 ~ 9 & 15
Project 2
Hints for project 2 [MSWORD]
Hints for project 2 [HTML]
 

(starting from 9/24)
Inheritance and Interface Chapter 6 & 7  Lecture slides ch 5 Project 1 Due-moved

(starting from 10/1)
Streams and Files Chapter 15  Lecture slides ch 6
Lecture slides ch 7
Project 1 Due Day

(starting from 10/8)
XML & XHML
XHML Browser - Term Project Description
XML note [Intro]
XML note [DOM]
XML note [SAX]
Project 3 - updated version
 

(starting from 10/15)
XML parser
(DOM & SAX parser)

Project 2 Grade (Section 3)
Project 2 Grade (Section 4)

Best Program [Part I]  
Lecture slides ch 15 Project 2 Due

starting from 10/22)
Midterm Review and Exam Sample Questions      
10 
(starting from 10/29)
Graphics Programming Chapter 8  Lecture slides ch 8  
11 
(starting from 11/5)
Event Handling Chapter 8

Midterm Grade (Section 3)
Midterm Grade (Section 4)

Project 4  
12 
(starting from 11/12)
User Interface Components with Swing Chapter 9 Lecture slides ch 9
Project 4 Description
Project 3 Due day is moved to Nov. 19
13 
(starting from 11/19)
User Interface Components with Swing, Applets Chapter 10 Lecture slides ch 10  
14 
(starting from 11/26)
Exceptions and Debugging
Multithreading
Chapter 11 & 13  Lecture slides ch 11
Lecture slides ch 13
Chapter 13 Thread Examples
 
15 
(starting from 12/3)
Object Oriented Design using UML      
16 
(starting from 12/10)
Term Project Class Presentation Signup Sheet
  1. textField with enter key example
  2. TestPanels. java - example with image handling and JFileChooser class
  3. Thread Test Examples
  4. Chapter 13 Thread Examples
  5. Default.css
Final Sample Questions
Project 3 Grade (Section 3)
Project 3 Grade (Section 4)


Final Exam Grade (Section 3)
Final Exam Grade (Section 4)


Final Letter Grade (Section 3)
Final Letter Grade (Section 4)

Project 4 Due

Exams
The final exam is closed book, closed note. Makeup exams will not be given. Absence due to a serious illness will be an acceptable reason for missing an exam, and the final grade will be scaled accordingly.
Final exam is
    on December 17 Tuesday, 10:45 ~ 1:15 pm (Section 3) and
    on December 19 Thursday 1:30 ~ 4:00 pm (Section 4) at regular classroom.
Assignments
All projects are individual projects.  Open discussion is encouraged, but sharing source code is considered as a cheating!!!

Late policy. You may turn in a program up to 5 days late for a penalty of 50 points of the available points (10 points each day). So, for example, if you would have gotten a 70/100 and submitted 2 days late, you will get 50/100. For programs due on Friday, Monday will be considered two days late. After the 5 day grace period, a late program receives no credit.
Only programs that are working correctly will be graded. Pretty print (indentation, etc) and comment programs appropriately. Grades will be based on correctness, readability, the appropriate applications of object oriented techniques, efficiency, etc. You must complete the programs to receive a grade of C or better.

CSC413 Mailing List:
I will frequently make announcements (change due dates, etc) will will not appear in print. You are responsible for all announcements made in class!!!! I will also announce messages through mailing list. I use your sfsu account as a default mailing address. If you don't receive welcome e-mail from me or like to change to your favorite account, please mail to cs413@sfsu.edu specifying your current mailing address, your name and your favorite account.

All assignment should be submitted to cs413@sfsu.edu as an attachment. (Only .java files. Never include .class files)
Grading

The following is the relative weight of each part of the course work. At the end of the semester, you will have a score out of 100 percent. This score will be used in a class curve to arrive at a letter grade.

Projects I & II (10% each) 20% 
Projects III & IV (15% each) 30%
Midterm Exam 20%
Final Exam 30%

Software:

You are free to choose any Java Development Kit (jdk) in the 1.1.x series upto 1.3. Free PC and Mac jdk implementations are available from Sun at http://www.javasoft.com.  The bookstore also has commercial jdk development environment (e.g., Symantec's Visual Cafe - http://www.symantec.com). Please check Sci 254 is our department lab space and all of you will get an account at Unicorn. I strongly recommend to use the machines at the lab.