SW 408 Java for Programmers ISyllabus
Office Hours: In classroom 5:30-6:00 p.m. before class and e-mail for assistance at any time.
Phone: (203) 254-4147
E-mail: WebCT e-mail account and mmarquis@stagweb.fairfield.edu
Fax: (203) 254-4013
Prerequisite: Significant programming experience, CS132 or CS134.
Textbook: Java How to Program, Six Edition, Deitel & Deitel, Prentice Hall, ISBN 0-13-148398-6
Additional References: 1 - Sun's Application Programming Interface, available on the Sun Java Website.
2 - The Complete Reference Java2, Herbert Schildt, McGraw Hill/Osborne, Fifth Edition.
3 - Java for Programmers, Douglas A. Lyon, Prentice Hall, 2004.
4 - Java, Java, Java, R.Morelli, Prentice Hall, 2000.
Computer Usage: Students MUST have access to a computer with a Java compiler and an ISP provider. The version of Java to be used is jdk1.5.0_04 or later, which can be downloaded free of charge from the http://java.sun.com web site. Eclipse 3.1 is the mandatory Integrated Development Environment (IDE) to be used for this course. It can be downloaded free of charge from the http://www.eclipse.org web site.
The material for this course is available on two forums:
- In-class lectures
- The WebCT site
All students have a WebCT account.
All material: lectures, examples, and homework assignment, are on the WebCT site. The lectures can be viewed on the site or downloaded from it. The examples and homework assignments can be downloaded from the site. Students are responsible for obtaining homework assignments each week from WebCT.
The WebCT e-mail feature is the primary electronic communication medium for this course. Homework submittals, questions, or other online communication will be done using WebCT e-mail. Similarly, students are responsible for checking their WebCT e-mail account daily for possible message from the instructor.
A file compressor/de-compressor (e.g., WinZip) is required. It can also be downloaded from the web. The Windows XP Operating System (OS) has its own compressor/de-compressor, so WinZip is unnecessary if that is your OS. Microsoft PowerPoint and Word are also needed.
Course Notes: On WebCT.
Course Description: This programming course introduces the Java fundamentals to experienced programmers. Topics include the Java elements: objects, classes, variables, methods, syntax, reserved words, data types, operators, control structures, and container data structures. The course views object-oriented programming as integral, teaching it throughout. Accordingly, it includes the concepts of encapsulation, inheritance, polymorphism, packages, interfaces, and inner classes. The course teaches screen design using classes and graphics from Sun's Application Programming Interface (API) and includes data handling concepts such as input from the keyboard, output to the screen, input from files, and output to files. The course also introduces the concept of multi-threading in preparation for follow-on studies. Lab included. Three credits.
Course Objective:
- To enable students to write computer code in Java.
- To provide the means to leverage object-oriented programming.
- To prepare the student for advanced courses in Java.
The initial objective of SW408 is to introduce basic elements of the Java language, which permit the writing and documentation of computer programs. The concepts of object-oriented programming and design are an integral part of the course and will be taught throughout. The ultimate objective is to provide the student with the knowledge and ability to write moderately complex, object-oriented computer programs that take full advantage of Java's concepts and capabilities. This objective is aimed at the specific computer skills and capabilities delineated in Outcome.
Student Activities: Learning a new computer language is very much a hands-on activity, which cannot be learned from lectures or textbook reading alone. The real learning results from the laboratory trials and the homework assignments. To achieve the course objectives, the student must have good class attendance and participation; conduct the computer programming tasks during the laboratory periods as well as the assigned homework. The student should expect to take at least twice the class time for the required reading, studies, and assignments.
Outcome: Class after class the student will be able to write progressively more complex computer code using Java technology. Upon completion of the course the student will be able to write computer code, which manipulates complex algorithms that involve selection control, repetition, and recursion. The code also reflects the design of functional and aesthetic displays on the computer screen using several graphical user interface components. The student will be able to add color to the screen display, to control the type and size of text characters, and to draw shapes on the screen. The computer programs will respond to events or activities performed to that screen via the push of a button, a mouse click, or a keyboard input. The student will be able to input data from the keyboard and from computer files which he/she will learn to access. And he will be able to output data to the screen and to computer data files. The student will be able to prevent some errors from terminating programs using recovery techniques. And the student will also be able to research the Java classes in Sun's Application Programming Interface. Homework and the exams are the primary evaluation tools for the Outcome.
Homework: Homework assignments are due before the beginning of the class following their assignments. They are to be placed in a single folder, which is converted to a zip file, and then submitted via WebCT. The folder will contain the source code file(s) (.java extension) as well as any other file associated with the assignment, as specified in the assignment. Timely homework submittals are strongly encouraged to permit immediate corrective actions for poorly performed or misunderstood assignments. Re-submittal of poor homework usually results in higher grades.
Course Requirements: The schedule of activities and topics to be covered in each class are outlined in the following slides. Some of the lessons shown will be presented in a single class session while others will take two class periods. They will be presented in the order shown. The student should read the syllabus and familiarize himself with the IDE before proceeding with lessons.
Lesson 1 - Introduction to Java Programming
Chapters 1 - 3
Java Technology
Sun's Java API
Program Applications
Syntax (& case sensitivity)
Eclipse IDE
Objects & Classes
Reserved Words
Class Structure
Method Structure
Data Types & Wrappers
Input and Output techniques
Escape Sequences
Number Systems
Operators
Documentation - JavaDoc
Lesson 2 - Java Programming Basics
Chapters 4 - 6
Variables
Literals
Methods - Definition & Calling
- Structure
- Special: main, constructors, Math
- Overloaded
- Static
- Recursion
Static Import statement
Selection Controls: if, else, switch
Repetition Controls: for, while, do
Break & Continue
Default Initial Values
Lesson 3 - Modifiers, Casting, and Arrays
Chapter 7, 8.9, 17.3, 19.5
Modifiers
Widening Conversions
Casting
Data Structures: Arrays, ArrayList, Vector
Passing variables
Enhanced "for" loops
AutoBoxing and Auto-UnBoxing
Enum
Lesson 4 - Strings, Characters, & Generics
Chapter 29
String Class
String Literals
StringBuffer
StringTokenizer
Characters
Chapter 18 - Generics
Lesson 5 - Object-Based Programming I
Chapters 8 -10
this
Packages
Abstract classes
Interfaces
Adapter classes
Lesson 6 - Object-Based Programming II
Inner Classes
Get & set methods
Encapsulation, Inheritance, & Polymorphism
O-O Example & Project
Lesson 7 - Graphical User Interfaces
Chapter 11
Components: Frames, Labels, Buttons, Fields, Areas, Lists, Panels, Dialog, RadioBox, CheckBox, ComboBox, Menus, PopUp, Slider
Event Listeners
Lesson 8 - GUI Layout Managers:
FlowLayout, BorderLayout, GridLayout, BoxLayout, CardLayout, GridBagLayout
Lesson 9 - Graphics, Colors, & Fonts
Chapter 12
Graphics Class and Methods
Graphics2D
Color Control
Font Control
Drawing methods
Lesson 10 - Exception Handling & Files
Chapter 13
Exception Handling
Chapter 14
Files and Streams - Reading & Writing
Lesson 11 - Collections
Chapter 19
Collection Interface
Implementing classes
Iterator & Enumerator Interfaces
Arrays & Collections classes
Lesson 12 - Random Access & JTables
Chaper 14
Random access files
Chapter 11
JTables
Lesson 13 - Multithreading
Chapter 23
Multithreading
Tests or Exams: There are two exams: a midterm exam and a final exam. Open-book coding assignments are preferred for the exams. Alternatively, closed-book objective tests, with true or false, multiple choice, blank fill-ins, and code sample type questions could be given. Exams are to be demonstrated in class at the end of the exam period. Exams are to be e-mailed only after demonstration. Online students can e-mail to the Instructor's StagWeb address for demonstration purposes.
Grading Policy:
Homework: 1/3
Midterm Exam: 1/3
Final Exam: 1/3
|