INFS 590

Program Design and Data Structures

 

Announcements             Assignments

 

Instructor:


Dr. Jessica Lin
Office: Science & Technology II, Room 453
Phone: 703-993-4693
Email:  jessica[AT]cs[DOT]gmu[DOT]edu
Office Hours: Tuesday 4-6pm

 

Teaching Assistant:

 

          Huaming Liu

          Email: liuhuaming[AT]gmail[DOT]com

          Office: Science & Tech II, Room 432 (Please note the room change)

          Office Hours: Monday 4-6pm

 

Lectures:

 

Tuesday 7:20-10:00pm, Robinson Hall B111

Prerequisite:

 

Undergraduate courses or equivalent knowledge in structured programming in a high-level language.

 

Textbook:

 

Data Structures & Problem Solving Using Java 3rd Edition, M. A. Weiss, ISBN 0-321-32213-4

 

Newsgroup:

 

TBA

 

Compiler Version

 

All your code should compile under Java 1.5.

 

Course Description:

 

Study of the fundamentals of data structures and algorithms applied in programming solutions to application problems. The course stresses programming in a modern high-level language. Credit cannot be applied to any graduate degree in School of Information Technology and Engineering.

 

Grading:


Programming/Written Assignments: 35%

Quizzes: 5%
Midterm Exam: 30%
Final Exam: 30%

 

 

Homework Assignments:

 

The written assignments are designed to help you learn and prepare for the exams. They are due in the beginning of the class on the announced date. There will be a strictly enforced 10% penalty per day for late submissions.

 

Programming Projects:

 

Programs will be graded on correctness as well as style and formatting. The assignments are due on the announced date before 12 midnight. The late submission penalty also applies. Programs that do not compile will not be graded. Turn in assignments to the teaching assistant via email as attachments. Your programs will be graded with my own test cases (in my main method, which I will not share in advance), therefore, it’s important that you follow the specification exactly as instructed – this means using identical class and method names/signatures/return types. Failure to do so will result in your programs not compiling with my main, and consequently, zero for your projects.

 

Exams:


Quizzes will be given in the beginning of the class. They may or may not be announced in advance. The lowest quiz grade will be dropped at the end of the semester. There will be a midterm exam and a final exam covering lectures and readings (both will be in class, closed book). The final exam (comprehensive) includes topics covered in the entire semester. Exams must be taken at the scheduled time and place. Missed exams cannot be made up.

 

Honor Code Statement:

 

Please be familiar with the GMU Honor Code. Any deviation from this is considered an Honor Code violation. All assignments (written and programming) for this class are individual unless otherwise specified.

 

 

 

Tentative Schedule:

 

Weeks

Dates

Topics

Readings

Slides

1

Aug 29

Java Review - Primitives

Ch. 1 & 2

590_1.pdf

Paper saver

2

Sept 5

Objects & Classes

Ch. 3

590_2.pdf

Paper saver

3

Sept 12

Inheritance I

Ch. 4

590_3.pdf

Paper saver

4

Sept 19

Inheritance II/ Algorithm Analysis I

Ch. 4 & 5

590_4.pdf

Paper saver

5

Sept 26

Recursion & Sorting I

Ch. 5

590_5.pdf

Paper saver

6

Oct 3

Sorting II

Stack & Queues

Ch. 7, 8, 11, 16

590_6.pdf

Paper saver

7

Oct 10

No Class

 

 

8

Oct 17

Linked List

Ch. 17

590_7.pdf

Paper saver

9

Oct 24

Midterm

 

 

10

Oct 31

Midterm Solution

 

 

11

Nov 7

Trees/Binary Search Trees

Ch. 18 & 19

590_8.pdf

Paper saver

12

Nov 14

Priority Queues / Binary Heaps / Hash Tables

Ch. 21 & 20

590_9.pdf

Paper saver

13

Nov 21

Graphs

Ch. 14

Paper saver

(warning: large file!)

14

Nov 28

Collections API

Ch. 6

590_12.pdf

Paper saver

15

Dec 5

Final