Collaborative Activities#
This set of activities give students different entry points for thinking about operating systems and interfaces, from exploring simulations for historical operating systems to playing command-line text games to designing an interface/user experience.
Group Roles
Note Taker: Primary notetaker in a shared space
Illustrator: Primary person/people responsible for developing concept maps, wireframes, or other visual material
Driver: Primary person responsible for testing things on a computer and sharing their screen with the group
Navigator: Primary person responsible for translating and communicating instructors for the group
Reporter: Primary person responsible for sharing highlights with the larger group & submitting the group’s work
Time Keeper: Primary person responsible for keeping an eye on the clock and keeping the group on task
Operating System History#
Students use a template spreadsheet to explore particular operating systems, with some opportunities to engage with software simulations. Their collaborative annotations are submitted via Ga Google Form to make a collaborative timeline using TimelineJS.
Templates
Google Sheet with tabs for OS information and the Timeline JS template
Google Form for student data entry
If using copies of these materials, you will need to link the Form results with the Google Sheet.
Activity
Step #1: Let’s spend some time exploring older operating systems, thinking about your own experiences and some of the arguments McPherson is making. You can work individually or collaboratively. In the “inventory” tab, add your name or your group members’ names to the “A” column for the operating system you want to focus on.
If working collaboratively, decide on group roles: Navigator, Recorder, etc.
Step #2: Each operating system has links to a simulator where you can explore the system and background information on the system. Some operating systems also have software libraries you can explore.
Step #3: As you/your group explores, discuss and take notes (using the Google Form) on….
Who was involved in developing the system (and where/when)
What kinds of tasks or needs the OS was designed for
What we’re able to tell about what hardware the system ran on, or what computer models it was used with
Your experience navigating or using the system
Any other details or info you want to emphasize
Exploring the Command Line#
Students use command-line text games to build proficiency with terminal syntax/navigation, as well as file systems and directory structures. This version of the activity has student groups use dry erase surfaces to map out the game world/structure. This could also be done using digital tools or pen/paper.
Discuss
Share some of your experiences working through the tasks/commands in the “Working at the Command Line” tutorial section of the chapter. How does working at the command line compare to other ways of navigating and interacting with a computer?
Possible Games
Game |
Credits |
Getting Started |
|---|---|---|
Noah Veltman |
Download using |
Use cd to navigate into the newly-created clmystery directory |
| Bashcrawl (version of the 1970s Colossal Cave Adventure game) | Slackermedia | Download using git clone https://gitlab.com/slackermedia/bashcrawl (terminal command)
Use cd to navigate into the newly-created bashcrawl directory |
| BashVenture (a few different room-based scenarios) | Andrew petro, UW-Madison | Download using git clone https://github.com/apetro/BashVenture (terminal command)
Use cd to navigate into the newly-created BashVenture directory and rooms sub-directory
Use bash SCRIPT-NAME to run the script for a specific room
Key combinations to exit the script:
PC:
Control CMac:
Command C| | Terminus | MIT | If you absolutely aren’t able to install or run something locally, Terminus is a web-based option that runs in the browser. |
Activity
Step #1: Some of the earliest computer games were command-line based text games. We have a few options for text-based games that run in the terminal. Choose one to explore as a group, and have as many group members as possible install the game your group is working on.
Step #2: Start to get a feel for how you navigate or move through the scenario for the game you’re focusing on. Use one of the small dry erase boards to note key game instructions or commands.
Step #3: Start to map out or move through the game’s task or scenario. Use one of the small dry erase boards to build a map for your game (this could be a spatial layout, a concept map, or something else entirely).
Step #4: Get to a stopping point with the game’s task or scenario. Discuss and take notes on some of your reactions and experiences playing the game.
What were you able to accomplish?
What challenges or difficulties did you encounter (and how did you approach solving them)?
How did this experience shape your understanding of (working at) the command line?
Any other comments or questions folks want to share from this experience
Step #5: Take a picture of your group’s diagram and upload to a shared folder.
Speculative Interface Design#
Prior to this activity, students have learned more about operating systems (in general), historical operating systems, and their own computer’s operating system, as well as graphical user interfaces (GUIs). This activity lets student groups consider how they would design an operating system. This activity focuses on the front-end user interface/experience, not the back-end technical architecture.
Activity
Step #1: Who are some of the users for your system/interface and how will they access or interact with what you build? You can think about factors like age, location, specific devices, etc.
Step #2: Keeping in mind your step #1 notes, what are some of the core functions or tasks users will want or need to do with your system/interface? This could include things like file management, media rendering, etc.
Step #3: Keeping in mind your notes from the previous steps, who are you in conversation with – are there other systems or interfaces that accomplish a similar set of tasks or core functions for a similar group of users?
Step #4: Start to develop a visual model for your system or interface. This could focus on a “desktop” or “home page.” You could also map out a couple key screens or components. You could also focus on a conceptual model of the interface as a system.
Step #5: Take a step back and reflect on the group’s process and decisions. What were you able to accomplish? What feels unfinished, or what else would you think through given more time?
Step #6: We’ve had a few conversations around how we can move toward more equitable, inclusive tech systems. (How) does your interface or system acknowledge or address issues of inequality? What assumptions or choices went into your group’s thought process or choices?
Step #7: Take a picture of your group’s work and add to a shared folder.