CS 2.0

Course Overview

This is the second year of the Northview Computer Programming program. Students take two courses simultaneously: Honors Web Development and Honors Database Administration. Students will also be introduced to Mobile App design during the course. The ultimate goal is for students to learn the skills to develop and manage fullstack web applications similar to popular web apps such as Amazon, Spotify, Twitter, and Snapchat. Students develop the three levels of a fullstack application: interactive front end, express web server, database.

Current lesson plans - please note these can change as necessary and are dynamic in nature

Course Content - Big Idea 1: Web Development Capstone

Unit 1 - Introduction to JavaScript in HTML

  • Students learn about the script tag, and how it can be used to write JavaScript code in their HTML files. Students are also introduced to useful JavaScript methods that can be used to alter the state of the CSS and HTML of a webpage, as well as how the Document Object Model supports the ability to make such changes.

  • The Script Tag

  • Using the DOM

  • Creating Elements Using the DOM

  • Styling Elements Using JavaScript

  • Functions in HTML

  • This Keyword

  • Keyboard Interactions

  • JavaScript Animations

  • Positioning and Animations

Unit 2 - Using JavaScript Libraries

  • Students are introduced to jQuery, a JavaScript library that makes webpage interaction easier. Students will learn the basic syntax of jQuery, how to incorporate it in their webpages, and useful methods that help animate and change the responsiveness of their websites

  • Introduction to jQuery

  • Iterating with jQuery

  • Animations with jQuery

  • Callback Functions and Synchronization

  • Using Multiple Files in JavaScript

Unit 3 - Build an Interactive Resume (Project)

  • Students will create a single page, interactive resume. Students will be expected to add several animations using jQuery to prove their ability to modify HTML and CSS. This unit also examines web design theories that can help students improve the aesthetics of their resumes, and to evaluate the quality of a website based on its layout.

  • Creating a Resume Covered

  • Layout and Web Design Theory

  • Interactive Resume Development

Unit 4 - Storing and Collecting Data

  • This unit will explore the role that data plays in creating websites. Students will learn about the various ways that data is taken from web pages, as well as ways to secure themselves from unwanted data collection. Students will also learn how to incorporate data collection into their own websites, and collect simple information from users.

  • Collecting and Storing Data

  • Storing Data with Local Storage

  • Storing Data Structures with Local Storage

  • JavaScript Objects

  • Using Input Fields

Unit 5 - Collecting Data

  • Students will create a multi-file webpage that tracks the number of clicks that items of content on the site receive, allowing the web owner to make decisions about which content should be kept, and which should be changed out the next time that they update their site. Students will test out one another's webpages, and write a written response highlighting the content that they will change on the next iteration and why.

  • Define Your Product

  • Develop Hypotheses

    • Create a User Persona

  • Create Your Data Collection Site

  • Collecting User Data

  • Analyzing User Data

  • Making Decisions

Unit 6 - How to Build and Maintain a Website

  • While students can run functional and responsive websites on CodeHS, this unit explores how students can create and run websites without the help of CodeHS. This unit will explore how to store web files, secure a domain name, and maintain a website. The majority of the lessons will be explanatory - students will not be expected to host and maintain a webpage off CodeHS, but will be given the tools needed to do so if they desire.

  • Choosing a Domain Name

  • Personal Servers vs Web Servers

  • Web Optimization

  • Choosing a CMS

Unit 7 - Final Project

  • Students will be tasked with creating a website of their own choosing. The website will have to follow specific criteria - certain number of pages, responsiveness, and use of APIs. Students will go through a feedback process, and learn about making their websites more accessible to a wide array of users.

  • Planning Your Site

  • Providing Feedback

Course Content - Big Idea 2: Mobile App Design

Unit 1 - Introduction to Mobile Apps

  • In this module, students will be introduced to the mobile apps course and the React Native framework and it's program structure and syntax. Students will also preview some of the tools and technologies they will use to build and run their apps

  • Introduction to React Native and Expo

    • Why build mobile apps?

    • What is React Native?

    • How is React Native structured and built?

    • What is Expo and how do React Native apps run?

  • Example activity:

    • Running Apps on Expo

Unit 2 - Components and the Stylesheet

  • In this module, students are introduced to components, the backbone of building apps with React Native. They learn about the stylesheet object and how to add custom style attributes to their apps

  • Introduction to Components

  • Introduction to the Stylesheet API

  • Styling View Components

  • Styling Text Components

Unit 3 - Buttons and Text Boxes

  • In this module, students use the TouchableHighlight to create "buttons" that add a layer of functionality. Students also learn about the TextInput component and how to allow users to enter text into their apps

  • TouchableHighlight and the onPress Function

  • TextInput

Unit 4 - Advanced Layouts and Images

  • In this module, students learn how to add images to their apps to further customize the building experience. They gain a deeper understanding of mobile apps layouts using Flex values and the Dimensions API.

  • The Image Component

  • The ImageBackground Component

  • Flex Layouts

  • Dimensions API

Unit 5 - App Build: Recreate a Popular App

  • In this module, students apply their knowledge of components, images, buttons, text boxes, and layouts to recreate a screen of a popular app. They will go through this process in steps, taking time to plan their layout and think about the functionality of the app. They may return to the app later to add on additional functions as new concepts are learned. Browse the full content of thi

  • App Build: Recreate a Popular App

    • How do you plan for an app build?

    • What functionality does the app have?

    • How will you use your knowledge of flex values and the Dimensions API to make your app responsive?

Unit 6 - Events and State

  • In this module, students learn how to use state values and how to update the state of their app in various ways to create quick, dynamic programs.

  • Introduction to State

  • Updating State with onPress

  • Using Mathematical Equations to Update State

  • Using Methods to Update String States

Unit 7 - Creating Multiple Screens

  • In this module, students learn how to take their apps to the next level by adding in functionality that allows for content and interactivity on multiple screens

  • Creating a Navbar

  • Using Buttons to Navigate Screens

Unit 8 - Working with Conditionals

  • In this module, students use conditionals to allow for more flexible apps. They also learn how parameters are used inside functions.

  • Conditionals and State Changes

  • Conditionals using Parameters

Unit 9 - App Build: Currency Converter

  • In this module, students apply their knowledge of components, events, state, conditionals, and more to build a currency converter app. Students use the Stylesheet to create a user friendly layout that can convert multiple currencies!

  • Project: Currency Converter App

    • How do you plan for an app build?

    • What is the best layout for an app?

    • How do you write pseudocode for an app?

    • What makes an app presentation engaging?

Course Content - Big Idea 3: Data Science

Unit 1 - The Data Science Life Cycle

  • Students will learn and apply the process of the data science life cycle. This includes asking statistical questions, collecting or obtaining reliable raw data, analyzing the data using measures of central tendency and spread and interpreting, and summarizing the results.

  • What is Data Science?

  • Gathering Data 1

  • ○ Quantitative/Qualitative

  • Exploring Data Using Python

  • Modules and Libraries

  • Using the Pandas Library

    • Series

      • Measures of Central Tendency

      • Measures of Spread

    • DataFrames

      • Selecting Columns

      • Using Functions

Unit 2 - Data Science for Change

  • Students will use and analyze data to better understand a problem, measure the scope of a problem, or understand how people are affected by the problem. They will learn more about cleaning a dataset and filtering by column, rows, and conditions.

  • ● What is Big Data?

    • Cognitive Bias

  • Importing and Filtering

    • loc

    • iloc

    • By a condition

  • Data Cleaning

    • Dropping Data

    • Fixing Data Types

  • Exploring with Data Visualizations

Unit 3 - Data Storytelling

  • Students will use and analyze data to tell a data story. They will create a visually appealing infographic that displays important data visualizations. The infographic will also tell a story based on their interpretation after exploring, analyzing, and visualizing the data.

  • Types of Data Stories

  • Data Visualizations

    • Univariate and Bivariate Data

  • Normal Distribution

  • Trends and Correlations

  • Linear Regression

Unit 4 - Data Science for Business

  • Students will gather business data that can be used to make decisions about how to better the company or product. They will present their findings in a business report that suggests several action items that they predict will help the business's performance and growth.

  • Determining Dataset Quality

  • Aggregating Data

    • Grouping

    • Sorting

  • Combining Datasets

    • Concatenating

    • Joining/Merging

  • Bias in Data Analytics