80 likes | 97 Views
Data Structures CSCI 132, Fall 2018 Lecture 1 Big Ideas in Data Structures Course website: http://mathcs.holycross.edu/~csci132. Crafting a Program. Four main ideas used in creating complex computer programs: Data Abstraction Modularity Algorithmic complexity Standard Tools.
E N D
Data StructuresCSCI 132, Fall 2018Lecture 1Big Ideas in Data StructuresCourse website: http://mathcs.holycross.edu/~csci132
Crafting a Program Four main ideas used in creating complex computer programs: • Data Abstraction • Modularity • Algorithmic complexity • Standard Tools
Recall Problem Solving One of the most important problem solving techniques is: Divide Conquer & Glue
Dealing with Abstraction • Abstraction • Allows you to capture common patterns in things and ignore inessential details. • Black Box Abstraction • Allows us to use things without knowing how they work. For example, a telephone. • Data Hiding • Allows use of a program component without knowing the specifics of how it is implemented.
Layers of Abstraction • We can build up layers of abstraction to create complexity. • Without layers of abstraction we could not understand the most complex programs • (e.g. Microsoft Word ~ 1,000,000 lines of code).
Modularity • The best programs are modular. • The pieces can fit together and be used in many different ways. • Lego building blocks are a classic example of modularity.
Algorithmic Complexity • Not all computer programs are equal. • The efficiency of programs can be measured as: • 1. The amount of time the program takes to run. • 2. The amount of memory space used.
Standard Programming Tools • Data Structures • Stacks • Queues • Lists • Tables • Trees • Graphs • Algorithms • Searching • Sorting • Tree Traversal • Graph Algorithms