190 likes | 205 Views
Welcome to CIS 068 !. Software Design & Data Structures In JAVA. Instructor: Rolf Lakaemper Peer Teacher: Aubrey Jones TA: Michael Broscius. Introduction. Who are we ? What‘s this course about ?. Who am i ?. PhD in applied mathematics in Hamburg, Germany
E N D
Welcome to CIS 068 ! Software Design & Data Structures In JAVA Instructor: Rolf Lakaemper Peer Teacher: Aubrey Jones TA: Michael Broscius CIS 068
Introduction • Who are we ? • 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 • <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 Theory • Software Engineering and OOD: Different views of software The software lifecycle Diagrams, Use Cases,... CIS 068
Software Theory Correctness: • Syntax errors print (“hello world; • Runtime errors ERROR ! Division by zero error at 0000ff:03f4 (->00f4:3aa7) af 000 bc 3ef4 hl 988f de 45db • Logical Errors M:={0..255}aü : n i M => n+1 i M CIS 068
Software Theory Principles of OOP: • Inheritance, class hierarchies, polymorphism,abstract and interface classes,… abstract class interface1 interface2 class1 class2 class1_1 CIS 068
Software Practice • OOP in JAVA: GUIs CIS 068
Software Practice • OOP 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 Algorithms Sorting: Bubble-, Insertion-, Merge-, Quicksort A,H,D,O,P,C,C,J A,C,C,D,H,J,O,P O(n log n) Efficiency CIS 068
Software Analysis • Fundamental 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 12:40 – 1:30, Tuttleman TL 302 • Wednesday 12:40 – 2:30, Tuttleman TL 302 • Friday 12:40 – 2:30, Wachman Hall 104 • Wednesday classes will include a Mini Quiz • Friday will be in the lab where you will do a programming exercise designed to reinforce the week’s topic. CIS 068
Exams and Quizzes • There will be weekly quizzes given on Wednesday. These will count 10% of your grade (in total). • There’ll be extra points during class, counting as Mini Quizzes • There will be one mid-term examination: 20% • There will be a final examination: 30% • Lab assignment grades will count 40% CIS 068
Lab Assignments • There will be weekly lab assignments. • The labs will count 40% of your final grade. CIS 068
Lab Grades • Labs will be graded as follows: • On time: max.10 • Late, max: 6 • The TA, Peer Teacher and Instructor are here to help you. Do not wait until the last minute if you are stuck ! CIS 068
Policy on Cheating • Programming 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 Lakaemper • Office: Room 308, Wachman Hall • E-mail: lakamper@temple.edu • Phone: (215)-204-7996 • Office Hours: • Monday after class, 2 – 3:30pm • Or just come in whenever. • All this can be found on my website: • http://knight.cis.temple.edu/~lakaemper CIS 068