CSCI-C243
Introduction to Data Structures
Syllabus
0 Orientation and setup
1 Object-oriented programming
2 Linear Structures
3 Algorithms
4 Nonlinear Structures
5 Functional perspectives
Final Exam
Reference
Coding Standards
Recreation
Textbook
Data Structures
Lab Guide
Java
Not Smoking
Home Pages
Canvas
Instructor
Credits
Topics
0 Orientation and Setup
Syllabus
Computer setup
INFO I210 Computer Setup Guide
, with
Connecting to Merlin
Java
Haskell
Version control:
darcs
or
git
1 Object-Oriented Programming
Java review
Encapsulation
(
Slides
)
Version control
(
Slides
)
Lab 1: Java Review and OOP
Polymorphism
(
Slides
)
Inheritance
(
Slides
)
Quiz 1 in
Canvas
2 Linear Structures
Stack and queue interfaces
(
PDF slides
)
Lab 2: Postfix Calculator
Array-based structures
(
PDF slides
)
Linked structures
The conventional wisdom (chapter notes)
Functional linked structures
PDF slides
Quiz 2, Linear Structures, in
Canvas
Lab 3: Linked Lists
3 Algorithms
Analysis of algorithms
(
PDF slides
)
Searching and sorting
(
PDF slides
)
Quiz 3, analysis of algorithms, searching and sorting, in
Canvas
Recursion
Quicksort in Haskell in two lines
Lab 4: Improving Quicksort
Midterm Review and Exam
Guide
4 Nonlinear Structures
Trees
Graphs
Sets
Quiz 4, in Canvas
5 Functional Perspectives on Data Structures
Functional linked structures
(repeated from Unit 2)
PDF slides
(repeated from Unit 2)
Linked structures in Haskell
Lab 5: Functional Lists
Elementary Functional Trees
Review Test 4 in Canvas
Red-black trees
Heaps and tries
Disk structures and sorting
(with
slides
, incomplete)
Revised
Lab 6: Trees and Sets
Quiz 5 in Canvas
Final Review and Exam
Guide
Extra Topics
These topics have not been covered in recent years (2012, 2013) and probably won't be, due to lack of time.
Advanced linear structures
Memory management
Memory management: more on garbage collection
Reference
Coding Standards
Coding Standards
Recreation
Foxtrot
User Friendly
Worse Than Failure
Curious Perversions in Information Technology
Sorting Animated
Textbook
1.
Peter Drake's
Data Structures and Algorithms in Java
(publisher's site)
Source code and errata
(author's site)
2.
Larry LIU Xinyu's
Elementary Algorithms
(free book, the link to the current version points to a 7 MB PDF file that you can view online or download)
Data Structures and Algorithms
NIST Dictionary of Algorithms and Data Structures
Lab Guide
A Guide to Linux at IU East
OLD
IUE Linux Lab Manual
Java
All links in this section updated.
Java SE
(Standard Edition). You must use a Java compiler compatible with Sun Java version 1.5, also called 5, or later; version 1.6, also called 6, is recommended.
The Java Tutorials
API documentation:
Java 6
|
Java 7
|
Java 8
Java SE Documentation at a Glance
Not Smoking
Programming can be stressful. Does stress make you want to smoke?
ACS Guide to Quitting Smoking
(why and how)
Home Pages
Informatics
Management Information Systems
IU East
IU