CSI 311 Syllabus, Spring 2012
American University of Science and Technology · Java Programming · 8 pages · Mr. Michel Owayjan
More CSI 311 files
Show the text of this lab
AMERICAN UNIVERSITY OF SCIENCE & TECHNOLOGY
DEPARTMENT OF COMPUTER SCIENCE
CSI 311 – Java Programming
Section B
Spring Term 2011-2012
Ashrafieh Campus
INSTRUCTOR
Michel Owayjan, M.E.
mowayjan@aust.edu.lb
LECTURE HOURS
TTH
02:00 pm – 03:15 pm
OFFICE HOURS
WF
02:00 pm – 03:00 pm
T-TH
03:30 pm – 04:30 pm
Otherwise by appointment
Room:
805, Block A
COURSE OBJECTIVES
This course studies the aspects and types of the Java programming language. It explores the
differences among Java Scripts, Java Applets, and Java stand alone Applications. Topics
include: A discussion of JavaScript – The de facto client side scripting language for web-
based applications, the programming foundation for client side scripting. Java Applets to
create programs that can be executed simply by loading the appropriate web page in a web
browser. The basic constructs of the Java language which include access controls, flow
control, object orientation, inheritance, polymorphism, exception handling, garbage
collection, threads, and sockets to create stand alone applications that can be executed using
the Java Interpreter.
COURSE PREREQUISITES
CSI 205 Computer Programming I
PREREQUISITES BY TOPICS
The student should have a background in computers from the point of view components, both
hardware and software. Also he should have a background on the basics of any high level
programming language. Familiarity with Object Oriented programming language is
suggested, but not required.
Page 1 of 8
CSI 311– Section B : Java Programming
Michel Owayjan, M.E.
COURSE CREDITS
3 Credit Hours
INSTRUCTION TECHNIQUE
Lecture will be used predominantly. These will be supported by handouts and problem sets.
REQUIRED TEXTS
� Java How to Program by Paul Deitel & Harvey Deitel, Ninth Edition, Pearson
REFERENCES
� Problem Solving with Java, by Koffman, Wolz, Second Edition
� Introduction to java programming, by Daniel Liang, Eighth Edition, Pearson
� Java for Students by Bell, Parr, 3rd Edition
� The Object of Java by David D. Riley
OTHER REQUIREMENTS
� JAVA 2 Platform, JDK 1.6.0® (Sun-Oracle, Inc 2010). Standard Edition
GRADE DISTRIBUTION
This course involves a number of activities, ranging from lectures, problem sets, quizzes,
projects, and exams, to the midterm and final exams. All of these attributes of the course are
intended to help the student in developing his/her understanding of the material covered in
CSI 311 and in providing the department and the course instructor with information on how
the student is doing. Consequently, all of these activities are considered to be vital and will
be taken into consideration while assigning grades at the end of the term. When the student
is being assigned a course grade, it is imperative that this grade accurately reflects the
student’s level of achievement and his/her mastery of the material covered in CSI 311. A
breakdown of the weighting that will be used in making this assessment is as follows:
Lab Work (LW)
20%
Class Attendance (ATT)
05%
Quizzes / Problem Sets (QZ)
10%
Projects (PRJ)
10%
Exam I (EX I)
10%
Midterm Exam (MID)
15%
Exam II (EX II)
10%
Final Exam (FIN)
20%
The following scale will be used to assign course letter grades:
90 – 100
A
80 – 89
B
70 – 79
C
60 – 69
D
BELOW 60
F
Note: Make-up exams and late assignments will be dealt with according to the distributed
course rules and regulations, which are governed by the Department of Computer Science.
Page 2 of 8
CSI 311– Section B : Java Programming
Michel Owayjan, M.E.
However, students have to realize that in the event that a make-up exam is granted, it would
be unjust that the grantee becomes privileged over his/her fellow colleagues in terms of
extra-time to prepare for the exam and in developing an idea about the contents of the exam.
Accordingly, the make-up exam will carry an increased level of difficulty of at least 20%
from the regular exam.
COURSE COMPETENCIES
• Introduce students to Object Oriented Systems Development and design.
• To understand and apply Object-Oriented programming using Java language.
• Build teamwork proficiency and negotiating skills in the software development
process.
ATTENDANCE
For legitimate reasons only, a student is allowed to absent him/herself for a maximum of 4
contact hours from the course lectures sessions. However, any absence of more than two
sessions will be counted toward the 5% evaluation of the course grade. Absences beyond the
specified maximum limit will result in an automatic AW in the course and possibly other
disciplinary measures. An unexcused absence from a quiz will result in a zero on that quiz.
Should the student be absent from a lecture during which a problem set or a laboratory
assignment is due, it is the duty of the student to make certain that the homework assignment
is handed in on time. Failure to do so will incur a penalty on that assignment’s grade.
Note: 7.5 points will be deducted from the class attendance grade for every non excused
absence.
ACADEMIC INTEGRITY
The student should get familiar with the Course Rules and Regulations of the Department of
Computer Science at AUST. These are compiled and distributed to the student at the
beginning of every academic term. In particular, the student should be aware that plagiarism,
abuse of laboratory facilities, and other sorts of academic dishonesty are not tolerated and can
result in unsympathetic penalties.
The Department of Computer Science (CSI) fully acknowledges the potential significance of
students studying together. In this sense, the CSI Department does not have any reservation
to this kind of collaboration, as long as all contestants are involved in all facets of the work,
and not with each individual contributing to a fraction of the assignment. Specifically, when
a student submits an assignment with his/her name on it, the CSI Department takes it for
granted that the details presented in the assignment are entirely the student’s own work, and
that this student has substantially participated in the creation of this work. If a portion of the
work has been conceived by collaborative work, that section should be highlighted and the
names of the students involved in this collaboration should be listed next to that section.
All projects and problem sets are expected to be handed in at the beginning of the lecture of
the due date. Late project/problem sets are permissible if the solution is not published yet, but
will be penalized. If a project or problem set is not submitted at the beginning of the lecture
of the due date, it will automatically be considered as late. In accordance, the
project/assignment will loose 25% of its merit. However, the student has the right to hold on
to it and submit it at the beginning of the very next lecture. If this situation is repeated,
Page 3 of 8
CSI 311– Section B : Java Programming
Michel Owayjan, M.E.
another 25% of the total merit of the project/assignment will be deducted until the
project/assignment looses all of its merit.
PROBLEM SETS
For most part of the course, problem sets will be assigned on a weekly basis. A detailed
description of the problem set assignment timetable is compiled at the end of this handout.
COURSE OUTLINE BY TOPIC
The day-to-day topics to be covered in the table below may be adjusted as the subject proceeds, but
all examination dates are fixed, and problem set due dates are unlikely to change.
Course Outline
Week No
Day
Date (DD/MM/YYYY)
Chapter 1: Introduction to Computers and Java
-
Introduction.
-
Why java (Explain the characteristics of java)
-
The Java Environment and Compiler.
Installing the J2SE Development Kit.
Chapter 2: Introduction to Java Applications
-
Our First Program in Java: Printing a Line of text
-
Modifying Our First program
-
Displaying Text with printf
-
Another Application: Adding Integers.
-
Memory Concepts, Arithmetic.
-
Decision Making: Equality and Relational Operators.
Problem Solving ( Ex 2.28 and 2.30 pages 104-105 Live demo)
1
T
T
T
T
T
T
Th
Th
Th
Th
Th
21/02/2012
21/02/2012
21/02/2012
21/02/2012
21/02/2012
21/02/2012
23/02/2012
23/02/2012
23/02/2012
23/02/2012
23/02/2012
Chapter 3: Introduction to Classes and Objects, Methods and
Strings
- Classes, Objects, Methods and Instance Variables.
- Declaring a Class with a Method and
Instantiating an Object of a class.
- Declaring a Method with a Parameter.
- Instance Variables, set Methods and get Methods.
- Primitive Types vs. Reference Types.
- Initializing Objects with Constructors.
- Floating-Point Numbers and Type double.
- GUI and Graphics Case Study: Using Dialog Boxes.
Problem Solving ( Ex 3.5 page 104 Live demo)
2
T
T
T
T
T
T
T
T
T
T
28/02/2012
28/02/2012
28/02/2012
28/02/2012
28/02/2012
28/02/2012
28/02/2012
28/02/2012
28/02/2012
28/02/2012
Chapter 4: Control Statements: Part I
- Control Structures.
- Selection statements.
- while Repetition Statement.
- Compound Assignment Operators.
- Increment and Decrement Operators. Primitive Types.
- GUI and Graphics Case Study: Creating Simple Drawings
Th
Th
Th
Th
Th
Th
01/03/2012
01/03/2012
01/03/2012
01/03/2012
01/03/2012
01/03/2012
Chapter 5: Control Statements Part 2
- for Repetition Statement.
- Section 5.5: do…while Repetition Statement.
- switch Multiple-Selection Statement.
Th
Th
01/03/2012
01/03/2012
Page 4 of 8
CSI 311– Section B : Java Programming
Michel Owayjan, M.E.
- break and continue Statements.
- Logical Operators.
- GUI and Graphics Case Study: Drawing Rectangles and Ovals.
Problem Solving (Live demo of GUI and Graphics Case
Studies, Creating simple Drawing, pages 138-140 and Drawing
Rectangles and Ovals pages 189-191))
Week
3
Day
Th
Th
Th
T
Date (DD/MM/YYYY)
01/03/2012
01/03/2012
01/03/2012
06/03/2012
Chapter 6: Methods: A Deeper Look
- static Methods, static Fields and Class Math.
- Declaring Methods with Multiple Parameters.
- Argument Promotion and Casting.
- Java API Packages.
- Case Study. Random-Number Generation
- Scope of Declarations.
- Method Overloading.
- GUI and Graphics Case Study: Colors.
Problem Solving (Live demo of the Case Study: A game of
Chance; Introducing Enumerations) and live demo of Ex 6.32
page 245.
4
T
T
T
T
Th
Th
Th
Th
Th
T
06/03/2012
06/03/2012
06/03/2012
06/03/2012
08/03/2012
08/03/2012
08/03/2012
08/03/2012
08/03/2012
13/03/2012
Chapter 7: Arrays and ArrayLists
- Declaring and Creating Arrays.
- Examples Using Arrays.
- Case Study.
- Enhanced for Statement.
- Passing Arrays to Methods.
- Case Study: Using an Array to Store Grades.
- Multidimensional Arrays.
- Case Study: Using a Two Dimensional Array.
- Variable-Length Argument Lists.
- Using Command-Line Arguments.
- Class Arrays
- Introduction to Collections and Class ArrayList
Problem Solving (Live demo, Create a java application using
the methods: fillarray() that fills an array of integers and or
Strings, sortarray() that sorts the array, swaparray() that
swaps the array elements, and then printarray() that prints the
array using both printf method and JOptionPane class.)
5
T
T
T
T
Th
Th
Th
Th
Th
Th
Th
Th
T
T
T
13/03/2012
13/03/2012
13/03/2012
13/03/2012
15/03/2012
15/03/2012
15/03/2012
15/03/2012
15/03/2012
15/03/2012
15/03/2012
15/03/2012
20/03/2012
20/03/2012
20/03/2012
EXAM I
Th
22/03/2012
Chapter 8: Classes and Objects: A Deeper Look
- Introduction.
- Time Class Case Study.
- Controlling Access to Members.
- Referring to the Current Object’s Members with the this
Reference.
- Time Class Case Study: Overloaded Constructors.
- Default and No-Argument Constructors.
- Notes on Set and Get Methods.
- Composition.
6
T
T
T
T
27/03/2012
27/03/2012
27/03/2012
27/03/2012
T
T
T
T
Th
27/03/2012
27/03/2012
27/03/2012
27/03/2012
29/03/2012
Week No
Day
Date (DD/MM/YYYY)
Page 5 of 8
CSI 311– Section B : Java Programming
Michel Owayjan, M.E.
- Enumerations.
- Garbage Collection and Method finalize.
- static Class Members.
- static Import. final Instance Variables.
7
Th
Th
Th
Th
29/03/2012
29/03/2012
29/03/2012
29/03/2012
- Time Class Case Study: Creating Packages.
- Package Access.
Problem Solving (Live Demo, Create only one complete Student
application demonstrating all topics covered in Chapter 8) and
(Live demo of Ex 8.15 page 393)
Th
Th
T
29/03/2012
29/03/2012
03/04/2012
Chapter 9: Object-Oriented Programming: Inheritance
- Introduction.
- Superclasses and Subclasses.
- protected Members.
- Relationship between Superclasses and Subclasses.
8
T
T
T
T
Th
03/04/2012
03/04/2012
03/04/2012
03/04/2012
05/04/2012
- Constructors in Subclasses.
- Object Class.
- GUI and Graphics Case Study.
Th
Th
Th
05/04/2012
05/04/2012
05/04/2012
Chapter 10: Object-Oriented Programming: Polymorphism
- Introduction.
- Polymorphism Examples.
- Demonstrating Polymorphic Behavior.
- Abstract Classes and Methods.
- Live Demo of Case Study: Payroll System Using
Polymorphism.
T
T
T
T
Th
Th
10/04/2012
10/04/2012
10/04/2012
10/04/2012
12/04/2012
12/04/2012
Revision
T
17/04/2012
MIDTERM
9
10
Th
F
19/04/2012
27/04/2012
Final Project Distribution
- Final Methods and Classes.
- Case Study: Creating and Using Interfaces
Chapter 14: GUI Components Part I
- Introduction.
- Java’s New Numbus Look-and-Feel
- Simple GUI-Based Input/Output with JOptionPane.
- Overview of Swing Components.
- Displaying Text and Images in a Window.
- Text Fields. Event Handling with Nested Classes.
- Common GUI Event types and Listener Interfaces.
- How Event Handling Works.
- JButton
- Buttons That Maintain State.
- JComboBox and Using an Anonymous Inner Class for Event
Handling
- JList/Multiple-Selection Lists
- Mouse Event Handling
- Adapter Classes
- Jpanel Subclass for Drawing with the Mouse
- Key Event Handling
11
Th
Th
Th
Th
Th
Th
T
T
T
T
T
T
T
T
T
Th
Th
Th
Th
Th
Th
Th
Th
03/05/2012
03/05/2012
03/05/2012
03/05/2012
03/05/2012
03/05/2012
08/05/2012
08/05/2012
08/05/2012
08/05/2012
08/05/2012
08/05/2012
08/05/2012
08/05/2012
08/05/2012
10/05/2012
10/05/2012
10/05/2012
10/05/2012
10/05/2012
10/05/2012
10/05/2012
10/05/2012
Page 6 of 8
CSI 311– Section B : Java Programming
Michel Owayjan, M.E.
- Introduction to Layout Managers.
- Using Panels to Manage More Complex Layouts.
- JTextArea.
Problem Solving Live demo Ex. 14.12 and 14.13 page 663
EXAM II
Week No
12
Day
Th
Th
Th
Th
T
Date (DD/MM/YYYY)
10/05/2012
10/05/2012
10/05/2012
10/05/2012
15/05/2012
Chapter 23: Applets and Web Start
- Introduction.
- Sample Applets Provided with JDK.
- Simple Java Applet: Drawing a String.
- Applet Life-Cycle Methods.
- Initializing an Instance Variable with Method init.
- Sandbox Security Model.
- Java Web Start and the Java Network Launch Protocol (JNLP)
Problem Solving Live Demo of a previously written JFrame
application and convert it to JApplet
13
14-15
Th
Th
Th
Th
Th
Th
Th
Th
T
17/05/2012
17/05/2012
17/05/2012
17/05/2012
17/05/2012
17/05/2012
17/05/2012
17/05/2012
21/05/2012
Chapter 11: Exception Handling: Deeper Look
- Introduction.
- Exception-Handling Overview.
- Divide By Zero Without Exception Handling.
- Example: Handling ArithmeticExceptions and
InputMismatchExceptions. (Live Demo)
- When to Use Exception Handling.
- Java Exception Hierarchy.
- finally block.
- Stack Unwinding.
- printStackTrace, getStackTrace and getMessage.
- Chained Exceptions.
- Declaring New Exception Types.
- Preconditions and Postconditions.
- Assertions.
T
T
T
T
T
Th
Th
Th
Th
Th
Th
Th
Th
Th
Th
Th
22/05/2012
22/05/2012
22/05/2012
22/05/2012
22/05/2012
24/05/2012
24/05/2012
24/05/2012
24/05/2012
24/05/2012
24/05/2012
24/05/2012
24/05/2012
24/05/2012
24/05/2012
24/05/2012
Chapter 26: Multithreading
- Introduction.
- Thread States: Life Cycle of a Thread.
- Thread Priorities and Thread Scheduling.
- Creating and Executing Threads Using the Thread class and the
Runnable Interface
- Thread Synchronization.
16
T
T
T
Th
Th
Th
Th
29/05/2012
29/05/2012
29/05/2012
31/05/2012
31/05/2012
31/05/2012
31/05/2012
Collecting Final Projects and students’ presentation
READING PERIOD
17
T
TH
F
05/06/2012
07/06/2012
08/06/2012
FINAL EXAM WEEK
18
S
M
09/06/2012
18/06/2012
Page 7 of 8
CSI 311– Section B : Java Programming
Michel Owayjan, M.E.
Page 8 of 8
PROBLEM SETS WITH DUE DATES
Problem Set No. 1: Read self-review and solve 2.8, 2.9, 2.10, 2.11, 2.12, 2.31 and 2.33 pp: 102-105 (Due Thu.
23/02/2012).
Problem Set No. 2: Read self-review and solve 3.5, 3.6, 3.7, 3.11, 3.13 pp. 136 (Due Thu. 01/03/2012).
Problem Set No. 3: Read self-review and solve 4.16, 4.17, 4.22 pp. 181-183 (Due Tue. 06/03/2012).
Problem Set No. 4: Read self-review and solve 5.13, 5.17, 5.19, 5.24 pp. 229-231 (Due. Thu. 08/03/2012).
Problem Set No. 5: Read self-review and solve 6.7, 6.8, 6.9, 6.11, 6.12, 6.13, 6.20, 6.22 pp 270 – 273 (Due Tue.
13/03/2012).
Problem Set No. 6: Read self-review and solve 7.9, 7.10, 7.17 and 7.19 pp. 331 – 333 (Due Thu. 22/03/2012).
Problem Set No. 7: Read self-review and solve 8.4, 8.6, 8.11, 816 pp. 391 – 393 (Due Tue. 03/04/2012).
Problem Set No. 8: Read self-review and solve 10.8, 10.9, 10.10 pp. 472 (Due Tue. 17/04/2012).
Problem Set No. 9: Read self-review and solve 14.5, 14.6, 14.7, 14.8, 14.9, 14.11, 4.13 pp. 661-663 (Due Thu
17/05/2012).
Problem Set No. 11: Read self-review and solve 11.15, 11.17, 11.19, 11.20 pp.504 (Due Thu. 31/05/2012).
Correction of the homework will be delivered the following week
DISCLAIMER: Changes may be performed to the above syllabus without any prior notification.
Copyright ©2011-2012 American University of Science & Technology - Department of Computer Science. All rights reserved.