+ All Categories
Home > Documents > CIS 068 Welcome to CIS 2168 ! (formerly:CIS 68) Software Design, Data Structures and Algorithms...

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

Date post: 01-Jan-2016
Category:
Upload: poppy-parrish
View: 232 times
Download: 5 times
Share this document with a friend
20
CIS 068 Welcome to CIS 2168 ! (formerly:CIS 68) Software Design, Data Structures and Algorithms Instructor: Rolf Lakaemper TA: Jingting Zeng (Nikki)
Transcript
Page 1: CIS 068 Welcome to CIS 2168 ! (formerly:CIS 68) Software Design, Data Structures and Algorithms Instructor: Rolf Lakaemper TA: Jingting Zeng (Nikki)

CIS 068

Welcome to CIS 2168 !(formerly:CIS 68)

Software Design, Data Structures and Algorithms

Instructor: Rolf Lakaemper

TA: Jingting Zeng (Nikki)

Page 2: 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 ?

Page 3: CIS 068 Welcome to CIS 2168 ! (formerly:CIS 68) Software Design, Data Structures and Algorithms Instructor: Rolf Lakaemper TA: Jingting Zeng (Nikki)

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

Page 4: CIS 068 Welcome to CIS 2168 ! (formerly:CIS 68) Software Design, Data Structures and Algorithms Instructor: Rolf Lakaemper TA: Jingting Zeng (Nikki)

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

Page 5: CIS 068 Welcome to CIS 2168 ! (formerly:CIS 68) Software Design, Data Structures and Algorithms Instructor: Rolf Lakaemper TA: Jingting Zeng (Nikki)

CIS 068

Software TheorySoftware Engineering and OOD:

Different views of software

The software lifecycle

Diagrams, Use Cases,...

Page 6: CIS 068 Welcome to CIS 2168 ! (formerly:CIS 68) Software Design, Data Structures and Algorithms Instructor: Rolf Lakaemper TA: Jingting Zeng (Nikki)

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

Page 7: CIS 068 Welcome to CIS 2168 ! (formerly:CIS 68) Software Design, Data Structures and Algorithms Instructor: Rolf Lakaemper TA: Jingting Zeng (Nikki)

CIS 068

Software TheoryPrinciples of OOP:– Inheritance, class hierarchies,

polymorphism,abstract and interface classes,…

abstract class

class1 class2

class1_1

interface1 interface2

Page 8: CIS 068 Welcome to CIS 2168 ! (formerly:CIS 68) Software Design, Data Structures and Algorithms Instructor: Rolf Lakaemper TA: Jingting Zeng (Nikki)

CIS 068

Software PracticeOOP in JAVA:

GUIs

Page 9: CIS 068 Welcome to CIS 2168 ! (formerly:CIS 68) Software Design, Data Structures and Algorithms Instructor: Rolf Lakaemper TA: Jingting Zeng (Nikki)

CIS 068

Software PracticeOOP in JAVA: Recursion

Page 10: CIS 068 Welcome to CIS 2168 ! (formerly:CIS 68) Software Design, Data Structures and Algorithms Instructor: Rolf Lakaemper TA: Jingting Zeng (Nikki)

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.

Page 11: CIS 068 Welcome to CIS 2168 ! (formerly:CIS 68) Software Design, Data Structures and Algorithms Instructor: Rolf Lakaemper TA: Jingting Zeng (Nikki)

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)

Page 12: CIS 068 Welcome to CIS 2168 ! (formerly:CIS 68) Software Design, Data Structures and Algorithms Instructor: Rolf Lakaemper TA: Jingting Zeng (Nikki)

CIS 068

Software AnalysisFundamental Datastructures

Stacks

Queues

Trees

Page 13: CIS 068 Welcome to CIS 2168 ! (formerly:CIS 68) Software Design, Data Structures and Algorithms Instructor: Rolf Lakaemper TA: Jingting Zeng (Nikki)

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)

Page 14: CIS 068 Welcome to CIS 2168 ! (formerly:CIS 68) Software Design, Data Structures and Algorithms Instructor: Rolf Lakaemper TA: Jingting Zeng (Nikki)

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.

Page 15: CIS 068 Welcome to CIS 2168 ! (formerly:CIS 68) Software Design, Data Structures and Algorithms Instructor: Rolf Lakaemper TA: Jingting Zeng (Nikki)

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%

Page 16: CIS 068 Welcome to CIS 2168 ! (formerly:CIS 68) Software Design, Data Structures and Algorithms Instructor: Rolf Lakaemper TA: Jingting Zeng (Nikki)

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%

Page 17: CIS 068 Welcome to CIS 2168 ! (formerly:CIS 68) Software Design, Data Structures and Algorithms Instructor: Rolf Lakaemper TA: Jingting Zeng (Nikki)

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.

Page 18: CIS 068 Welcome to CIS 2168 ! (formerly:CIS 68) Software Design, Data Structures and Algorithms Instructor: Rolf Lakaemper TA: Jingting Zeng (Nikki)

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 !

Page 19: CIS 068 Welcome to CIS 2168 ! (formerly:CIS 68) Software Design, Data Structures and Algorithms Instructor: Rolf Lakaemper TA: Jingting Zeng (Nikki)

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.

Page 20: CIS 068 Welcome to CIS 2168 ! (formerly:CIS 68) Software Design, Data Structures and Algorithms Instructor: Rolf Lakaemper TA: Jingting Zeng (Nikki)

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


Recommended