Java Programming (Fall Semester, 2009)

*"Student-teacher relationships are based on trust. Acts, which violate this trust, undermine the educational process. Your classmates and the instructor will not tolerate violations of academic integrity"*
Course Schedule & Lecture Notes
* [Sept. 03] 강의 소개, 자바 소개 (1장)
* [Sept. 10] 자바 개발 도구 실습, 자바 프로그래밍 기초 (2장, 4장, Homework #1)
* [Sept. 17] 변수, 연산자, 수식, 조건, 반복 (5장, 6장-1)
* [Sept. 24] 객체 지향 소개 및 클래스 작성 (6장-2, 7장, 8장, Homework #2)
* [Oct. 01] (No Lecture, The Korean Thanksgiving Day)
* [Oct. 08] 클래스 작성 및 배열 (09장, 10장, Homework #3, Term Project 소개)
* [Oct. 15] 상속 (11장)
* [Oct. 22] 다형성, 인터페이스 (12장)
* [Oct. 29] 패키지 (13장-1, 13장-2), Homework #4
* [Nov. 05] 예외 처리 (15장)
* [Nov. 13, 저녁 7시] *중간 고사* (시험 범위: 1장 ~ 13장, 15장)
* [Nov. 19] 제네릭과 컬렉션 (14장), 쓰레드 및 스트림과 입출력 (16장, 24장) 14장, 16장-1, MyTest.java
* [Nov. 26] 그래픽 사용자 인터페이스 및 이벤트 처리 (17장, 18장) Sources(17~29) , 강의자료 17~27
* [Dec. 03] 배치 관리자와 스윙 컴포넌트 (19장, 20장) Image Test-1. Image Test-2, Homework #5
* [Dec. 10] 기타 및 네트워크 프로그래밍 보조자료
* [Dec. 17] *기말 고사*
Overview
* Lecturer: Youn-Hee Han (Rm. B303, Tel: 560-1486, yhhan@kut.ac.kr)
* Classes: Thursday (14:00-18:00pm)
* Lecture Room: A-207
* TA: 김용환 (cherish@kut.ac.kr)
* Course Board: http://apps.thinkonweb.com/labbbs/list.link?bn=JP2009_2
* Course Description:
Java is one of the most popular programming languages. It is an Object Oriented, portable, fast and rich language. Java provides many services out of the box (e.g. memory management, security) which help developers be more productive. The course is intended for anyone who wants to enter the ‘Java World'. This course will cover the fundamentals of software development using the Java Language. The process of software development will be discussed to include: designing, writing the source code, compiling, linking, and executing. Data types, arithmetic/logical expressions, debugging, looping, branching, modularization, static and dynamic memory allocation, classes and objects will be discussed and practiced in class projects. The course includes many examples and hands-on exercises through which the material is demonstrated and practiced.
Lecture Topics

* distinguish OO programming from declarative and procedural ones
* describe the Java Virtual Machine architecture and behavior
* define and exemplify secure classes and inner classes, objects and message passing
* understand and implement applets, servlets, and thread save programs
* compare and contrast inheritance and polymorphism
* compare and contrast Java interfaces, abstract classes, and classes
* write well-structured and documented OO applications with event-driven graphical user interfaces and socket-based networking
* master basic JAVA library and tools at a depth that is sufficient to solve real-world programming problems

References

* 주교재: *Power Java, 천인국, 하상호, 인피니티북스, 2009년 6월, ISBN: 9788992649292*
* 부교재
* [1] Java Concepts, Forth Edition, Cay Horstmann, John Wiley & Sons, Inc., 2005, ISBN 0-471-69704-4
* [2] Thinking in Java, 3rd Edition, Bruce Eckel, Prentice Hall PTR; 3 edition, 2002, ISBN 0131002872

Logistics

* Attendance - one class absence will result in the deduction of two points out of 100 points. Five absences will not result in ten points deduction, but "failure" (i.e., grade 'F') in this course.
* Exam - there will be midterm exam and final exam for the evaluation of the knowledge learned from the class.
* Homework - much intensive homework will be set. Any cheating (or copying) will result in grade 'F'.
* Team-based Term Project - Project work is done in groups. Members of the same group have free access to each other's code (and are encouraged to pair-program). Communications with anyone outside of your group are limited to general discussion only, no code should be shared between groups.
Evaluation

* Attendance (10%), Homework (20%), Term Project (30%), Midterm exam (40%)