CIS 068
Important Note !This course is part II of CIS 067
in JAVA,
if you are a newcomer to JAVA, you might be reassigned to another section if
possible.
Sections are:
Section 1 8:40 - 10:30 (Currently Java, may be C++)
Section 2 2:40 - 4:30 (Currently Java, will stay Java)
Section 3 10:40 - 12:30 (Currently C++, will stay C++)
CIS 068
Who Am I ?
• PhD in applied mathematics in Hamburg, Germany
• Assistant professor at CIS since 2003
• Research topic: Image Processing
• <2003: Software Development Director of different companies (Computer Games, Voice + Video over IP)
Rolf Lakaemper
CIS 068
Topics of CIS 068• Software Theory:
– A look at modern techniques of industrial software development
• Software Practice:– Consolidation of Object-Oriented
Programming (OOP) techniques in JAVA
• Software Analysis– Fundamental data structures, algorithms and
their performance
CIS 068
Software TheorySoftware Engineering and OOD:
Different views of software
The software lifecycle
Diagrams, Use Cases,...
CIS 068
Software TheoryCorrectness:
• Syntax errors
• Runtime errors
• Logical Errors
print (“hello world;
ERROR !Division by zero error at0000ff:03f4 (->00f4:3aa7)af 000bc 3ef4hl 988fde 45db
M:={0..255}n M => n+1 M
CIS 068
Software TheoryPrinciples of OOP:– Inheritance, class hierarchies,
polymorphism,abstract and interface classes,…
abstract class
class1 class2
class1_1
interface1 interface2
CIS 068
Software Practice
OOP in JAVA:streams and files
events
c-a-t-t-a-g-g0-1-1-0-0-0-1abd-mvs-sgrdf
Listener1 Listener2 Listener3
key down
mouse moved
timer
CIS 068
Software Analysis
• Fundamental AlgorithmsSorting: Bubble-, Insertion-, Merge-, Quicksort
A,H,D,O,P,C,C,J
A,C,C,D,H,J,O,P
Efficiency O(n log n)
CIS 068
If Time Permits
• Optional Topics– Programming problems in image processing– Fundamentals of computer graphics: using a graphics API, homogenous
coordinates, affine transformations, viewing transformation, clipping
– Foundations of human-computer interaction: Human-centered development and evaluation; principles of good design and good designers; engineering tradeoffs; introduction to usability testing
CIS 068
Text• HIGHLY RECOMMANDED ! Course
will be close to this book:– Koffman & Wolfgang:Software Design & Data
Structures in JavaTM. Draft available from the copy center, Conwell Hall.
• related to basic (JAVA -) programming:Koffman & Woltz. Problem Solving with JavaTM. Addison-Wesley 2002.
• Pure JAVA-programming: there are 1000s of pure JAVA-books out there…
CIS 068
Class Schedule• Class meets
– Monday 2:40 – 4:30, Anderson Hall 28– Wednesday 2:40 – 3:30, Anderson Hall 28– Friday 2:40 – 4:30, Wachman Hall 104
• Monday classes will be in the lecture format and will introduce the week’s topic.
• Wednesday class will include a quiz and discussion of the week’s topic.
• Friday will be in the lab where you will do a programming exercise designed to reinforce the week’s topic.
CIS 068
Exams and Quizes• There will be weekly quizes given on
Wed. These will count 10% of your grade.
• There will be two mid-term examinations, given on Wed, Feb. 12 and Wed, March 26. They will count 25% (12.5% each) of your grade.
• There will be a final examination, given on (??? ), counting 25%
CIS 068
Lab Assignments• There will be weekly lab assignments. • The labs will count 40% of your final
grade.• Each lab assignment will be due no
later than 2:40pm the Friday after it is assigned.
• Lab will not meet on Friday, January 24.
• The last lab session will be on Friday, May 2.
CIS 068
Lab Grades• Labs will be graded as follows:
– On time, correct 5– On time, not-correct 2– Late, correct 3– Correct resubmission 4– Late, not-correct 1
• The TA and Instructor are here to help you. Do not wait until the last minute if you are stuck !
CIS 068
Review of Scoring
• Quizes: 10 %
• Midterm Ex.1: 12.5%
• Midterm Ex.2: 12.5%
• Final Exam: 25%
• Lab: 40%
CIS 068
Policy on CheatingProgramming must be learned by
doing it !• Copying another student’s program
deprives you of that learning opportunity.
• If a lab assignment is found to be a copy, both students will receive a –1 for that assignment.
• If more than one program is found to be a copy, the students involved will receive an F for the course.
CIS 068
Schedule in DetailWeek Date
(Monday) Monday Wednesday Friday
1 1/20 M.L.K. Day, no class Introduction No Lab 2 1/27 Software Engineering Quiz 1 Lab 1 3 2/3 Algorithm Correctness and
Efficiency Quiz 2 Lab 2
4 2/10 Class Hierarchies, Inheritance, and Interfaces
Midterm Exam 1
Lab 3
5 2/17 Graphical User Interfaces Quiz 4 Lab 4 6 2/24 Recursion Quiz 5 Lab 5 7 3/3 Streams and Files Quiz 6 Lab 6
3/10 SPRING BREAK 8 3/17 Events Quiz 7 Lab 7 9 3/24 Review for Midterm 2 Midterm Exam
2 Lab Makup
10 3/31 Sorting and efficiency Quiz 8 Lab 8 11 4/7 Collections and Lists,
Sets, Maps, and Hash Tables
Quiz 9 Lab 9
12 4/14 Stacks, Queues Quiz 10 Lab 10 13 4/21 Trees Quiz 11 Lab 11 14 4/28 (optional topics) Quiz 12 Lab Makup 15 5/5 Review NO CLASS NO CLASS
??? Final Examination
CIS 068
Any Questions ?Rolf LakaemperOffice: Room 534, Wachman HallE-mail: [email protected]: (215)-204-8604
Office Hours:Please see office door. Usually always.Safe: after lesson or lab, or by appointment
All this can be found on my website:http://knight.cis.temple.edu/~lakaemper
Top Related