help me understand the drupal way to develop this module
Yes it would be easier to develop as you have in your example. To make it so that anyone can update let's try to do it a Drupal way. This way may not be the quickest/easiest but it will give you an idea of Drupal and make it easy to update the content.

There are many distros that help make Drupal easier I would suggest Panopoly to start with. Or you can use core and install the modules as you go (I will probably miss several modules that I am just really used to always being there that are actually contrib).

1. Custom Content Type
Create a 'sessions' CT and add the fields and fieldset that you need i.e. 'Read it' and 'Do it'. You can use file fields and field_collections.

2. Create View Use the Views module to create a view of Content Type: 'sessions'. You can create an exposed filter for the drop down.

3. Create a Basic Page and add the view block to it (personal preference to suggest views block and not views page for expandability, etc.).

No code this way all GUI. The user would just have to create new content of this type and it would appear on the page.

Tip: Use Features to save your work and provide an exportable default.