CSC 161 Grinnell College Fall, 2011
Imperative Problem Solving and Data Structures

CSC 161 Module 5: Music Composition with Dynamic Data Structures

Summary and Main Topics

The purpose of this module is to cover pointers, and their use in common self refferential data structures, such as linked lists, in detail. The main topics covered are:

  1. pointers
  2. linked lists

Day-by-day Details

Day Topic Preparation In-class Due Date Availability
Friday, November 4 Pointers Review:
  • 5.1-5.2
  • 5.3-5.6
Monday, November 7 Pointers Read:
  • 5.8-5.12
Pointers Lab    
Tuesday, November 8 Linked Lists Review:
  • 6.4, 6.7
Scheme-like Linked Lists Lab    
Wednesday, November 9 Linked Lists   Linked Lists and Robots Lab    
Friday, November 11 Project: Myro Maestro Reading: Doubly Linked Lists
Understand: myro-maestro.c
Experiment: myro-maestro
Project: Myro Maestro    
Monday, November 14 Project: Myro Maestro   Project: Myro Maestro    

Project: Music Composition Myro Maestro

Doubly Linked List Music Management

Working in pairs, students should implement a program that facilitates creating and editing of a song using a doubly linked list backend that they will implement themselves. The goal of the program is to be able to create or load a tune, and then easily change it in any way you might see fit including adding, moving, and deleting notes. into the tune of a song.

A semi-functional shell will be given that will work once the doubly linked list library is implemented, as specified in the provided header, and once any other missing pieces positioned correctly. The provided program will also fascilitate saving and loading the linked list data to a specified binary file. This will come in handy if students end up writing lengthy songs (..because the program is so cool)!


This project will be worth 45 points, based on the following rubric:

Extra Credit: