CMSC 270 - Data Structures

Spring Term 2018

Lectures
  1. Introduction to C++
  2. Objects and Pointers
  3. Arrays and Pointers
  4. Introduction to iterators
  5. Pointers vs. references
  6. Designing a complete class
  7. Iterators for linked lists
  8. Stack and Queue implementations
  9. Parsing and expression trees
  10. Bit level operations
  11. Functional programming in C++
  12. Smart pointers in C++
  13. Custom memory management
Assignments
  1. Insertion sort using pointers: due Wed., April 4
  2. Improved String class: due Wed., April 11
  3. Making an iterator for the doubly linked list class: due Wed., April 18
  4. Programming assignment 3 from the end of chapter five: due April 27.
  5. Programming assignment 2 from the end of chapter six: due May 2.
  6. Implement an AVL tree: due May 9.
  7. Implement a B-tree: due May 18.
  8. Expression Trees: due May 30.
Exams

First Midterm

The first midterm exam will be held in class on Monday, April 23. This exam will cover everything up through the end of chapter four. Here is a study guide to help you prepare.

Second Exam

The second midterm exam will be held on Monday, May 15. The exam will cover chapters 5 and 6. Here is the study guide for the second exam.

Final Exam

The final exam will be held on Tuesday, June 5 from 8:00-10:30. Here is a study guide to help you prepare.

Resources

Syllabus

The syllabus for this course is here.

C++ Compiler

You will need access to a C++ development environment for this course. We have Visual Studio installed on the lab computers in Briggs 419 for you to use. If you would like to work on your own computer, you will need to get a C++ development environment to install on your computer.

If your computer is a Windows computer, you should download and install the free Visual Studio 2017 Community Edition.

If your computer is a Macintosh you can download the XCode development tools for free from the Mac App store.

Getting started with C++ Programming

Here are guides to compiling and running our first example program using Visual Studio on Windows and Xcode on Mac OS.