CS257 Software Design Wednesday, 28 September 2022 1. books project - making a development plan - user-facing program vs. code-facing module/class/function/... - how does this code look from the CALLER's perspective? - top down? bottom up? both and meet in the middle? - separate books.py or main program in booksdatasource.py? - stubs - iterative development with very small iterations - command-line argument parsing - parsing CSV files with and without the csv module - BooksDataSource - why have it at all? - do you want to preload the CSV file contents or just remember the file name and parse it in books, authors, books_by_year? - the "with" construction in Python - special methods in Python: __eq__, __lt__, etc. - pay attention to the stuff in my repository https://github.com/ondich/cs257_2022_fall (books2.csv, authors2.csv, books_authors2.csv will be relevant in a couple days) 2. Working on the project