Miscellaneous:
- Our first class is on Tuesday, September 2 (Section 1) or Wednesday,
September 3 (Section2)
and our last class is on
Tuesday, December 9 (Section 1) or Wednesday, December 10 (Section 2).
- Each student should have a general Temple email address,
usually of the form
firstName.LastName@temple.edu
- Important student information is accessible from
http://owlnet.temple.edu/
- The last day to drop from the course (and get tuition refund) is
Monday, September 15, 2008.
The last day to withdraw from the course (no refund) is Monday,
November 3, 2008.
Students who have previously withdrawn from this course,
or who
have already withdrawn from 5 courses since September 2003 may not
withdraw.
- Any student who has a need for accomodation based on the impact of a
disability should contact me privately to discuss the specific situation
as soon as possible. Students with documented disabilities should contact
Disability Resources and Services at
215-204-1280 in 100 Ritter Hall to coordinate reasonable accomodations.
- Freedom to teach and freedom to learn are inseparable facets
of academic freedom. The University has adopted a policy on
Student and Faculty Academic Rights and Responsibilities
(Policy # 03.70.02) which can be accessed through the
following link:
http://policies.temple.edu/getdoc.asp?policy_no=03.70.02
- Students should be familiar with the University statement on academic
honesty found at the following link
http://www.temple.edu/bulletin/Responsibilities_rights/responsibilities/responsibilities.shtm
PREREQUISITES
-
C or better in Mathematics C073 or higher, or placement into
Mathematics C074
TEXT
- Cay Horstmann:
Big Java, 3nd edition,
John Wiley
DESCRIPTION
Introduces CIS major students to computers, computer
programming, and problem solving using programs. Topics covered include
the general characteristics
of computers, techniques of problem solving and algorithm
specifications, and the debugging and testing of computer
programs. The goal is to learn to solve small programming problems
and to write their solution as high quality small programs
in Java.
GRADING
- Weekly : 18% 10 minute tests: Eleven tests, given each week,
only your top ten scores will count
- Midterm 1 : 10% On Monday, October 6 (Section 2), or Tuesday,
October 7 (Section 1)
- Midterm 2 : 12% On Monday, November 3 (Section 2), or Tuesday,
November 4 (Section 1)
- Final : 35% Common exam from 2 to 4pm on Friday 19.
- Homeworks : 25%
Disastrous performance in either the exams, or in the homeworks,
will result in a Fail grade. Class attendance is required. Absence
in more than 25% of the classes will result in a penalty of at least
half a letter grade. Students who are more than 30 minutes late will not
be admitted to class that day.
Attendance to the laboratory is MANDATORY.
Absence from more than four labs
will result in the loss of at least one letter grade.
EXAMS
The exams are closed book. Their content is cumulative, i.e. they address
the material covered up to the day of the exam. If a student misses
a midterm for an emergency [as agreed with instructor], there will be no
makeup exam: the final will become
proportionally more important. If you miss a midterm without previous
agreement and without definite proof as to the medical or legal reasons,
you will get a zero for that exam. Weekly 10-minute tests that are
missed will not be made up.
The final exam is mandatory on the scheduled day.
HOMEWORKS
You will be assigned one homework each week.
Each assignment must be completed on time and sent by e-mail to the
Teaching Assistant (TA). The homeworks will be graded, commented
upon, and returned by e-mail by the TA usually before the next homework is
due.
Late homeworks will not be accepted by the TA;
the instructor may accept them in case of emergencies.
You are expected to work and complete all the homeworks on your
own.
Plagiarism will be severely punished.
See the
University Policy on Plagiarism and Academic Cheating.
LABORATORIES
Laboratories are lead by the Teaching Assistant.
Attendance to the laboratory is Mandatory.
In the laboratory you will be helped to learn how to use the programming
environment: command language, editor, compiler, and debugger. You will be
presented examples related to the material discussed in class and you will
examine common errors and how to avoid them.
Part of the laboratory time
will be dedicated to work on your programming assignments.
In the laboratory initially we will use command line commands javac, java,
text editor. Later we will use an
graphic interactive development environment like JBuilder,
NetBeans, or Eclipse
OUTLINE
Introduction to computing
- Computer history, overview of hardware, overview of software,
language processing, introduction to the operating
system and to the program development environments you will use
in this course.
Problem solving
-
Problem solving and programming. Software development phases: problem
statement, analysis, design, implementation, and testing.
English as a [pseudo] programming language.
Overview of Java, classes and instances, declarations, executable
statements. Primitive data types. Strings. "Main" class and "Worker" classes.
Class vs. instance methods and data members. Object references: static vs. dynamic type.
Overloading. Simple Input/Output.
Decisions, if statement, switch statement
- Boolean expressions, decisions, if statements, tracing an
algorithm, nested if statements, switch statement
Repetition and loops
- Repetition in programs, while loop, accumulating a sum,
sentinet loops, for loop, debugging programs with loops
Introduction to program components
- Packages, classes, methods.
Parameter passing: by value, by reference.
Scope of identifiers.
Mode of parameters: in, out, in out.
Using stubs and drivers.
Arrays and ArrayLists
- Arrays, ArrayLists, searching, sorting, and merging.
Reasoning about programs
- Complexity of computation. Loop invariants. Preconditions
and postconditions of functions.
Inheritance and Class Hierarchies
- Class hierarchies and inheritance. Interfaces. Polymorphism.
Programming by Contract.
Exceptions, Streams, and Files
- Exceptions. Try and catch blocks. Persistence: text files.