Instructor
Dr. Michael Sobolewski
Room: CP-310
Email:
sobol@cs.ttu.edu
Office hours: Wednesday 4:00 p.m. to 6:00 p.m. or by appointment
Course Information CS 4000-1/5331-2
OO
Programming in Java
Location: CP204
Time: 3:00-3:50 p.m., MWF
Course webpage is
http://java.cs.ttu.edu. We will
make extensive use of the class WWW site. You should check the WWW
page on a near daily basis for updates.
Description
This course teaches you the fundamental concepts of good
computer programming while introducing you to one of the most
powerful and popular languages in use today—Java. It gives you an
ideal balance between programming concepts and the details of Java.
Our focus is on a subset of Java--a lean and practical core that is
manageable, yet detailed enough to create powerful Java applets and
servlets. And as you master the basics of Java, you'll be developing
solid programming skills that will increase your effectiveness no
matter which language you work with.
Learning Outcomes
Ability to:
1. distinguish OO programming from declarative and procedural ones
2. describe the Java Virtual Machine architecture and behavior
3. define and exemplify secure classes and inner classes,
objects and message passing
4. understand and implement applets, servlets, and thread save
programs
6. compare and contrast inheritance and polymorphism
6. compare and contrast Java interfaces, abstract
classes, and classes
5. write well-structured and documented OO applications with
event-driven graphical user interfaces and socket-based
networking
7. master basic JAVA library and tools at a depth that is
sufficient to solve real-world programming problems
Methods of Assessment of Learning
outcomes
a. Eight homework assignments to assess common Java concepts and
terminology
b. Midterm exam
c. Four programming assignments
d. Cumulative final exam
e. CS5331: network-based project Textbook [1]
Java Concepts, Forth Edition, Cay Horstmann, John Wiley & Sons, Inc., 2005, ISBN 0-471-69704-4
References
[1]
Objects First with Java - A Practical Introduction using BlueJ,
David J. Barnes & Michael Kölling, 2nd ed, Prentice Hall / Pearson
Education, 2004, ISBN 0-13-124933-9
[2]
Thinking in Java, 3rd Edition, Bruce Eckel, Prentice Hall PTR; 3
edition, 2002, ISBN 0131002872 Tentative
Course Outline
-
Introduction
-
Using and Implementing Objects
-
Fundamental Data Types
-
Applets and Graphics
-
HTTP and Servlets
-
Decisions
-
Iteration
-
Arrays, Vectors, and Array Lists
-
Designing Classes
-
Testing and Debugging
-
Interfaces and Polymorphism
-
Event handling
-
Inheritance
-
Graphical User Interfaces
-
Exceptions Handling
-
Files and
Streams
-
Object-Oriented Design
-
Recursion
-
Sorting and Searching
-
An Introduction to Data Structures
-
Advanced Data Structures
-
Generic Programming
Course Delivery
Format/Policies This course
consists of lectures, homework and programming assignments, two exams,
and project (grad students only).
Homework assignments will be submitted by
email: java@cs.ttu.edu. The format and types of
problems on homework will be similar to those on the midterm and
final exams. Doing and understanding the homework assignments will
help prepare for exams.
|
|
Programming Assignments will be submitted by
email: java@cs.ttu.edu. Programs must compile and run using the PC version of Java
5.0.
Each programming assignment will receive points for #1- proper operation (75% of grade) and #2- structure, commenting, and style (25% of grade).
Please note the following programming style and coding guidelines:
-
Each source file must begin with a comment block
identifying the programmer, project, last modification date.
-
The class file containing "public static void main()" must include a comment block (following the identification header comment), that briefly describes the purpose of the program and the primary data structures employed.
- Each class method or property must be accompanied by a header comment that describes what the
method or property does, the logical purpose of each passed parameter (including whether it is
input, output, or input/output), the pre-conditions that are assumed, the post-conditions that are guaranteed, and the return value (if any).
- Declarations of class level variables and finals (constants) must be accompanied by a brief description of purpose.
- Major control structures, such as loops or selections, should be preceded by a
block comment describing what the following code does.
- Use a sensible, consistent pattern of indentation and other formatting style (such as bracket placement) to improve the readability of your code.
- Identifier names (constants, variables, methods, properties, classes, etc.) should be
descriptive.
- When a final (constant) is appropriate, use a final (constant) instead of a "magic
number". More explicitly, any constant value other than 0 or the empty string,
"", should be a named constant.
- Store character data (aside from single characters) in string objects, rather
than char arrays.
Exams will be
closed-book/notes. Material
from handouts, textbooks and assignments will be included in the
scope of the exams.
The final exam is comprehensive.
Grading
Point Distribution CS4000:
Homeworks (8) | 15%
|
Programming Assignments (4) | 45% |
Midterm Exam | 15% |
Final Exam | 25% |
Point Distribution CS5331:
Homeworks (8) | 10%
|
Programming Assignments (4) | 30% |
Midterm Exam | 15% |
Final Exam | 25% |
Project | 20% |
Grading Scale:
Grades may be curved as necessary.
90 guarantees at least an A- |
80 guarantees at least a B- |
70 guarantees at least a C- |
60 guarantees at least a D- |
59 or less is F |
Late Policy:
Late work will not be accepted. Each homework and programming assignment will have a posted deadline. Deadlines are absolute. Failure to submit an assignment by the deadline will result in a grade of 0.
There are no exceptions. A written excuse from the dean or health office is the only
acceptable form of excuse. This will result a minimum extension to the deadline to complete the assignment.
Questions about grades:
After each graded assignment is returned students will have one week following the return of the assignment to question the grade assigned with either the course instructor
or TA. After one week has passed the grade becomes final and will not change. This applies to all programming assignments, homework and tests.
Miscellaneous The purpose of these
different instruments is to have a positive learning experience,
critical thinking about Java programming, and some sound
grasp of fundamentals. If you feel any of these instruments is not
working for any reason, please send me email and I will consider a
change in the format of delivery.
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.(see
Statement of Academic Conduct for Engineering Students, College of Engineering
Texas Tech University). |