Welcome to CIS 2168: Data Structures & Algorithms in JAVA

Lecture: We / Fr  9:30 - 10:50am. Wednesday: Tuttleman 403b, Friday: Tuttleman 302
Lab: Mo  9:00 - 10:50 Wachman Hall cc 200

Instructor: Rolf Lakaemper (lakamper@temple.edu)
Office Hours: after class, We/Fr 11:30 - 12:30, or by appointment, or just come in, room 1036 Wachman Hall.
Phone: 215 204 7996

TA: Nan Li
E-Mail for homeworks: tuc34608@temple.edu. 
Contact Hours : We, 2:30--4:30 in WH213, 4:30--5:30 in WH409
TA-website: [will be added]

Textbook: Objects, Abstraction, DATA STRUCTURES, and DESIGN using Java 5.0 Edition, By Koffman/Wolfgang, Wiley, 2005 OR LATER


 

Course Material

 

Quizzes

Assignments

Weekly Summary

Quiz1

Assignment01: Intruder detection using Kinect 3D point data

Quiz2

Assignment02: Jumping Button. GUI and Events.

 

Quiz3

Assignment03: Custom Drawing

 

Quiz4

Assignment04: Shape Abstraction  / BONUS ASSIGNMENT: WIREWORLD+

 

Quiz5

Assignment05: The Maze (Recursion)

 

Quiz6

Assignment06: Binary Search Tree

 

Quiz7

Assignment07: Heap Sort

 

Quiz8

Assignment08: Visual Hashtable

 

Quiz9

Assignment09: Website Word Ranking

 

Quiz10

 

 

 


 

Additional Material

 

Previous Quizzes

Midterm 2010

Midterm 2010 & Solutions

Midterm 2011

Midterm 2011 & Solutions

 

 

 

 

JAVA Sources

Simple Inheritance Demo, class 1/25/2012

Button Demo: illustrating GUI and event topics

Smiling Face: custom drawing (class 2/1/2012)

Snake Demo: example for animation, custom drawing and polymorphism

 

MousePainter: mouse events, custom drawing and polymorphism, motivation for linked data structures

SingleLinkedList: A fully implemented single linked list, together with some timing experiments

 

 

 

 


 

 

 

 

 

 

 

Grades

Your grade will be based on a combination of exam scores, quizzes, lab grades, class work and assignments:

·         There will be weekly quizzes given on Wednesdays. These will count 25% of your grade.

·         There will be extra points during class, counting as quiz points

·         There will be one mid-term examination: 20%

·         There will be a final examination: 30%

·         Lab assignment grades will count 25%

A special rule overrides the average score: your average score is only valid if the final exam as well as the total lab assignment grade does not differ more than 3 grade steps (a grade step is e.g. A to A-). Example: If your average score is A-, your final AND lab grade has to be at least B-. If for example your lab score is A, but the final is C- only, then your final score would be downgraded from A- to B-, which is the best score 3 steps away from your final exam grade. This ensures that you MUST understand the class topics in theory(final) AND practical application (lab).

Syllabus and remarks

The course introduces basic data structures, like linked lists, stacks, queues, trees and sets. Applications given as JAVA programming assignments will motivate the need for these abstract data types to implement algorithms efficiently. The second part of will introduce important algorithms which build the basis of many applications. Among these concepts will be recursion, sorting algorithms (insertion sort, mergesort, heapsort, quicksort), and algorithms to traverse or organize data structures (balancing trees). Although the course is not an introduction to JAVA programming, JAVA will be used as an example for a modern, object oriented language. Concepts of event driven programming, graphical user interfaces and custom drawing will be combined with algorithms and data structures taught to program small projects like basic graphic editors, fractal trees etc. The course will closely follow the structure of the textbook.

What is expected of you:

·         You must attend class and the scheduled laboratory section for this course and do assigned readings.

·         You must complete all of the assigned laboratory projects in a timely fashion. All lab assignments should be emailed to your lab instructor before lab on the day they are due. Labs turned in after lab begins will be considered late! Your grade of a late lab will be 60% (max. 6 points) of a timely submission.

·         You must plan to spend time outside of the scheduled laboratory working on your programs. Often, students find they need 10 or more additional hours outside of lab to complete the assignments. You should check the web site for this course at least once a week to see any hints, instructions or updates to assignments. I will update assignments or add hints due to feedback from you.

Group work

It is okay to work together to discuss a problem and get ideas for its solution. However, everyone is responsible for doing his/her final design for a problem and for its program solution. It is plagiarism to turn in someone else's work as your own. If you are caught doing this (with or without the other person's permission), you may receive a failing grade for the course.

Disability Disclosure

Any student who has a need for accommodation based on the impact of a disability should contact me privately to discuss the specific situation as soon as possible. Contact Disability Resources and Services at 215-204-1280 in Room 100, Ritter Annex to coordinate reasonable accommodations for students with documented disabilities.