nit: We like to double-indent (8 spaces) continuation lines, to make them visually different from the nested block:

```python
with open('data/opendata2_courses/{0}.json'.format(
        department.lower()), 'w') as courses_out:
    for course in open_data_catalog_numbers:
        # ...
```

Better yet, just save the filename on its own line:

```python
out_file_name = 'data/opendata2_courses/%s' % department.lower()
with open(out_file_name, 'w') as courses_out:
```