[ Home | Lab | New Students | Courses | Research | Publications | Activities ]

Back to Courses and Activities of Local Interest

Back to CSC 311 Home


CSC 311: Data Structures

(Section 001; Call Number 282300)
TH 1:05 PM - 2:20 PM, Cox 214

Munindar P. Singh
Email address: singh@ncsu.edu
Office hours: TH 2:30PM-4:15PM; TH 6:15PM-7:00PM
Office: Daniels 131C

TA: Seema Dutta
Email address: sdutta@eos.ncsu.edu
Phone: 515-
Office hours: M 2:30-4:00PM and W 10:00-11:00AM
Office: Daniels 209

Prerequisites

The following are the prerequisites. Students failing to meet the prerequisites will be dropped administratively. If you don't have the prerequisites, please drop yourself to avoid losing an opportunity to take an alternative course.

Here is a (partial) list of topics that will be assumed: infinite series, recurrence relations, elementary set theory, relations, partial orders, functions, concept of a theorem, propositional logic, predicate logic. These topics are covered in CSC222: Applied Discrete Mathematics. You may review Chapters 1 to 6 from the following book, which is sometimes used as the CSC 222 textbook:

Kenneth H. Rosen, "Discrete Mathematics and its Applications", McGraw-Hill, fourth edition, 1999. ISBN 0-07-289905-0.

Textbooks and software

Topics

This course will develop the key concepts of data structures that underlie computer algorithm design and implementation. It seeks to form the cornerstone of the students' programming skills and shall be the basis of most later computing education. Upon successful completion of this course, students should be able to

Features

Topics

Specifically, we will cover the following topics from the textbook. The indicated class times are approximate estimates! Not every subsection of a listed section may be covered.

  1. Introduction to ADTs (0.5 weeks: chapter 1)
    Mathematical Preliminaries (self-study: chapter 2)
  2. Algorithm Analysis Concepts (1 week: chapter 3)
  3. Stacks and Queues (1 week: chapter 4.2, 4.3)
  4. Linked lists and recursion (2 weeks: chapter 4.1)
  5. Trees (2.5 weeks: chapter 5.1, 5.2, 5.3, 5.5, 5.6, 11.4)
  6. Graphs (2 weeks: chapter 7)
  7. Sorting and Bounds (1.5 weeks: chapter 8.1, 8.2, 8.4, 8.6, 8.9)
  8. Hashing (1 week: chapter 10.1, 10.2, 10.4)

Grading

+/- grades will assigned. There will be a lot of work - please plan to spend about 11-13 hours for this course (outside of class) each week. Some of the homework assignments may also involve programming.
Component Points
Quizzes 30%
Final Examination 20%
Homework 15%
Programming Projects 30%
Class participation 5%

Important Dates

The official dates are provided here only as a courtesy. I don't accept responsibility for any errors in those dates.
Event Date
Last day to drop with refund January 20
Academic difficulty reports due February 1
Last day to drop without grade February 17
Last day of classes April 30
Final Examination May 4, 1:00-4:00PM

Watch the page (http://www4.ncsu.edu/eos/info/dblab/www/mpsingh/local/311/) for updates.


singh@ncsu.edu