CIS 068
Welcome to CIS 2168 !(formerly:CIS 68)
Software Design, Data Structures and Algorithms
Instructor: Rolf Lakaemper
TA: Jingting Zeng (Nikki)
CIS 068
Introduction
• Who am I ?
• What‘s this course about ?
CIS 068
Who am i ?
• PhD in applied mathematics in Hamburg, Germany
• Assistant professor at CIS since 2003
• Research topic: Image Processing, Computer Vision and Robotics
• before 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 PracticeOOP in JAVA:
GUIs
CIS 068
Software PracticeOOP in JAVA: Recursion
CIS 068
Software Practice
We will use JAVA as an example for a modern, object oriented language.
The topics of this class are not (too) JAVA specific, although all programming is done in JAVA.
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
EfficiencyO(n log n)
CIS 068
Software AnalysisFundamental Datastructures
Stacks
Queues
Trees
CIS 068
Textbook• Course will be close to this book:
– Koffman & Wolfgang: Objects, Abstraction, Data Structures and Design using JAVA, Version 5.0(Wiley, 2005)
CIS 068
Class Schedule• Class meets
– Monday 1:40 – 2:30, Tuttleman TL 1B– Wednesday 12:40 – 2:30, Wachman 104
(LAB)– Friday 12:40 – 2:30, Tuttleman 1B
• Friday classes will include a Mini Quiz
• Wednesday will be in the lab where you will do a programming exercise designed to reinforce the (previous) week’s topic.
CIS 068
Exams and Quizzes• There will be weekly quizzes given on
Wednesday. These will count 15% of your grade.
• There’ll be extra points during class, counting as mini quiz points
• There will be one mid-term examination: 20%
• There will be a final examination: 30%• Lab assignment grades will count
35%
CIS 068
Exams and Quizzes• There will be weekly quizzes given on
Wednesday. These will count 15% of your grade.
• There’ll be extra points during class, counting as mini quiz points
• There will be one mid-term examination: 20%
• There will be a final examination: 30%• Lab assignment grades will count
35%
CIS 068
Lab Assignments• There will be weekly lab assignments. • The labs will count 35% of your final
grade.• The assignments are usually 1 week
assignments, sometimes 2 weeks for the less small ones.
• The assignments will be closely connected to the class content. Working on them will show you if you really understood the topic.
CIS 068
Lab Grades• Labs will be graded as follows:
– On time: max.10– Late, max: 6
• The TA and Instructor are here to help you. Do not wait until the last minute if you are stuck !
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 –10 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
Any Questions ?Rolf LakaemperOffice: Room 313, Wachman HallE-mail: [email protected]: (215)-204-7996
Office Hours:Monday after class, 3 – 4:30pmFriday 3 – 4:30Or just come in whenever.
All this can be found on my website:http://knight.cis.temple.edu/~lakaemper