Course                  CSC 220 Data Structure

Description          Data Structure is an essential and integral component of  software design and development, that is part of software engineering practice. We typically design and model information (data abstraction) & logic (algorithm) representing solutions necessary for software applications.
Our main objective is to enhance students' proficiency in the areas of software design and development, data structures, and software engineering.

                        In this class, we will study a principle of the design, implementation and run-time analysis of important data structures and algorithms. We will cover but not limit to important data structures such as sorted arrays, linked lists, stacks, queues, and trees. An approach based on abstract data types, standard design notation/representation such as UML  will be emphasized. Programming assignment will be in Java.

Prerequisites     CSC 120 with C and better

Time & Room     M-W-F 9:30pm-10:45pm, Nethken 248

Course URL

Instructor          Dr. Chokchai (Box) Leangsuksun

Office                Nethken 237

Office Hours        M-W-F 8am-9:30am. T-Th 8:00pm-11:00pm or by an appointment

Phone                   257-3291


.NET passport  (MSN, VOIP SIP phone)

Grader               TBA

Texts                 Data Structure and Algorithm in Java, 2nd Edition

 by Robert LaForce

 Publisher: Sam Pub Co; ISBN: 0672324539; (December 2002).

 In addition to materials from the above main textbook, Ill provide more references (URL or   some  books) when we discuss on some particular topics in the programming projects.

 Any of your favorite JAVA books

 Reference: Scott Kendall, Unified Process Explained, The, 1/e, ISBN-0-201-74204-7

Grading Policy    5-8 Programming Assignments    10%    

                         Homework assignments            10%

                         Class Attendance                    5%

                         Term Project                          30%    

                         Midterm Examination                15%     January 19, 2005

                         Final Examination (comp.)         30%     Friday, February 25, 2005

                         Peer Evaluation form  and calculation formula

                         Presentations will be graded using this grade sheet


Class Materials

Date Topics
12/1/2004-12/3/2004 Class syllabus and Introduction to UML (pdf version)
12/6/2004 Introduction to UML and homework 1 (pdf version)
12/8/2004-12/10/2004 Intro to OO with the UML flavor & Rational UML poster
12/13/2004 Chapter 2 Array and Array Applet and a class example
Class assignment No2
  Simple Java interface Sample, MyArray and ant zip file, source code source code and Chapter 3 Simple  Sorting, bubble sort. Peer Evaluation form.
  Bubble sort applet, selection sort applet, insertion sort applet, Insertion sorting with a Person objectHomework no 3 (Programming assignment & pdf version)
1/3/2005 Chapter 4 Stack & Queue Stack applet, Queue applet and Priority Queue applet., and

1/7/2005 Homework no 4 (an individual' written assignment) (infix to postfix transformation)
Postfix evaluation code
Intro to XML and sample XML code
1/10/2005 Chapter 5 Linked Lists
1/14/2005 Midterm Review
1/19/2005 Midterm Exam
1/21/2005 Chapter 6 Recursion
1/24/2005 Recursion examples from LaForce's book: towers, triangle number, merge sort. Thread and Timer class and socket sample codes (Client and Server) for heart beat feature (network monitoring term project).  homework 5

Chapter 8 Binary Tree and Binary Tree applet


Chapter 11 Hash Table, Hash Applet, Hash Chain and Hash Double
Chapter 13 Graph & Graph Applet
2/16/2005 homework 6 Due May 23, 2005  & Final Project Presentation

Filed Trip pictures (to the Tech computing center)

2/18/2005 Component based Build management  ANT, and its sample
review and a take-home questions
2/23/2005 Final Project Presentation
2/25/2005 Final Exam