Training - University of Southern Mississippi

Download Report

Transcript Training - University of Southern Mississippi

Data Structures in C++
CSC307
What The Course Is About


A data structure is a particular way of storing
and organizing data in a computer so that it
can be used efficiently.
Data structures are concerned with the
representation and manipulation of data.
Data: Streets in a city.
Manipulation: Do something with the data.
Add a new street.
Close a street.
Make a street one way.
Find route from your home to nearest gas station.
Data representation: simple variables…int, float
array variables… int [], float []
Others to be studied in this course.
Data Structures in 307








Linear List Arrays
Stacks.
Queues.
Dictionary.
Binary trees.
Priority queues.
Search trees.
Graphs.
Stack
Queue
Dictionary
Example Tree
President
root
children of root
VP1
VP2
Manager1 Manager2
Manager
VP3
Manager
grand children of
root
Worker Bee
great grand child of root
Example
Prerequisites


C++ (CSC101, 102) with a grade of C or
better.
Math
Web Site For The Course

www.cs.usm.edu/~nwang/datastructures
10:45-11:45
Textbook
Organization of Text

Three parts
– Part I … Chapters 1-4, Background
– Part 2 … Chapters 5-16, Data Structures
– Part 3 … Sorting Algorithms

Each chapter … concepts +
applications
Grades





5% for participation
15% for in class tests
30% for assignments (3 assignments)
30% for midterm
20% for final exam
Homework submission


Make sure your code can be compiled
on Orca!
Submit your codes to class gmail:
– [email protected]

Submit your paper tests in class before
you leave
Tests


Test 1: (take home)80+/100 will be
considered to stay in 307, other may
retake 101
Test 2: (take home), 70+/100 will be
consider to stay, others may retake 102
Exams



Exams are close book, close notes
3 term exams 30%
Final 20%
Grades (Rough Cutoffs)





90 to 100
80 to 89
70 to 79
60 to 69
0 to 59
A – Excellent work
B – Good work
C – Average work
D – Inferior work
F – Fail
Goal




Learning efficient data structures and
algorithms
Design and write large programs
Understanding and designing data
abstraction and interfaces
Learn C++