Please enable JavaScript to use CodeHS

Tennessee Coding I

Description

In this lesson, students explore the impacts of being online. Students reflect on social media use and their digital footprint as well as learn how to identify and respond to cyberbullying.

Objective

Students will be able to:

  • Analyze the impact of social media and technology use on the lives of teenagers
  • Explain how one’s digital footprint can impact their future employment options
  • Analyze their own digital footprint and explain how they can maintain a positive digital footprint
  • Define cyberbullying
  • Explain how to respond to cyberbullying
  • (Optional) Choose the best privacy settings to protect their digital footprint and prevent cyberbullying
Description

In this lesson, students explore the complex world of data collection. Students learn about the types of data that companies collect and what they do with it. Students also consider the ethics of data collection by working through a scenario about location tracking in school. Lastly, students learn about privacy within the context of law.

Objective

Students will be able to:

  • Explain why companies collect data and what they do with it
  • Analyze the benefits and consequences of data collection that may or may not be evidence to users
  • Consider the ethics of data collection with relation to privacy concerns
  • Define personally identifiable information
  • Explain personal data collection in the context of the law (GDPR, CCPA, and privacy policies)
Description

In this lesson, students will learn about and discuss information literacy. Information literacy is having the ability to find information, evaluate information credibility, and use information effectively.

Objective

Students will be able to:

  • Evaluate the accuracy, relevance, comprehensiveness, appropriateness, and bias of electronic information resources
  • Evaluate quality of digital resources for reliability
  • Reflect on the growth of artificial intelligence in terms of trustworthy content
  • Explore and use search engine keywords and special characters to refine search results
Description

By the end of this lesson, students should have a better understanding of cyberethics, responsible internet use, and the impact of copyright and licenses on the digital world. They should also be more aware of the potential consequences of unethical online behavior.

Objective

Students will be able to:

  • Identify the difference between ethical hacking and malicious hacking
  • Discuss the principles of cyber ethics, focusing on responsible online behavior.
  • Discuss potential legal consequences of unethical online behavior
  • Debate intellectual laws and the beneficial and harmful effects that these laws have on innovation
Description

In this lesson, students learn about the importance of personal data security and explore different forms of authentication and browser security settings. Students then consider the tradeoffs between ease of use and security when implementing different authentication methods.

Objective

Students will be able to:

  • Explain password best practices
  • Define authentication terms: passphrase, multifactor authentication, 2FA, biometric authentication, password managers
  • Evaluate different forms of authentication
  • Explain how to use privacy settings on their browser to enhance security
  • Consider the tradeoffs between usability and security measures
Description

In this lesson, students are introduced to the core concepts of cybersecurity, focusing on the importance of protecting information and devices in the digital world. Students will explore key vocabulary terms, security frameworks, and the potential risks associated with the Internet of Things (IoT).

Objective

Students will be able to:

  • Define basic cybersecurity terminology
  • Explain the importance of information security and the CIA Triad (Confidentiality, Integrity, Availability)
  • Analyze how the AAA Security Framework (Authentication, Authorization, and Accounting) helps protect online information
  • Identify potential security risks associated with the Internet of Things (IoT) devices.
Description

In this lesson, students will learn how to navigate the digital world safely by understanding common cyber threats and implementing protective measures. Through interactive activities and creative storytelling, students will explore various cyberattacks, their consequences, and strategies for defense. This awareness will empower them to make responsible choices online and protect themselves from cybercrime.

Objective

Students will be able to:

  • Identify and define different types of cyberattacks (malware, viruses, ransomware, spyware, phishing)
  • Explain the importance of preventative measures like antivirus software, updates, HTTPS, and firewalls
  • Analyze real-world examples of phishing attacks and develop strategies for identifying suspicious online activities
Description

In this lesson, students complete a summative assessment of the module’s learning objectives.

Objective

Students will be able to:

  • Prove their knowledge of basic cybersecurity concepts and its impacts through a multiple choice quiz
Description

In this lesson, students will learn how to print messages out onto the console using the Javascript command console.log().

Objective

Students will be able to:

  • Write a JavaScript program by typing commands with proper syntax in the main function
  • Write a program that prints out a message to the user
Description

In this lesson, students learn how to assign values to variables, manipulate those variable values, and use them in program statements. This is the introductory lesson into how data can be stored in variables.

Objective

Students will be able to:

  • Explain what variables are and what they are used for
  • Create their own variables
  • Print out the values stored in variables
Description

In this lesson, students learn how they can allow users to input information into their programs, and use that input accordingly.

Objective

Students will be able to:

  • Create programs that ask the user for input
  • Store user input in variables and print it back to the user
  • Choose the proper input function to use depending on the type of information needed
Description

In this lesson, students learn about the different mathematical operators they can use to perform mathematical computations and create useful programs that compute information for the user.

Objective

Students will be able to:

  • Describe the different mathematical operators we can use in programs
  • Create programs that use basic math to compute useful things
  • Create programs that take in user input, do simple computations with the input, and produce useful output
Description

In this lesson, students will learn what pair programming is, why it is used, and the appropriate behaviors of a driver and navigator.

Objective

Students will be able to:

  • Effectively communicate their ideas to a partner
  • Successfully complete a coding exercise using pair programming
  • Identify the pros and cons of pair programming
Description

In this lesson, students will learn how randomization can enhance a program.

Objective

Students will be able to:

  • Explain why random numbers are a useful part of computer programs.
  • Create random values in a program.
  • Utilize the DOCS for the Randomizer class in order to learn how to generate random values.
Description

In this lesson, students will learn how to create basic functions using JavaScript and use them to improve the organization, readability, and flow of their programs.

Objective

Students will be able to:

  • Define JavaScript functions
  • Call JavaScript functions within the main function
  • Use functions in order to manage the flow of their programs
  • Increase the readability and organization of their code using functions
Description

In this lesson, students review content with a 15-question Unit Quiz.

Objective

Students will be able to:

  • Prove their knowledge of basic coding concepts through a multiple choice quiz
Description

In this lesson, students will learn about the graphics canvas and its coordinate system. Students will explore how to create and position shapes anywhere on the canvas. Graphic creation relies on setting the type of shape, size, position, and color on the artist’s canvas before adding it to the screen.

Objective

Students will be able to:

  • Understand the coordinate system of the canvas
  • Create basic shapes like circles and rectangles
  • Position shapes in specific locations on the canvas
  • Learn how to add color to shapes
  • Understand how the debug mode functions and how to turn it on or off
Description

In this lesson, students will get more practice with graphics objects. They will also learn how to find images on the internet and use them in their projects. Web images can be loaded into a graphics project using the WebImage class and passing a web image address to it and they can be resized using the setSize method. Apart from loading images and resizing them, students will also learn how to add text objects to their canvas.

Objective

Students will be able to:

  • Add images to their graphics projects using WebImage
  • Resize image objects using setSize
  • Display text on the canvas
  • Break their code into functions based on objects to be rendered
Description

In this lesson, students will further explore the positioning of their graphics and the importance of the order in which functions are called.

Objective

Students will be able to:

  • Strategically position shapes anywhere on the canvas
  • Break their graphics projects into manageable functions
  • Order their function calls in the main function correctly
Description

In this unit, students will synthesize all of the skills and concepts learned in the JavaScript and Graphics unit to solve increasingly challenging puzzles.

Objective

Students will be able to:

  • Define a problem in their own words and plan out a solution to the problem
  • Break a large problem down into smaller pieces and solve each of the pieces, then use these solutions as building blocks to solve the larger problem
  • Write clear and readable graphics programs
Description

In this lesson, students will learn about the basic functions and types of operating systems. Students will also explore the process for upgrading and updating operating systems.

Objective

Students will be able to:

  • Explain the purpose of operating systems
  • Identify the main types of operating systems
  • Analyze the upgrade and installation process for operating systems
Description

This hands-on lab empowers students to personalize their computer experience by exploring display, sound, and storage settings, while also teaching them valuable troubleshooting skills. Students will learn to navigate their operating system and discover resources for further customization.

Objective

Students will be able to:

  • Identify their computer’s operating system
  • Explore and configure basic display, sound, and storage settings
  • Troubleshoot minor configuration issues
  • Identify resources for finding additional information about their system
Description

In this lesson, students delve deeper into the differences between the three main operating systems. They learn how operating systems store and manage files and the differences and similarities in each system’s interface.

Objective

Students will be able to:

  • Compare and contrast the interface of Mac, Windows, and Linux operating systems
  • Explain how operating systems use file systems to manage data
Description

In this lesson, students continue to compare and contrast different operating systems. Students learn how operating systems use file extensions to determine how to view different data types and how some extensions are only compatible with specific operating systems. Additionally, students learn about processors and the difference between a 32-bit processor and a 64-bit processor.

Objective

Students will be able to:

  • Compare and contrast file systems of different operating systems
  • Explain the role of the processor in a computer system
  • Explain the difference between a 32-bit and 64-bit processor and the impact it has on the operating system
Description

In this lesson, students will learn how to differentiate between laptops and tablets. Through brainstorming, activities, and discussions, students will explore the functionalities, strengths, and weaknesses of each device to make informed decisions about their own technology needs.

Objective

Students will be able to:

  • Identify key differences between laptops and tablets
  • Analyze the strengths and weaknesses of each device type
Description

In this lesson, students learn about the different types of software. Through interactive exercises, students explore how different software can be used in the workplace and our every day lives. Students also learn about single and cross-platform software.

Objective

Students will be able to:

  • Explain the different types of software (productivity, collaboration, business) and the purpose of each.
  • Explain the benefits and challenges of single and cross-platform software.
Description

In this lesson, students learn about the different types of software licenses as well as the different methods of installing software based on the application’s architecture.

Objective

Students will be able to:

  • Explain the different types of software licenses
  • Explain the different delivery methods and architecture models of installing software
Description

In this lesson, students will learn about the importance of application security and what they can do to protect applications once they have been installed on a device.

Objective

Students will be able to:

  • Explain the importance of application security
  • Explain the multiple methods for protecting software
Description

In this lesson, students will learn about browser security features and ways to configure their browsers to enhance security.

Objective

Students will be able to:

  • Configure their browser to enhance security and privacy
  • Explain how the following features impact their browser security: cache, client-side scripting, browser extensions, private browsing, proxy settings, certificates, and popup blockers
  • Describe appropriate browser security configurations
Description

In this lesson, students learn how to use user accounts and permissions to secure a device. Students also learn about system hardening and how to strengthen the security of a network by setting up and implementing host security.

Objective

Students will be able to:

  • Describe how creating user accounts and permissions enhances security
  • Define system hardening explain the importance of establishing baseline security, including deciding rules around authentication and authorization
  • Explain the importance of performing security audits
Description

In this lesson, students learn how to use the command line interface to interact with files and folders, and access information about computer processes.

Objective

Students will be able to:

  • Understand the connection between a command line (CLI) interface and a graphical line interface (GUI)
  • Use the appropriate command line tool for different tasks
Description

This hands-on lab will introduce students to the command line interface (CLI) by teaching them basic navigation commands. They will learn to move around their computer’s directories and open files using text-based commands.

Objective

Students will be able to:

  • Practice basic navigation commands in the CLI (cd, ls, open..)
    • Navigate to specific directories on their device
    • List the contents of a directory
    • Open files from the CLI.
Description

In this lesson, students will research and compare different programming languages, analyze their features and applications, and develop an argument to defend a language choice for a specific task. Through research, discussion, and structured writing, students will strengthen their understanding of programming languages and critical thinking skills.

Objective

Students will be able to:

  • Compare and contrast the features, benefits, and applications of different programming languages.
  • Research real-world use cases of programming languages in industry.
  • Develop a structured argument defending a language choice for a given task.
  • Address counterarguments and justify their reasoning with evidence.
  • Present findings in a written or debate-style format.
Description

Students will investigate key milestones in the development of computers, operating systems, and digital communication. Through research and analysis of historical events, they will create and present a timeline that illustrates how computing has evolved into modern technology, citing specific textual evidence.

Objective

Students will be able to:

  • Research key milestones in computing history using news articles and instructional materials
  • Identify and analyze the impact of major technological advancements on modern computing
  • Organize research findings into a clear and informative timeline
  • Cite sources and use textual evidence to support their research
  • Present findings effectively, explaining how each milestone contributed to today’s computing landscape
Description

In this lesson, students complete a summative assessment of the module’s learning objectives.

Objective

Students will be able to:

  • Prove their knowledge of system administration concepts and its impacts through a multiple choice quiz
Description

In this lesson, students will learn more about boolean values. Booleans refer to a value that is either true or false, and are used to test whether a specific condition is true or false.

Objective

Students will be able to:

  • Create boolean variables to represent meaningful yes/no values
  • Print out the value of a boolean variable
Description

In this lesson, students learn about if statements as a way to make decisions and execute specific code depending on the validity of a condition.

Objective

Students will be able to:

  • Explain the purpose of if statements
  • Create their own if statements to selective choose which code is executed in their programs
Description

In this lesson, students will learn about logical operators. Logical operators allow students to connect or modify Boolean expressions. Three logical operators are the !, ||, && characters.

  • ! = NOT
  • || = OR
  • && = AND
Objective

Students will be able to:

  • Describe the meaning and usage of each logical operator: OR (||), AND (&&), and NOT (!)
  • Construct logical statements using boolean variables and logical operators
Description

In this lesson, students learn how to use comparison operators. Comparison operators let students compare two values.

Objective

Students will be able to:

  • Explain the meaning of each of the comparison operators (<, <=, >, >=, ==, !=)
  • Create programs using the comparison operators to compare values
  • Predict the boolean result of comparing two values
  • Print out the boolean result of comparing values
Description

In this lesson, students will apply their understanding of if/else statements to graphics programs. Students will also learn how to use else if statements to check for multiple conditions.

Objective

Students will be able to:

  • Write graphics programs with conditionals
  • Use else if statements to check for multiple conditions
Description

In this lesson, students will explore while loops and JavaScript variables. This combines the ideas of creating variables, updating variables throughout a loop, and determining the correct ending condition.

Objective

Students will be able to:

  • Explain the purpose of a while loop
  • Create while loops to repeat code while a condition is true
  • Utilize while loops to solve new types of problems
Description

In this lesson, students will learn how to create a Loop and Half. A Loop and a Half is a specific way to write a while loop with the condition being true. Inside the loop, students use a break statement to break out of the loop whenever that condition is met, causing the loop to end.

Objective

Students will be able to:

  • Explain how the loop-and-a-half structure is different from a traditional while loop
  • Explain what an infinite loop is
  • Explain what the break statement does
Description

In this lesson, students will apply their understanding of while loops to graphics programs.

Objective

Students will be able to:

  • Write graphics programs that use while loops
  • Use variables to update the position and size of graphics objects within a while loop
Description

In this lesson, students will learn in greater detail about for loops. For loops in Javascript are written and executed in the same manner as Karel exercises, except now students will explore modifying the initialization statement, test statement, and increment statements of the loops.

Objective

Students will be able to:

  • Create for loops in JavaScript
  • Explain the purpose of for loops
  • Utilize for loops to avoid typing out repeated code
  • Use the loop counter i inside the for loop code to do something different on each iteration
Description

In this lesson, students will apply what they have learned about for loops to graphics programs.

Objective

Students will be able to:

  • Create graphics programs with for loops
  • Use i to position graphics objects and change the size of graphics objects
  • Compare and contrast while loops and for loops
Description

In this lesson, students review content with a 15 question Unit Quiz.

Objective

Students will be able to:

  • Prove their knowledge of control structures through a multiple choice quiz
Description

In this lesson, students will expand their use of functions by learning about and implementing parameters.

Objective

Students will be able to:

  • Explain the use of parameters and arguments
  • Create functions that take in parameters as input
  • Use parameters to generalize functions and reduce repeated code
Description

In this lesson, students learn about return statements and how to use them to send information between functions.

Objective

Students will be able to:

  • Explain the purpose of returning a value from a function.
  • Create functions that return values.
  • Create programs that call functions with return values and store the result for later use.
Description

In this lesson, students learn how to set default values for their function’s parameters.

Objective

Students will be able to:

  • Understand the role default values can have in a function.
  • Set default values for their parameters.
  • Properly set the order of parameters and the default values.
Description

In this lesson, students will explore the scoping of a variable, which is where the variable is “defined” or where it exists.

Objective

Students will be able to:

  • Identify the scope of a variable
  • Identify which variables are in scope at a given point in a program
Description

In this lesson, students review content with a 15 question Unit Quiz.

Objective

Students will be able to:

  • Prove their knowledge of functions and parameters through a multiple choice quiz
Description

In this lesson, students will explore the different types and states of data and its value as a resource. Students will develop a critical understanding of data’s role in society and its ethical implications.

Objective

Students will be able to:

  • Differentiate between data, information, and knowledge
  • Explain the different states of data (in use, in transit, at rest) and provide examples of each
  • Analyze the role of data centers in modern society
Description

In this lesson, students are introduced to database management systems and the fundamentals of SQL. They will learn how to create tables, insert data, and retrieve information using basic SQL queries.

Objective

Students will be able to:

  • Identify and explain the major uses of a database management system
  • Define the different parts of a database (table, column, row)
  • Create new tables and entries using SQL code
  • Construct basic SQL queries using SELECT and WHERE keywords.
Description

In this lesson, students will explore how attackers can exploit weaknesses in websites and programs. They will learn about SQL Injection and Cross-Site Scripting (XSS), as well as programming errors that can cause vulnerabilities.

Objective

Students will be able to:

  • Identify the commands used in SQL Injection attacks
  • Explain how attackers gain unauthorized access through SQL Injection
  • Describe the importance of input validation in preventing security vulnerabilities
  • Explain how buffer and integer overflows can be exploited for security breaches
Description

In this lesson, students will dive into the world of developer tools, the secret weapons of web designers and programmers! Students will explore the code behind websites, participate in a capture-the-flag style game, and learn how to use developer tools to inspect and manipulate websites.

Objective

Students will be able to:

  • Identify major developer tools within the inspect element
  • Explain the purpose of developer tools
  • Utilize basic developer tools functions like “view-source” and the console.
  • Describe the potential vulnerabilities found within website code.
Description

In this lesson, students will learn about the importance of physical security as well as environmental controls. Students will understand that the security and functionality of a network goes beyond simply having the necessary devices - it includes proper security and maintenance of the devices.

Objective

Students will be able to:

  • Explain the importance of specific security measures: mantrap, door lock, biometric locks, USB locks, privacy screen
  • Explain environmental impacts on devices and implement appropriate controls
Description

In this lesson, students learn about vulnerabilities, cyber threats, and attacks on networks and organizations. Students simulate identifying and exploiting vulnerabilities.

Objective

Students will be able to:

  • Run and analyze simulated nmap scans
  • Identify key vulnerabilities in a fictional organization
  • Develop plans to attack vulnerabilities
Description

In this lesson, students are introduced to the Risk Management process. They will learn how to identify, analyze, reduce, and monitor risk.

Objective

Students will be able to:

  • Identify and explain the major steps of Risk Management
  • Utilize the Risk Management process to mitigate network threats and vulnerabilities
  • Identify how the Risk Management process can prevent attacks
Description

In this lesson, students complete a summative assessment of the module’s learning objectives.

Description

In this lesson, students learn the basics of Design Thinking. Design Thinking is a step by step process that helps developers and entrepreneurs develop their products while considering their end-users and testing out products before releasing them.

Throughout the module, students will use the design process to develop a web page that provides a solution to a community issue. In this lesson, students will brainstorm and choose their topic.

Objective

Students will be able to:

  • Describe and define the steps of Design Thinking
  • Describe the characterstics of an effective user interface
  • Explain the role accessibility plays in designing technology
Description

In this lesson, students learn in more depth about the first principle of Design Thinking: Empathy. Empathy is the ability to understand and share the feelings of another, and is the most important tenet of Design thinking. Students will practice building empathy by interviewing classmates and evaluating the accessibility of existing web pages.

Objective

Students will be able to:

  • Define and use Empathy in creating products
  • Successfully interview peers and users
  • Identify accessibility issues in web design products
  • Collect and analyze survey data to gather data about user needs
  • Collect survey data using a computational tool
  • Clean survey data to increase the data reliability
Description

In this lesson, students will take the information that they gathered in their interviews with peers to define a specific problem that needs to be solved. Students will create Point of View statements and composite characters to make a profile of the users who are in need of a fix to the problem that students define.

Objective

Students will be able to:

  • Define a problem related to user needs
  • Create a composite character
  • Create and articulate Point of View Statements
Description

In this lesson, students will learn strategies to help them ideate solutions to the problems they have been exploring throughout the Design Thinking module. Students will spend class time brainstorming with classmates, and encouraging one another to come up with out of the box solutions.

Objective

Students will be able to:

  • Effectively brainstorm solutions with a team
  • Articulate the purpose of ideating, and strategies to make the ideation process work
Description

In this lesson, students learn the basics of prototyping. Students will create a prototype based on ideas they came up with for their design project, and present prototypes to classmates for critiquing.

Objective

Students will be able to:

  • Create prototypes
  • Narrow brainstorms to just a few concrete and realistic ideas
Description

In this lesson, students will test one another’s prototypes and provide constructive feedback about its usability and aesthetic appeal. Students will also ask thoughtful questions of the testers to get a better understanding of their experience interacting with the prototype.

Objective

Students will be able to:

  • Provide appropriate feedback after testing prototypes
  • Ask users thoughtful questions about their user experience
  • Articulate how to best test products on users
Description

In this lesson, students use all of their HTML and CSS knowledge to build the website they developed throughout the Design Process.

Objective

Students will be able to:

  • Utilize multiple HTML structures to design a website: images, links, organizational structures
  • Use CSS rules strategically to professionally style a website
  • Break a large project into benchmarks and create a timeline to complete each benchmark
  • Design a website that addresses a specific community issue
Description

In this lesson, students will be introduced to arrays – how to create them and access their elements.

Objective

Students will be able to:

  • Define an array
  • Access elements of an array with an index
Description

In this lesson, students will learn how to add and remove elements at the end of an array using the push and pop methods.

Objective

Students will be able to:

  • Add elements at the end of an array using the push method
  • Remove elements from the end of an array using the pop method
Description

In this lesson, students will be able to get the length of an array and learn how to loop through an array so they can have more functionality with arrays in their programs.

Objective

Students will be able to:

  • Determine the length of an array using the length property
  • Use the length of an array and a for loop to loop through the elements in an array
  • Use a for…of loop to access each element in the array without using their indices.
Description

In this lesson, students apply the array iteration techniques that they learned in the last lesson to a variety of graphics applications.

Objective

Students will be able to:

  • Explain why arrays and array iteration are very useful when creating graphics programs with many graphics elements.
  • Use array iteration to control the graphics elements in a program.
Description

In this lesson, students learn about and put into practice a variety of array methods.

Objective

Students will be able to:

  • Explain the purpose of array methods
  • Read array method documentation
  • Implement searching, iterating, modifying, and converting array methods
Description

In this lesson, students will learn how to create objects and store key/value pairs of data.

Objective

Students will be able to…

  • Understand what objects are and how they store data.
  • Understand the difference between an object’s key and value.
  • Create an empty object and assign it a key/value pair.
Description

In this lesson, students will explore how to use objects to manage graphics in JavaScript. They will learn how objects store properties and how passing objects as function parameters affects program behavior. Students will apply these concepts in interactive coding exercises to create animations and simulations.

Objective

Students will be able to:
- Define and manipulate objects that store graphic properties.
- Pass objects as parameters and explain the difference between passing by value and passing by reference.
- Use objects to create and manage animated elements on a canvas.

Description

In this lesson, students will explore the concept of object methods in JavaScript. They will learn how methods define the behaviors of objects and how to use them effectively. Students will apply these concepts through interactive coding exercises that incorporate object methods in animations and simulations.

Objective

Students will be able to:
- Define and implement methods inside JavaScript objects.
- Differentiate between object properties and methods.
- Use object methods to manipulate and interact with objects.

Description

In this lesson, students will learn how to use a for…in loop to iterate over all of the keys in an object.

Objective

Students will be able to…

  • Iterate through the keys of an object
  • Better understand the difference between keys and values in an object
Description

In this lesson, students will learn about object constructors in JavaScript and how they are used to create multiple instances of objects efficiently. They will explore the syntax of constructors, practice creating instances, and apply their knowledge to interactive coding challenges.

Objective

Students will be able to:
- Define and implement an object constructor in JavaScript.
- Differentiate between object literals and object constructors.
- Use constructors to create multiple instances of an object with shared properties and methods.

Description

In this lesson, students will explore the Software Development Lifecycle (SDLC) and the Scrum framework, gaining an understanding of the key stages involved in software development and Agile methodologies. Students will apply these concepts by brainstorming and designing a simple app in teams.

Objective

Students will be able to:
- Identify and describe the stages of the Software Development Lifecycle.
- Differentiate between traditional and Agile development models.
- Explain the key roles and processes within the Scrum framework.
- Apply the SDLC to brainstorm and plan an app that solves a real-world problem.

Description

In this lesson, students will explore the app development process through rapid prototyping, flowcharting, pseudocode, and quality assurance. They will develop a paper prototype, create a flowchart to visualize app logic, write pseudocode, and establish a quality assurance plan to ensure their app functions correctly and efficiently.

Objective

Students will be able to:

  • Develop a paper prototype to visualize their app’s interface and user interactions.
  • Create a flowchart to map out the logical flow of their app.
  • Write pseudocode to outline the structure and functionality of their app.
  • Establish a quality assurance plan to identify and address potential errors.
Description

This lesson introduces students to key programming concepts used in app development. It focuses on event handling using getElementAt(), recognizing button clicks, and applying these concepts to develop a simple JavaScript application. Additionally, students will explore online collaboration tools for project management.

Objective

Students will be able to:
- Use the getElementAt() function to detect user interactions with UI elements.
- Identify which button has been clicked and execute appropriate responses.
- Apply event-driven programming concepts in their own app.
- Utilize online collaboration tools to manage and track project progress.

Description

This lesson introduces students to the concept of user testing in the software development process. Students will learn how to develop a user testing plan, conduct user testing, and analyze their findings to improve their apps.

Objective

Students will be able to:
- Explain the purpose and importance of user testing.
- Develop a structured user testing plan.
- Conduct user testing and document observations.
- Analyze user feedback to determine areas of improvement.

Description

This lesson guides students through the final phase of app development, where they refine their program based on user feedback. Students will implement improvements identified during user testing to enhance functionality and usability.

Objective

Students will be able to:
- Apply user feedback to make meaningful improvements to their app.
- Debug and refine their code for better usability.
- Ensure their app meets all project requirements.

Description

This lesson focuses on deploying a final version of a student-created app. Students will learn how to publish and share their app, explore different types of software licenses, select an appropriate license for their project, and present their final product.

Objective

Students will be able to:
- Deploy their app by making it publicly accessible and sharing it with users.
- Understand different types of software licenses and their implications.
- Select an appropriate software license for their app and justify their choice.
- Create a presentation summarizing the development process and key features of their app.