CS 310
Data Structures
Spring 2016
T,R 12:00pm - 1:15pm, Innovation Hall 204

Prof. Richard Carver
email: rcarver_AT_cs_DOT_gmu_DOT_edu
office: 5318 Nguyen Engineering Bldg.
office hours: Tuesday and Thursday 11:15-11:45am and by appointment.
phone: (703) 993-1550

Grade of C or better in CS 211 and MATH 113. Prerequisite enforced by registration system.
Corequisite(s): CS 105.

Class website

The class website is http://cs.gmu.edu/~rcarver/cs310/.


The text is Mark Allen Weiss, Data Structures & Problem Solving Using Java, 4th ed., Addison-Wesley, 2010

The course

The prerequisite for this course is C or better in CS 211. I will assume that you have developed a significant degree of skill in programming (program organization, coding, documenting, testing and debugging) -- you will develop yet more this semester. I will also assume that you are able to build abstract data types using Java classes.

The purpose of the course is two-fold. We will continue the study of data structures from CS 211 and we will learn how to approach larger and more challenging programming projects than those you did in CS 211. Programming is a significant part of this course and you should expect to spend a good deal of time on the course projects.


Topics to be covered include:

This list is subject to change as interest evolves.

Schedule (tentative):

Week 1, 1/18-1/22:
- Overview, Basic Complexity, Ch 1-4
- Generics, Expandable Arrays, Ch 5
Week 2, 1/25-1/29:
- Expandable Arrays (ArrayList) Ch 15
Week 3, 2/1-2/5:
- Testing, Linked Structures, Ch 6.1-3
- Stacks, Queues, Inner Classes Ch 16, 6.6
Week 4, 2/8-2/12:
- General Linked Lists, Ch 17
Week 5, 2/15-2/19:
- Doubly Linked Lists, Ch 20.1-7, Ch 6.5
Week 6, 2/22-2/26:
- Hash Functions and Tables, Ch. 6.7-8
- Hashing Strategies,Ch 20
Week 7, 2/29-3/4:
- Review (Tues) + Midterm (Thurs)
Week 8, 3/7-3/11:
- Spring Break

Course outcomes

The students will:


There will be several programming assignments. Programming assignments will be posted on the course website.

You may discuss the programming projects with other students (this is encouraged) but you must do and submit your own work. No joint work will be accepted. and the University honor code: http://oai.gmu.edu/the-mason-honor-code/. You are bound by these honor codes. Any submitted work which shows too much commonality with others' work to be completely original, or any plagiarized work, will result in a case for the Honors Committee. Any code which is presented in class or provided to you as part of the project may be included in your programs.

Late programs will be accepted with a 10 points per day late penalty. You are responsible for keeping backups of your work ("my disk crashed" and "my roommate ate my program" are not reasons for late submissions).


There will be a midterm exam and a final. There will be no makeups on exams except under exceptional circumstances (as judged by me), and any such makeup must be arranged in advanced. Grades will computed from a weighted average computed with the following weights:

Final grades will be assigned according to the following criteria. It is a 10-point scale per letter grade, with the upper and lower 2% of each 10% earning a + or -.

Percent Grade Percent Grade Percent Grade Percent Grade
>= 98 A+ 89-88 B+ 79-78 C+ 69-60 D
97-92 A 87-82 B 77-72 C <60 F
91-90 A- 81-80 B- 71-70 C-    

If you are a student with a disability and you need academic accommodations, please see me and contact the Office of Disability Services (ODS) at 993-2474. All academic accommodations must be arranged through the ODS.


GMU Academic Calendar    |    GMU Final Exam Schedule    |    Calendar of Religious Holidays