POGIL Activities for CS Principles

        a non-majors college-level computer science course

Authored by Helen Hu, Westminster College hhu@westminstercollege.edu

Classes are 75 minutes long. Students are primarily first-year college students (1/3 CS majors).

A work in progress. See this page for more polished and tested CS 1 POGIL activities.

Acknowledgements: Many ideas come from other CSP courses, including Mobile CSP’s CSP Lessons, Jeff Gray’s CSP course at University of Alabama, and Code.org’s CS Principles curriculum.

Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.

Email Helen for full access to all activities.


1. Learning Team

A POGIL activity originally by Urik Halliday about working in POGIL teams. A good first POGIL activity. You will need copies of these POGIL Role cards.

App Inventor lab: Hello Purr App and homework assignment

        Basic introduction to App Inventor - works best with phones because tablets don’t vibrate

2. AppInventor Exploration Group Activity - App Inventor

A POGIL activity to be used after students have completed their first app. This activity encourages students to explore the options in App Inventor and understand how it is laid out. It’s a good idea to print paper copies of this activity, so students don’t need to switch between Google Docs and App Inventor.

Facilitators: check answers to questions 3c, 5, and 9. Explain what Any Button means.

App Inventor lab: Coin Flipping App

        This lab introduces if-statements.

3. Parts of a Computer Group Activity and Individual Homework Assignment

Started with a guided inquiry classroom activity from ECS curriculum (day 1 of Unit 1) (not a POGIL activity), leading students to create their own definition about what makes a computer.

Follow this with the POGIL activity introducing the parts of a computer (hardware / software), leading to programming structures (conditional vs repeating). A question should be added to Model 2 about hard drives versus flash storage.

Facilitators should review questions 4, 11c, and 12. Questions 14 and 15 are good ones for students to list on the board.  

4. Variables Activity

A POGIL activity that introduces the concept of variables, choosing good identifiers, and incrementing. Emphasizes the difference between set and get (important in App Inventor).

Facilitators should review questions 1 and 2 (emphasize that both 2 & 3 variables are reasonable answers, because there are different ways of coding the same algorithm). Ask fastest two teams to give their answers to Model 2 table and 9b on the board.

5. Binary / ASCII / Abstraction POGIL Activity

A POGIL activity based on the CS Unplugged activity for teaching binary numbers. Leads to ASCII and a first introduction of abstraction.

Facilitators should create copies of these binary cards for each group. Encourage groups to create 16, 32, 64, and 128 cards with the blanks. Key questions to review are 2c,

6. Loop Activity - App Inventor

A POGIL activity on the parts of a loop and how the condition controls the number of iterations. This activity could easily be adapted for other programming languages.

7. Modulo operator / random numbers - App Inventor

A POGIL activity on the App Inventor operators, the modulo operator, and generating pseudo random numbers. This activity could easily be adapted for other programming languages.

Note: here’s a great story on how understanding pseudorandom numbers helped one man beat a game show.

8. Pseudocode / Lists - App Inventor

This POGIL activity uses the Magic 8 Ball app to encourage students to design an app on “paper” before coding. Students are introduced to lists. Global variables are revisited.

Key questions to review are 2, 3, 5b (a chance to introduce the concept of “type”), 10, 11, 14.

9. Bits, Bytes and Text Compression

The second half of the lesson is borrows heavily from Code.org. Here’s the lesson plan and the widget.

Key questions to review are 4d (1024, not 1000) and 8. Stop at the start of Model 2 to demo the Text Compression widget and have students create an account for Code.org. (I had my students use their Google Accounts to log in.) Have fast groups watch the video while they are waiting for everyone to finish Model 1. Then list the different text files on the board along with the best compression rates (so students can try to beat each other’s compression rates).

10. Black & White Images

A POGIL activity based on Encoding B&W Images Lesson from Code.org. Key questions to review are 4d (1024, not 1000) and 8.

Extension Questions - What is a file? What meta data would be useful for Word files? For mp3 files?

11. Color Images - revised for Fall 2016

A POGIL activity that builds from black and white representation to grayscale to RGB color space.

12. Introduction to the Internet 

A POGIL activity introducing IP addresses, DNS servers, bandwidth and latency. Here is an older version that does not use Code.org’s internet simulator. Key questions to review are 3, 5b, 7, 10, 11c, 12, 18, 22.

13. Internet protocols - revised for Fall 2016

A POGIL activity on TCP and the Internet that emphasizes abstraction. (Here is an older activity) 

14. Encryption - revised for Fall 2016


Last Year’s Activities (not yet revised):

15. Programming Process / Secure Coding 

A POGIL activity asks students to think about how programs can go wrong, and how understanding the problem and testing can help reduce errors. Students are encouraged to discuss ways of debugging their own code.

        

16. Debugging - App Inventor

A POGIL activity that guides students through debugging an AppInventor program.

17. Data Persistence - New Version - App Inventor

A POGIL activity that asks students to consider different ways data can be stored in an AppInventor program.

18. Passwords

19. Programming Process

20. Software Engineering

21. Computational Science 

Chris Mayfield’s repository (student facing version)

Growth Mindset Activity

Suggestions for Fall 2016: