This learning module explores app creation using e-learning and Code.org. The lessons are from Unit 4 of a AP Computer Science Principles class for upper-grade level high school students. The curriculum has been modified to fit the module format. In the module, students work through steps to create an app and provide peer feedback.
Code.org, apps, functions, design, ubiquitous
Traditionally, learning consisted of teachers providing information to students who listened and were tested on the amount of information they could absorb and regurgitate in the classroom. This is known as didactic learning. While there is still a place for didactic learning in many school subjects or lessons, learning in the classroom has changed dramatically. It continues to change as technology is integrated into more classrooms. Today, students can learn in ways that could not have been imagined one hundred, fifty, or even twenty years ago. Educators now focus lesson delivery on the students' different learning styles and give students choice and flexibility in learning and demonstrating knowledge. Learning also involves engaging the learner in activities, discussions, and peer feedback through technology that transcends the constraints of the traditional classroom. Due to the COVID pandemic, students were forced to learn online versus in the classroom. Educators attempted to adjust lessons to accommodate the new e-learning environment while still allowing for authentic and transformative learning experiences.
Technology-mediated learning is discussed in update seven of the EPOL 481, New Learning course (Cope & Kalantzis, 2020). In chapter 1 of their e-Learning Ecologies book, Dr. Bill Cope and Dr. Mary Kalantzis (Cope & Kalantzis, 2017) also explain that the "anywhere, anytime" idea of learning, or "Ubiquitous Learning" is only possible through the use of technology.
The learning module I have created demonstrates and practices ubiquitous learning by providing information to students that can be completed anywhere, anytime. The learners will read content in the updates and watch videos to gain knowledge and participate in discussions, projects, and peer feedback, asynchronously.
The lessons allow all students to access the material, engage with the material, and demonstrate learning flexibly. This learning module focuses on Universal Design for Learning principles to give students a choice in how they engage with the material and demonstrate their learning. Several options are offered, such as watching a video or reading a slideshow for the same information. In addition, students conduct research to further their learning and choose which topics to use when designing and creating projects.
As a computer science teacher, I live and breathe programming. I teach STEM, beginning, intermediate, and advanced programming classes and sponsor a programming/STEM club. I currently teach this lesson in my high school Advanced Placement "AP" Computer Science Principles class but have modified it to fit into the module format in a flipped classroom setting.
This module is part of Unit 4 - Variables, Conditionals, and Functions. The first lesson starts with an introduction to Functions Explore / Investigate with videos and a slideshow. It then works into practicing and making functions and a three-step project to create and test an app the students develop. A few worksheets and peer feedback are included. Throughout the project steps, students are taught elements of functions to apply to app design. I have broken up the material in the modules and allowed for deeper thinking and interaction amongst students through comments and updates. The app project is precisely what I use in my classes and fits nicely into this learning module. A peer-review is provided in Update 6.
*NOTE: If the Code.org links ask for a login for access, this is because I have included links to the actual class I teach. I have attached a copy of some items for reference. You can also access the course if you create a login and use the code: ZZQHJY.
The next part of Unit 4 of AP Computer Science Principles involves Functions. Building on the lessons on variables and conditionals, the functions lessons allow for the design of increasingly complex apps.
Module Objectives and Intended Learning Outcomes:
The overall objective of this learning module is:
Using information from the learning module, learn how to program through a sequence of collaborative activities. Then build your own decision maker app to share with friends and help them make a decision.
Each update will walk you through the process of obtaining the above-referenced objective. The steps you will take include:
Module Time Frame:
The module will consist of six updates plus an assessment posted once per week. The intended time frame will be six weeks for completion. However, you may work at a slower pace if needed.
Materials Required:
Participation Requirements:
Comments:
Updates:
Comment on peers’ updates:
Standards
CSP Conceptual Framework
CSTA K-12 Computer Science Standards (2017)
AP - Algorithms & Programming
The class is conducted on Google Classroom and Code.org using a CollegeBoard-approved curriculum. I chose Code.org because it has an approved curriculum through CollegeBoard to allow students to earn college credit while taking the class in high school. All assignments are posted in Google Classroom and direct the students where to complete the work in Code.org. The learners for this module will consist of 11-12th grade high school students in an Advanced Placement Computer Science Principles Class. However, the module could be adapted to younger or post-secondary settings based on the specific college's scope of sequence. It is assumed the learners have prior knowledge in the following areas from previous units including:
The overall objective is stated for students as well as the intended learning outcomes. Complete standards alignment is included in each module.
It is assumed that students will be able to apply the knowledge created from this module into future modules, and the programming builds on the basics presented here. This module's information is part of a class that is also a prerequisite for the AP Computer Science A class.
The level of attainment of the goals will vary based on prior experience and further implementation of the skills learned. Overall, the desirable level of achievement would be mastery of the objectives. To monitor this, the instructor has chosen the following assessments:
The purpose of these assessment instruments is to test the learner's knowledge gained during the module and encourage learners to transfer skills and knowledge into practice effectively. In addition, the instruments will assess the learner's ability to solve programming-specific problems as they relate to app design and development, starting with peer feedback and ending with a summative problem-solving assessment.
This module will include formative and summative assessments. Formative assessments will be conducted in self-reflection, class discussion, and peer feedback of current lessons. Two summative assessments will be completed: One within one week of the workshop's close as a peer-reviewed project and the other in the last module. The peer-reviewed summative assessment will require learners to create an app of their choice using the knowledge and skills learned throughout the workshop.
The module works through The Revised Bloom's Taxonomy (RBT):
Go through the slides in lesson nine to complete the activities. There are also many items to be completed in Code.org for this lesson.
Using the Song Lyrics link, complete the prompt in the slides.
This lesson does not feature a large hands-on explore segment, but you should still get a quick introduction to the concept of a function before jumping in the code to try it out.
This second song is written in a style that we will use to write some of our programs. We're going to start by looking at a program that "sings" this exact same song.
Level 1 - Explore Song Lyrics on Code Studio.
Watch the code run slowly to see how the code that is running will jump down to the bottom of the program (the function declaration) when the name of the function is used (the function call).
This concept that we just explored in both text and a program is called a "function." Now, we're going to watch a short video that explains it in more detail.
Level 2 - Video:
Watch the video.
Video 1. CS principles: Defining and calling functions (Source: Code.org, 2015)
The most important two takeaways are:
Level 3 - Investigate Score Clicker
Run the code and explore it
Modify the program. All of the modifications should be made from within the function.
Level 4 - Investigate Lemon Squeeze App with Functions
Create a function by identifying repeated code. You'll need to create a single function for this repeated code.
Add a Comment: Provide a definition for a function and a function call. Give specific examples of each. (Comment of 50 words or more)
Make an Update: In your own words, describe the benefits of creating functions in your code. (At least 200 words, one scholarly reference, and one media element are required. Comment on three peers' updates.)
Students begin the lesson by considering two ways to write out the lyrics of a song, one that includes a lot of repeated text and one that does not. After exploring this example, students complete a series of investigating activities in which functions have been used to remove repeated code from a program. At the conclusion of the lesson, students discuss the concept of a function to synthesize their learning and add definitions to their journal.
This lesson is both the Explore and Investigate components of the EIPM sequence for functions. Functions are best understood by actually using them in a program. So while the Explore component is relatively shorter, students actually are given many opportunities to observe how functions are used in programs. There is a heavy emphasis on running programs slowly to see how functions change the programs' order.
If you are a teacher with more experience with the concept of functions, you may be wondering where other related concepts like parameters, arguments, and return values, will be introduced. In this unit, these additional concepts are not learning objectives, and they will not be discussed in detail until later units. For now, it is acceptable for students to think of functions simply as a way to name a collection of commands so that they can be used in multiple places within your code.
Students will be able to:
For the teachers
For the students
CSP Conceptual Framework
CSTA K-12 Computer Science Standards (2017)
AP - Algorithms & Programming
Complete the levels in lesson ten on your own in Code.org. I have supplied the debugging slides to review the debugging strategies for the lesson. Complete "bug reports" slides for your bugs. Visit the slides to help debug other students' bugs.
Today we're going to have a chance to practice programming with a lot of the concepts and patterns we've explored over the last two lessons. Alright, let's get to it!
Go to Code Studio, Lesson 10 Level 2
Today you're mostly going to practice what we've learned about programming with functions. I'm here to help you when you need me, and you can put this cup on your computer when you need help. However, I first want to remind you of the following:
Levels 1 - 5 Declare and Call Functions:
In these levels, practice declaring and calling functions. At first, you practice calling functions that have already been declared for you. Next, you can focus your energy on the syntax of calling a function and how using functions changes the order in which lines of code run. Later in the progression, you'll practice finding repeated code and are guided through creating a function in its place.
Watch the video.
Video 2. AP CSP - scope practice app lab (Source: Laura Paczewitz, 2020)
Levels 6 - 7 Function Scope:
These two levels return to a topic covered in the variables lessons: variable scope. While you do not need a deep understanding of scope at this point, you will, in some instances, encounter debugging challenges that arise because of it.
Level 8 - 9 Creating Functions:
In these levels, you'll revisit the Movie Ticket app and are challenged to think through the process of declaring a function with code that you anticipate could be repeated. Level 9 is a map level about when y should decide to create functions.
In our next lesson, you're going to have to use a lot of these on an independent project, and these activities are good practice for what you'll find there!
Add a Comment: What aspects of working with functions clicked today? What do you still feel like you have trouble with? (Comment of 50 words or more)
Make an Update: Look at the example. Think about what will be displayed after this code segment is run. Create your own example and describe what will run from the code segment. (At least 200 words, one scholarly reference, and one media element are required. Comment on three peers' updates.)
Students spend most of their time practicing using the skills and processes they have learned about functions in this lesson. At the conclusion of the lesson, students discuss remaining questions in anticipation of their Make project in the following lesson.
This lesson is students' primary opportunity to get hands-on with functions in code prior to the Make activity in the following lesson. Give students as much class time as you can to work through these. For this lesson, it's recommended that you place students in pairs as a support, if possible, and encourage discussion about the challenges or concepts they're seeing. In the following lesson, students are encouraged to work independently.
Students will be able to:
For the teachers
For the students
CSTA K-12 Computer Science Standards (2017)
AP - Algorithms & Programming
Follow the slides for Lesson 11 and complete the Activity Guide as you work through the lessons in Code.org.
Complete the Debugging Journal if needed to get help from your classmates.
We've learned a lot about using functions to simplify code and make it easy to edit for the past few weeks. So far, we have learned how to use functions to remove repeated code in our programs. Early on, it's common to realize you need a function only after you've completely written the same chunk of code in two places. As you get better, however, you'll realize sooner and sooner in the process that you're likely going to need a function and will be able to avoid writing repeated code before putting it inside a function. Eventually, you'll want to anticipate what your functions will be even before you start programming. These are the "during" and "before" levels we read about yesterday.
In today's Make lesson and the following peer-reviewed project, you'll have a chance to practice this. See if sometimes you can work that "during" or "before" category.
Explore the working Quote Maker App in Level 1
Think about:
Now let's build this app. The screen has been set up for you - it's your job to add the code!
Go to level two, where you will complete the Quote Maker App. An Activity Guide is provided if you would like guidance in creating the app. The most relevant programming pattern is displayed on a slide in the slideshow. Review this pattern quickly, if needed.
Add a Comment: What was the easiest part of the app you created? What was the most challenging? What can you do in future apps to resolve this challenge? (Comment of 50 words or more)
Make an Update: Apps serve many different purposes. Find and explore an app that you know uses functions in its programming. Give specific examples of how functions are used. (At least 200 words, one scholarly reference, and one media element are required. Comment on three peers' updates.)
Using Programming Patterns and a step-by-step approach, students make their own version of a Quote Maker app. At the beginning of the lesson, students are able to explore a working version of the app. They are then given the design elements of the app but begin with a blank screen. Next, students use an Activity Guide to go through the high-level steps they should use to develop their app but leaves it to them to decide how to write the code. In the end, students submit their apps which can be assessed using a provided rubric.
This lesson is an opportunity for students to take on the "blank screen" and build the code that runs an app entirely from scratch. The guidance provided throughout the lesson helps students break down the immense task of "building an app" into more incremental steps that they can use on future projects, including this unit's final project and the Create PT.
Students will be able to:
For the teachers
For the students
CSTA K-12 Computer Science Standards (2017)
AP - Algorithms & Programming
Have you ever been stuck trying to make a decision? What movie should we watch? Where should we go for lunch? How many chocolate bars can I buy? In the following three modules, you will build an app to help people make a decision.
Level 1-2 - Explore: Explore the two sample apps in levels 1 and 2. These apps should spark ideas in what you can create for this project.
Sample App #1: Where Should I Eat?
Sample App #2: Activity Finder
For each app, think about the following:
For this project, you will create an app that helps a user make a decision. Your app must take in at least one number and one string from the user that will help to make the decision. All of this information will be used as part of the decision-making process. In addition, your code must include at least one function used to update the screen. Use the planning guide to complete the following steps, This project will be reviewed by your peers, and you will receive feedback for revision.
Steps in the Process:
Step 1: Brainstorm App Ideas
Step 2: Choose one Idea
Step 3: Survey Your Classmates
Step 4: Storing Information
Step 5: Flowchart
Step 6: Design User Interface
Add a Comment: Choose one of the sample apps and discuss the following:
(Comment of 50 words or more)
Make an Update: App designers use the process steps above when creating apps. Find a decision-making app and explain the process the designer would have used, the data collected, and the decisions made when creating that app. Give your opinion of the process and steps such as suggestions for changes or current app challenges. (At least 200 words, one scholarly reference, and one media element are required. Comment on three peers' updates.)
Using a Project Planning Guide, students work through the stages of creating an app from scratch. This is the first day of a three-day project. This lesson is devoted to the planning phase.
The Practice PT gives students the opportunity to design and program an app from scratch. Welcome to The Decision Maker App! Students demonstrate mastery of variables, conditionals, and functions by combining these elements into a useful program designed to solve the problem of making a decision.
Students will be able to:
For the teachers
For the students
CSTA K-12 Computer Science Standards (2017)
AP - Algorithms & Programming
In this update, we are continuing work on the Decision Maker App. Each level in Code Studio contains a step to think through while constructing your app. You will now transition to Code Studio, where you will build your app.
Follow the Part 2 slides for guidance.
Be sure to read the instructions at the top and refer to your Planning Guide when instructed.
The debugging slides also have the steps to follow as well as debugging tips.
You can use the debugging slides to share any bugs you may have with your classmates and receive feedback.
Level 1: Design Mode
Level 2: Create the Variables
Level 3: Create the Function
Level 4: Add onEvents
Add a Comment: Why is it important to get feedback from others while building your app? What is the value of getting this feedback even if you aren't finished with your app? (Comment of 50 words or more)
Make an Update: Think of times when you've received helpful feedback on schoolwork, a hobby, or a sport. What makes good feedback? What makes bad feedback? In what ways can you provide feedback... apps? Programs or platforms? Give an example and discuss. (At least 200 words, one scholarly reference, and one media element are required. Comment on three peers' updates.)
Students translate the plans they documented in Part 1 of the Practice PT to a working program in App Lab through a series of steps.
The Practice PT gives students the opportunity to design and program an app from scratch. Welcome to The Decision Maker App! Students demonstrate mastery of variables, conditionals, and functions by combining these elements into a useful program designed to solve the problem of making a decision.
Students will be able to:
For the teachers
For the students
CSTA K-12 Computer Science Standards (2017)
AP - Algorithms & Programming
In the past few updates, we've been working on an app to help users make a decision. Now you will share that app with others, get feedback, make improvements, and submit for your final project.
Use the testing slides to share your app with classmates for testing. Once your app has been tested, you may complete the app using the instructions provided on the last slide of the testing slides or slide 7 of the full lesson presentation.
Peer-review
Project Guide:
Step 8: Testing
Step 9: Pick Improvements
Step 10: Complete Your app
Step 11: Record Video
Submit: Complete a final check of your completed projects on Level 2. The rubric is displayed in the instruction box.
The final lesson in the Practice PT progression is devoted to feedback and improvements to the Decision Maker App. Students work with classmates to review and update the functionality of their apps before submitting the final project.
The Practice PT gives students the opportunity to design and program an app from scratch. Welcome to The Decision Maker App! Students demonstrate mastery of variables, conditionals, and functions by combining these elements into a useful program designed to solve the problem of making a decision.
Students will be able to:
For the teachers
For the students
CSTA K-12 Computer Science Standards (2017)
AP - Algorithms & Programming
We've come to the end of the unit, and we've learned a lot about developing apps. Lastly, we will take an assessment, and then you will have the opportunity to share your apps with the entire class.
Navigate to Code Studio to complete the Unit 4 Assessment. You will receive one point per correct answer, and the score will be recorded as a test score for the class.
Finally, it is time to show off our completed apps. Go to Flipgrid and share your video. Other students can "visit" and leave comments if they wish.
Please complete the end-of-course survey after all modules are complete.
Students complete a multiple choice assessment which covers the unit topics.
The College Board has provided a bank of questions to help formatively assess student understanding of the content in the framework. These questions are mapped to topics with each topic having a handful of questions available.
The College Board has a few strict guidelines about how topic questions can be used. In particular, students may not receive a grade based on performance on topic questions nor can they be used for teacher evaluation. Beyond these requirements, however, they are primarily intended to formatively assess student progress and learning as they prepare for the end-of-course exam.
Within our own course we recommend that you use them in a variety of ways:
Code.org. (2015, October 2). CS principles: Defining and calling functions [Video]. YouTube. https://www.youtube.com/watch?v=yPWQfa4CHbw&t=5s
Code.org. (2021). Unit 4 teacher tips [Illustration]. Code.Org. https://curriculum.code.org/media/uploads/topics4_exilLPP.png
Cope, B., & Kalantzis, M. (2017). e-Learning ecologies: Principles for new learning and assessment (1st ed.). Routledge.
Cope, B., & Kalantzis, M. (2021). Technology-Mediated learning: Between didactic and transformative pedagogy. Update 7. https://cgscholar.com/community/community_profiles/epol-481-fa21/community_updates/144068.
Grant, L. (2020). Unit 4 - Lesson 9 functions explore/investigate [Slides]. Google. https://docs.google.com/presentation/d/e/2PACX-1vQFsBY6PgcODKq3pr2nKKXfEoYzZwDmh7oq7pO5VlA7wK_kwMuzOcah3mBqW-qPRMwahKLq-FfbsB4J/pub?start=true&loop=false&delayms=5000
Hammer, B. (2018, August 1). DOK depth of knowledge snapshot [Illustration]. Edmentum. https://blog.edmentum.com/webb’s-depth-knowledge-framework-basics
Laura Paczewitz. (2020, November 9). AP CSP - scope practice app lab [Video]. YouTube. https://www.youtube.com/watch?v=qeeaxppLmRQ