Libraries and Extensions

Wikipedia defines libraries as "a collection of non-volatile resources used by computer programs, often for software development". In computer science, libraries are basically any type of tool that add on to the functionality of a programming language. You have already familiarized yourself with many different libraries in CS10. In Snap!, blocks like the "list to sentence" or "sentence to list" blocks are all part of the Word, Sentences library. In Python, you have seen the Turtle library in the first python lab, along with many other libraries in the most recent data science lab.

list sentence c curve

In Snap!-Programming-Universe (SPU)*, there exists extensions that are built on top of Snap! These extensions are similar to libraries, but instead of them being blocks that import directly to Snap!, they have their own set of blocks and interfaces that can be unique to the extension.

Today you will be exploring different libraries/extensions. While we encourage you to explore all of the modules in this lab, you are only required to receive 2/6 points on the Gradescope conceptual quiz to earn full points on this lab.

Here is a brief overview of the modules and what you will be doing with them:

If you are interested in Pygame, you are welcome to check out the documentation or this resource that was made in 2021 by the old CS10 staff: Resource. Pygame allows for the development of games that include graphics, sound, and music by providing a framework for rendering graphics, handling sounds, managing events, and more. It is also used for other types of multimedia applications that require graphical display, audio, and user interaction. Pygame is popular for its simplicity and is often recommended for beginners in game development.
However, please note that the CS10 staff may not be able to help with Pygame debugging or specific features.