Mobile App Development

Syllabus

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.