CIS 068 Welcome to CIS 2168 ! (formerly:CIS 68) Software Design, Data Structures and Algorithms...

Post on 01-Jan-2016

232 views 5 download

transcript

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: lakamper@temple.eduPhone: (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