Data Placement

Course Number: CS 163
Transcript Title: Data Placement
Created: January 26, 2015
Updated: July 10, 2015
Total Credits: 4
Lecture Hours: 40
Lecture / Lab Hours: 0
Lab Hours: 0
Satisfies Cultural Literacy requirement: No
Satisfies General Education requirement: No
Grading options: A-F (default), P-NP, audit
Repeats available for credit: 0

Prerequisites

Course Description

Explores the storage of data within a computer, focusing on aspects of placement that are necessary to efficiently sort, search, traverse, and manipulate simple data structures, manage dynamic memory, and leverage the memory hierarchy. Prerequisite: CS 161. Audit available.

Intended Outcomes

Upon successful completion of this course, students will be able to:

  1. Apply C++ to programming problems.
  2. Program using functions with pass by reference, arrays of structures, classes, pointers, dynamic memory, and linear linked lists.
  3. Program using binary search trees and doubly-linked lists.
  4. Select the proper sorting algorithm for a problem.
  5. Assess the performance impact of hardware features such as pipelining, and architectural principles such as memory locality.
  6. Identify performance bottlenecks in C/C++ programs.

Outcome Assessment Strategies

Homework, observation, class discussion, examination.

Course Activities and Design

Lecture, supervised laboratory instruction, in-class and out-of-class assignments, discussion and examination.

Course Content (Themes, Concepts, Issues and Skills)

  • C++
  • memory model
    • pointers
    • arrays
    • linked lists
    • heap allocation
  • functions
    • stack allocation
    • stack frames
    • call by reference
    • call by value
  • data structures
    • matrices
    • trees
    • graphs
  • architecture
    • cache
    • spatial locality
    • temporal locality
    • pipelining
  • profiling