Course Essential Questions
- How do we build functional and engaging apps to solve real world problems?
- How do we develop reliable and effective apps through testing?
- How do we determine the impact of an app on society?
Course Learning Objectives
- Implement best practices of user interface design in mobile app development.
- Apply basic programming concepts to develop functional and interactive mobile apps.
- Incorporate user feedback and testing to refine and improve mobile app design and functionality.
- Evaluate the benefits and risks of mobile apps on society.
Unit 1: Fundamentals of Mobile App Design (Weeks 1-3)
Unit Level Essential Questions
- How do we set up App Inventor on our computer?
- How do we construct GUI elements on our apps?
- What are different ways to test GUI elements?
Week 1: Introduction to Mobile App Design
Weekly Learning Objectives
- Establish App Inventor account and test software access.
- Explain how app development has changed over the years.
- Design an introductory app that illustrates a simple action or message.
- Implement code to develop the app.
- Test and debug the app.
Week 2: Elements of Mobile App Design
Weekly Learning Objectives
- Explain the difference between designer mode and blocks mode.
- Describe the functionally of blocks common to all mobile apps.
- Design an app that uses components and blocks to incorporate audio and visual elements.
- Implement code to develop the app.
- Test and debug the app.
Week 3: Graphical User Interface Design
- Explain computer memory functionality.
- Design an app that utilizes variables and component properties.
- Implement code to develop the app.
- Test and debug blocks to confirm functionality prior to publishing.
- Test and debug the app to confirm functionality after publishing.
Unit 2: Making Apps That “Think” (Weeks 4-7)
Unit Level Essential Questions
- What is an event handler, and how do you write code within it to respond to user actions like button clicks or screen taps?
- How can you effectively reuse code within your app, and why is this practice important for improving the app's efficiency and maintainability?
Week 4: Event Handling and Procedures
Weekly Learning Objectives
- Describe how loops and procedures can reduce code complexity.
- Design an app that demonstrates abstraction by consolidating repetitive code using loops and procedures.
- Implement code to develop the app.
- Test and debug blocks to confirm functionality prior to publishing.
- Test and debug the app to confirm functionality after publishing.
Week 5: Variables and Conditions
Weekly Learning Objectives
- Define and use random values in an app.
- Design an app that dynamically changes behavior based on variables by using conditional statements (if, else if, else) to make decisions.
- Implement code to develop the app.
- Test and debug blocks to confirm functionality prior to publishing.
- Test and debug the app to confirm functionality after publishing.
Week 6: Procedures and Parameters
Weekly Learning Objectives
- Identify and fix errors in prewritten procedures by correctly modifying parameter values
- Refactor (redesign) an app to replace repetitive code with procedures.
- Implement code to develop the app.
- Test and debug blocks to confirm functionality prior to publishing.
- Test and debug the app to confirm functionality after publishing.
Week 7: Animations and Collisions
Weekly Learning Objectives
- Analyze the behavior of an app by applying collision detection algorithms to ImageSprites
- Design an app that incorporates animations and collision detection.
- Implement code to develop the app.
- Test and debug blocks to confirm functionality prior to publishing.
- Test and debug the app to confirm functionality after publishing.
Unit 3: Saving, Storing and Retrieving Data (Weeks 8-11)
Unit Level Essential Questions
- How can lists improve the efficiency and organization of an app, and when is it better to use a list instead of individual variables?
- What types of sensors are available in mobile devices and how can we solve problems with them?
- What is the role of databases in app development, and how can they be used to store and retrieve data to create apps that persist user information across sessions?
Week 8: Lists
Weekly Learning Objectives
- Explain the purpose and structure of lists, identifying scenarios where lists are more efficient than individual variables.
- Design an app that uses lists to store and manipulate data.
- Implement code to develop the app.
- Test and debug blocks to confirm functionality prior to publishing.
- Test and debug the app to confirm functionality after publishing.
Week 9: Loops
Weekly Learning Objectives
- Describe the purpose and functionality of loops, explaining how they are used to repeat actions or process lists.
- Design an app to perform repetitive tasks; iterating through a list to display all its elements.
- Implement code to develop the app.
- Test and debug blocks to confirm functionality prior to publishing.
- Test and debug the app to confirm functionality after publishing.
Week 10: Databases
Weekly Learning Objectives
- Explain the role of databases in app development, describing how data is stored, retrieved, and updated.
- Design an app that integrates a database to store user-generated data and persist data across sessions.
- Implement code to develop the app.
- Test and debug blocks to confirm functionality prior to publishing.
- Test and debug the app to confirm functionality after publishing.
Week 11: Location Services
Weekly Learning Objectives
- Explain how the location sensor component obtains and uses GPS data.
- Design an app with location-based features.
- Implement code to develop the app.
- Test and debug blocks to confirm functionality prior to publishing.
- Test and debug the app to confirm functionality after publishing.
Unit 4: Purposeful App Development (Weeks 12-15)
Unit Level Essential Questions
- What are the common stages of software development?
- How do we develop ethical and responsible apps?
- What are the different ways to publish apps for others to use?
Week 12: Software Development Life Cycle
Weekly Learning Objectives
- Describe the key stages of the software development life cycle and explain how these stages apply to app creation.
- Design and prototype an app to solve a real-world problem, through storyboarding and documentation.
Week 13: Ethical App Development
Weekly Learning Objectives
- Identify open source software and how to use it ethically in the development of new apps.
- Develop mobile apps ethically respecting copyrights.
- Implement code to develop an app to solve a real-world problem.
- Test and debug blocks to confirm functionality prior to publishing.
Week 14: Publishing
Weekly Learning Objectives
- Describe the steps involved in commercial publishing.
- Test and debug the app to confirm functionality after publishing.
- Provide and incorporate feedback through end-user testing.
Week 15: App Showcase
Weekly Learning Objectives
- Present the final app, demonstrating its features, functionality, and the problem it solves, while explaining the design and development process.
- Demonstrate knowledge and skills by applying concepts learned throughout the course to solve problems related to app development.
- Provide constructive feedback in a course survey, reflecting on their learning experience and offering suggestions for improving the course content and delivery.