We used Python code to perform basic CRUD operations on our database. It would be worthwhile to note that as applications get larger and more complex, the programmer should consider making use of an ORM (object-relational mapping) library instead of direct CRUD operations. Read more about ORM and its benefits at http://blogs.learnnowonline.com/2012/08/28/4-benefits-of-object-relational-mapping-orm/.
We used a thread lock as a synchronization primitive in 9.02_lock_demo.py. There are several other synchronization primitives that could have been used instead. Learn about other synchronization primitives at https://www.usenix.org/legacy/publications/library/proceedings/bsdcon02/full_papers/baldwin/baldwin_html/node5.html.