Dr. Michael Sobolewski
Office hours: Wednesday 4:00 p.m. to 6:00 p.m. or by appointment
Programming in Java
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.
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.
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
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
7. master basic JAVA library and tools at a depth that is
sufficient to solve real-world programming problems
Methods of Assessment of Learning
a. Eight homework assignments to assess common Java concepts and
b. Midterm exam
c. Four programming assignments
d. Cumulative final exam
e. CS5331: network-based project
Java Concepts, Forth Edition, Cay Horstmann, John Wiley & Sons, Inc., 2005, ISBN 0-471-69704-4
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
Thinking in Java, 3rd Edition, Bruce Eckel, Prentice Hall PTR; 3
edition, 2002, ISBN 0131002872
Using and Implementing Objects
Fundamental Data Types
Applets and Graphics
HTTP and Servlets
Arrays, Vectors, and Array Lists
Testing and Debugging
Interfaces and Polymorphism
Graphical User Interfaces
Sorting and Searching
An Introduction to Data Structures
Advanced Data Structures
consists of lectures, homework and programming assignments, two exams,
and project (grad students only).
Homework assignments will be submitted by
email: firstname.lastname@example.org. 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: email@example.com. Programs must compile and run using the PC version of Java
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
- 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
from handouts, textbooks and assignments will be included in the
scope of the exams.
The final exam is comprehensive.
Point Distribution CS4000:
|Programming Assignments (4)||45%|
Point Distribution CS5331:
|Programming Assignments (4)||30%|
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 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.
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.
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
Statement of Academic Conduct for Engineering Students, College of Engineering
Texas Tech University).