200 likes | 210 Views
This course covers software theory, practice, analysis, and design using JAVA. Topics include software engineering, object-oriented programming, data structures, and algorithms.
E N D
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 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 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 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 313, Wachman Hall • E-mail: lakamper@temple.edu • Phone: (215)-204-7996 • Office Hours: • Monday after class, 3 – 4:30pm • Friday 3 – 4:30 • Or just come in whenever. • All this can be found on my website: • http://knight.cis.temple.edu/~lakaemper CIS 068