T. Andrew Yang

Email: yang@uhcl.edu

Web page:  http://sce.uhcl.edu/yang/

Tel.: (281) 283-3835 

Last updated:

 

Feb. 15, 2012

CSCI 3333-01 Data Structures

Spring 2012  (1/17 – 4/30 + final exam)

·        (Required) Join the class discussing group for announcements and discussions: http://groups.google.com/group/csci3333spring2012?hl=en&lnk=gcimh

Class Notes, Topics & Schedule

- Print out the class notes for the day and bring them to the class.

Assignments & Projects

 


Time & Classroom

Wednesday, 1-3:50pm (Delta 203)

Course Description: Advanced programming techniques and data structures including arrays, linked lists, queues and stacks. Abstract data types, recursion, searching and sorting, binary trees, hashing techniques and elementary algorithm design and analysis. Laboratory instruction.

Prerequisite: CSCI 3133, CSCI 3234 and Java, or equivalent.

Note: Although the Data Structures concepts will be taught in a language independent manner in this class, example programs in Java are used to demonstrate the concepts. Students are expected to be fluent with the Java programming language.

Course Objectives:

Upon successfully completing this class, students will be equipped with understanding of data structures concepts, and have experiences in designing and implementing fundamental data structures in programming projects.

Learning Outcome:

  1. Understand basic software engineering concepts such as design implement and test a solution when given a set of requirements.
  2. Recognize when and how to use the following data structures: arrays, linked lists, stacks, queues and binary trees.
  3. Implement sequential searching, binary searching and hashing algorithms.
  4. Apply various sorting algorithms including bubble, insertion, selection and quick sort.
  5. Understand recursion and be able to give examples of its use.
  6. Understand the complexity of algorithms (Big Oh notation).
  7. Understand implications of unethical conduct.

Class Format: Lectures are combined with discussions and, if applicable, student presentations and discussions of advanced topics. Students are expected to be active participants, by studying the relevant chapters and/or research papers, and participating at in-class discussions.

A few words about notes-taking: It is critical that a student takes proper notes while listening to the lecture. Pay attention to the line of reasoning presented by the instructor. Try to form a conceptual map out of the concepts discussed in class. After a class, review the notes to facilitate effective learning.

An active learner is more than just a passive listener; he or she always examines what is taught and tries to find any inconsistency in the conceptual map that is being formed out of the learning process.


Instructor: Dr. T. A. Yang

(office) Delta 106

(phone#) (281) 283-3835 (Please leave a message if not available.)

NOTE: If the suite office is locked, you may use the phone outside the office to call me (by entering the extension 3835).

(email address) yang@uhcl.edu

Important notes:

Emails without a subject line or signature will be considered as potentially malicious and be discarded. Here is a sample subject line: "CSCI3333 project #1, question 1".

Although email messages tend to be informal, please check the grammar and spelling of your messages to ensure their legibility.

(Web site)  http://sce.uhcl.edu/yang
NOTE: Find the assignments and/or projects at the Assignments & Projects page.

Office Hours : See http://sce.uhcl.edu/yang/teaching/officeHours.htm

NOTE: In addition, you are highly encouraged to send your questions to me by e-mails (yang@uhcl.edu). Try to provide sufficient details in your email message, such as the problem(s) you have encountered, the solution(s) you have tried, and the outcome you have got from these solution(s).

Teaching assistant info and office hours:

 

TA -

Sandeep Pendru  (email: sandeeppendru@gmail.com)

 

Office Hours – (tentative until the end of the first week)

Monday 6pm to 10pm

Tuesday 1pm to 4pm

Wednesday 5pm to 7pm

Thursday 2pm to 7pm


Required Text:

·       M.A. Weiss. Data Structures & Problem Solving Using Java, 4th EDITION. Addison Wesley / Pearson. 2009. (ISBN: 0321541405)

+ Instructor's handouts in the class and/or on the Web

Recommended (but not required):

·       M.A. Weiss. DATA STRUCTURES+ALGORITHM ANALYSIS IN C. 2nd edition. Pearson. 1997. (ISBN: 9780201498400)

·       M.A. Weiss. DATA STRUCTURES+PROBLEM SOLV. USING C++. 2nd edition. Pearson. 2000. (ISBN: 9780201612509)

Additional resources:

 

·       Source Codes for Data Structures and Problem Solving Using Java, Fourth Edition

-       The author’s web site: http://users.cis.fiu.edu/~weiss/

 

·       Java-related:

-        Java SE Downloads: http://www.oracle.com/technetwork/java/javase/downloads/index.html

-        Java Installation Instructions: http://www.oracle.com/technetwork/java/javase/index-137561.html

-        Java SE 6 Documentation: http://download.oracle.com/javase/6/docs/

-        Java SE 6 API Specification: http://download.oracle.com/javase/6/docs/api/

 

·       UML and other graphical modeling:

-        UML tutorials & web resources

 


Topics and Notes
NOTE: The following schedule will be followed as much as possible, although changes are probable. Always check with your instructor if you are not sure what would be covered next week.

wk (dates)

Topics & Slides (Chapters)

Tasks (Due Dates)

1 (1/18)

Syllabus

Review & Assessment of Java Programming

Intro. to data structures

 

-       Start working on lab 1.

2 (1/25)

Intro. to algorithm analysis (Ch. 5)

      Algorithm-analysis

 

3 (2/1)

Arrays

-       Lab 1

4 (2/8)

Linked Lists

 

5 (2/15)

Stacks

Review for exam 1 (new)

-       Lab 2

6 (2/22)

Exam #1

-       Exam

7 (2/29)

Queues

-       Lab 3

8 (3/7)

Recursion, recursion traces (Ch. 7)

-       Draft of your presentation: to be posted to the discussion board

9 (3/14)

Spring holiday. No class meeting.

 

10 (3/21)

Ethics paper presentation

Check out the SCE oral communication rubric.

-       Ethics paper presentation (5 minutes each)

-       Send the paper to yang@uhcl.edu, cc’ing the TA.

+ a hard copy of the paper

11 (3/28)

Trees, Tree traversal (Ch. 18)

Average case analysis of binary search using a binary tree

Binary Search Trees (Ch. 19)

Review for exam 2

-       Lab 4

12 (4/4)

Exam #2 (70% after exam 1, plus 30% before exam 1)

-       Exam

13 (4/11)

Hashing / Hash tables (Ch. 20)

-        Lab 5

14 (4/18)

Sorting (Ch. 8)

 

15 (4/25)

Analysis of Shellsort and Related Algorithms

-   A paper by Robert Sedgewick surveying Shellsort and related algorithms (1996)

Intro. to software engineering

Review for final exam

-       Lab 6

16 (5/2)

Final exam: comprehensive

-       Final exam

 

 

 


Computer Labs:

The computers in the PC Lab (Delta 119) are configured with JDK and JCE for running the sample programs. You are encouraged to configure your own computer to do the projects.

·       Windows account information at: http://sce.uhcl.edu/accountSearch.html

·       Click http://sce.uhcl.edu/NTLabIntroduction.asp for the list of available software in the PC lab.

Evaluation:

category

Percentage (min ~ max)

Labs (5% each)

30%

Paper & presentation on ethics

10%

Exam 1

15%

Exam 2

15%

final exam

25%

Attendance+

5%

Class Participation++

0% ~ 3%

Total:

100% (0% ~ 103%)

+ Attendance Policy: You are expected to attend all classes. There will be no penalty for a person’s first two absences without documented excuse. 1% will be taken for each of the absences after the first two absences. Note: Being tardy is no excuse when a person is found to be absent from the class.

Note: If you ever miss a class, it is your responsibility to get hold of whatever may have been discussed in the class.

++ Class Participation: Participating in the class is expected. You should ask or answer questions during the in-class or online discussions. Up to 3% may be granted to students who are active participants.

Grading Scale:

The accumulated points from all the categories determine a person's final grade. There will be no extra-credit projects.

Percentile

Grade

90% or above

A

87% - 89%

A-

84% - 86%

B+

80% - 83%

B

77% - 79%

B-

74% - 76%

C+

70% - 73%

C

67% - 69%

C-

64% - 66%

D+

 

60%-63%

D

 

57%-59%

D-

Less than 57%

F

Tests & Exams:

Both analytic and synthetic abilities are emphasized. Being able to apply the learned knowledge toward problem solving is also highly emphasized in the tests. 

Unless due to unexpected, documented emergency, no make-up exams will be given. No make-up exams will be granted once the exams have been corrected and returned to the class.

Assignments and Late Penalty:

Assignments and projects will be posted at the class web site. Assignments & projects are due before the beginning of the class on the due day. See Topics and Notes for the due dates. 

Points will be deducted from late assignments: 20% for the first 24 hours after the due time, 40% for the next 24 hours, 70% for the third 24 hours, and 100% after that. No extension will be granted except for documented emergency. Starting to work on the assignments as early as possible is always the best strategy.

 

Assignments Guidelines:

a. Identification page: All assignments must have your name, and course name/number/section number (e.g., CSCI3333-01) at the top of the first page.

b. Proper stapling: Staple all the pages together at the top-left corner. NOTE: Do not use paper clips.

c. Order ! Order! Arrange the solutions following the sequence of the questions. Write the question number at the top-right corner of each page.

d. Word processing: It is required that you type your reports (e.g., print them using a printer). Use a word processor and appropriate typesetting and drawing tools to do the assignments. Spell-check the whole document before printing it. You may lose points due to spelling or grammatical errors. 

Projects:

The projects will involve the design and implementation of encryption/decryption algorithms and/or application of the algorithms to real-world problems. Students are expected to employ the theories and techniques learned in the class to design the system.

Details of the projects will be later made available at Assignments & Projects.

NOTE: Unless otherwise specified, all assignments and projects are individual work. Students should take caution not to violate the academic honesty policies. Check out the details at this link.

 


Instructor's Notes:

  • Important: If you think you have lost some points due to grading errors, make sure you approach the instructor within a week after the assignment, project, or test is returned to you.
  • To get the most out of this class, you need to read the textbooks and spend time using computers regularly. Be prepared for a class by previewing the material to be covered in that class and participate in discussions and problem-solving exercises, if applicable, in the class.
  • Due to the intensive nature of graduate classes, 15-20 hours per week are expected of students in studying the textbook/notes and working on the assignments, in addition to class attendance. Expect to spend more hours during summer sessions.

Related Links:

·       UHCL General Program Requirements: http://www.uhcl.edu/XDR/Render/catalog/archives/125/06/

 

·       Withdrawals, Appeals, GPA, Repeated Courses, and the 6 Drop Rule: http://www.uhcl.edu/XDR/Render/catalog/archives/125/06/%23A0110#A0110

 

        4/23/2012: last day to drop with W

 

·       ASSESSMENT FOR ACCREDITATION:

The School of Science and Computer Engineering may use assessment tools in this course and other courses for curriculum evaluation.  Educational assessment is defined as the systematic collection, interpretation, and use of information about student characteristics, educational environments, learning outcomes, and client satisfaction to improve program effectiveness, student performance, and professional success. This assessment will be related to the learning objectives for each course and individual student performance will be disaggregated relative to these objectives.  This disaggregated analysis will not impact student grades, but will provide faculty with detailed information that will be used to improve courses, curriculum, and student performance.

Go to the Index