Course Essential Questions
- How can we use programming and mathematical patterns to reduce a complex problem into simpler units?
- How can we utilize recursive relationships and coding to efficiently calculate mathematical values?
- How can number properties help in writing efficient programs to solve mathematical problems?
- How can we mathematically represent real-world scenarios using computer programming to aid in problem-solving?
Course Learning Objectives
- Apply repetition and abstraction to draw complex shapes.
- Apply Boolean logic and programming to determine the value of expressions and prove logical equivalence.
- Apply recursion to prove mathematical statements.
- Test theoretical probabilities using simulations.
- Apply divisibility of integers to identify numerical solutions to problems.
- Convert between various number systems to solve both programming and mathematical problems.
- Encrypt and decrypt messages efficiently using programming and advanced mathematical operations.
- Represent paths using simple graphs.
Unit 1: Algebra, Logic, and Proof (Weeks 1-6)
In this unit, students will explore that math isn’t just numbers and equations, but rather it is the backbone that brings logic, structure, and precision together. Students will investigate algebra, logic, and proofs to show they are the building blocks of computer programs. Just as a solid foundation is essential for a sturdy building, a strong grasp of algebra, logic, and proof is fundamental for anyone venturing into the dynamic and innovative fields of mathematics and computer science.
Unit Level Essential Questions
- What is discrete mathematics and its connection to programming?
- How do we get computers to remember stuff?
- How do we use functions to make our lives easier?
- How do computers make decisions?
- What are some ways to prove we are right?
- How can we pass off most of the work to the next person?
Week 1: Introduction to Discrete Math
Weekly Essential Question
- What is discrete mathematics and its connection to programming?
Weekly Learning Objectives
- Investigate the definition of discrete mathematics.
- Navigate a programming environment to successfully execute computer code instructions.
Week 2: Algebra in Python
Weekly Essential Question
- How do we get computers to remember stuff?
Weekly Learning Objectives
- Utilize variables to store information representing integers, decimals, and text.
- Apply mathematical operations to calculate values.
- Use a programming language or tool feature correctly to enforce operator precedence to evaluate algebraic expressions.
Week 3: Functions and Parameters
Weekly Essential Question
- How do we use functions to make our lives easier?
Weekly Learning Objectives
- Utilize parameters to make functions dynamic.
- Program functions in code to break down a large program into components.
Week 4: Logic, Conditionals, and Loops
Weekly Essential Question
- How do computers make decisions?
Weekly Learning Objectives
- Apply Boolean values and conditionals to help programs make decisions.
- Implement conditional statements with relational and logical operators to make decisions.
- Implement loops to reduce repetitive actions in code.
- Apply loops to create artwork using shapes.
- Write program code to satisfy method specifications using expressions, conditional statements, and iterative statements.
Week 5: Basic Proofs
Weekly Essential Question
- What are some ways to prove we are right?
Weekly Learning Objective
- Apply different proof structures to establish the truth of statements.
- Apply truth tables to determine the logical equivalence of inverse, converse, and contrapositive statements.
- Implement data structures to store data to make computations.
Week 6: Induction and Recursion
Weekly Essential Question
- How can we pass off most of the work to the next person?
Weekly Learning Objectives
- Utilize induction to prove a property for an infinite number of values.
- Perform recursive functions to determine values in a sequence.
- Use recursive algorithms to draw graphical art.
Unit 2: Counting and Probability (Weeks 7-8)
In this unit, students will explore counting and probability. These topics serve as the dynamic duo that unlocks a realm of understanding and prediction. Counting isn’t just about tallying objects; it’s a tool that helps us quantify possibilities, analyze patterns, and solve intricate problems. Meanwhile, probability p; provides the key to unraveling uncertainty, guiding our decisions by assessing the likelihood of different outcomes. From designing algorithms that optimize search engines to securing online transactions, a firm grasp of counting and probability empowers mathematicians and computer scientists alike to navigate the intricate landscape of possibilities and uncertainties with confidence.
Unit Level Essential Questions
- How many ways can we win?
- How do we get the computer to work out the chance of success?
Week 7: Combinatorics
Weekly Essential Question
- How many ways can we win?
Weekly Learning Objectives
- Apply factorials to determine the number of ways to order unique items.
- Apply factorials to count options when order matters.
- Apply counting methods to determine the number of combinations from a set of options.
- Code combinatoric algorithms to simulate real-world events.
Week 8: Probability and Simulations
Weekly Essential Question
- How do we get the computer to work out the chance of success?
Weekly Learning Objectives
- Apply counting techniques to determine the probability of events.
- Use simulation to investigate empirical probability.
- Develop a Python application to compute the probability of real-world events.
Unit 3: Number Theory and Systems (Weeks 9-11)
In this unit, students will explore the topic of number theory, which is the mathematical study of integers and their properties. This field explores the fundamental characteristics of numbers, such as divisibility, prime numbers, and modular arithmetic, which have direct applications in various coding systems. Understanding number theory concepts empowers coders to create efficient algorithms and data structures, making systems more robust and secure.
Unit Level Essential Questions
- How do clocks help us solve math problems?
- Why is it the prime time to find prime numbers?
- How does a computer count to ten if it only knows on and off?
Week 9: Number Theory - Modulus
Weekly Essential Question
- How do clocks help us solve math problems?
Weekly Learning Objectives
- Apply patterns to determine whether a number is divisible by another number.
- Develop divisibility rules to determine common divisors of numbers.
- Program an algorithm to compute the common integer divisors of a set of integers.
Week 10: Number Theory - Primes
Weekly Essential Question
- Why is it the prime time to find prime numbers?
Weekly Learning Objectives
- Apply divisibility properties to identify prime numbers.
- Identify applications of prime numbers.
- Write a programming algorithm to calculate the next prime number.
Week 11: Number Systems
Weekly Essential Question
- How does a computer count to ten if it only knows on and off?
Weekly Learning Objectives
- Convert multiple number systems (decimal, binary, hexadecimal).
- Identify the different qualities among various number systems.
- Explain coding inaccuracies due to limits representing numbers in different bases.
- Create an algorithm to represent a pixel using binary digits.
Unit 4: Ciphers, Lines, and Dots (Weeks 12-14)
In this unit, students will explore topics in graph theory as well as explore ciphers. Graph theory provides a framework for understanding and analyzing complex systems like networks and relationships. Combined with coding, it becomes a powerful tool for designing cryptographic algorithms. Ciphers, which involve transforming data to protect it from unauthorized access, often rely on graph theory concepts to create secure encryption schemes. Whether it’s encrypting data for secure communication or safeguarding sensitive information in digital systems, the integration of ciphers and graph theory strengthens the foundation of cybersecurity.
Unit Level Essential Questions
- How do we scramble letters to keep our secrets safe?
- How do we use modern math to defeat the ancient Romans?
- How do we effectively organize and manipulate data within a matrix?
Week 12: Steganography
Weekly Essential Question
- How do we scramble letters to keep our secrets safe?
Weekly Learning Objectives
- Convert characters in a message to another format to hide and recover its meaning.
- Apply string properties and methods to perform operations needed for stenography.
- Write algorithms to encrypt and decrypt secret messages embedded in images.
Week 13: Cryptography
Weekly Essential Question
- How do we use modern math to defeat the ancient Romans?
Weekly Learning Objectives
- Encode and decode transposition ciphers.
- Encode messages using Caesar shift ciphers.
- Write brute force algorithms to reveal passwords.
- Apply the vector dot product to crack encrypted messages.
Week 14: Graphs, Matrices, and Paths
Weekly Essential Question
- How do we effectively organize and manipulate data within a matrix?
Weekly Learning Objectives
- Utilize adjacency matrices to model graphs and networks.
- Apply matrix operations to determine the number of paths between points.
- Write code to determine the number of paths between two points.
Unit 5: Applications of Discrete Math (Week 15)
In this unit, students will explore the different applications of discrete mathematics in our world. From computer science to cryptography, discrete math plays a fundamental role in problem-solving and decision-making. Discrete math is also a crucial tool in network design, where it helps optimize data flow and connectivity. Beyond technology, discrete math extends its reach also to economics, linguistics, and even biology, assisting in decision theory, language modeling, and population genetics. Its applications are diverse and far-reaching, making discrete math an indispensable tool in solving real-world problems across a multitude of disciplines.
Unit Level Essential Question
- How do we use discrete mathematics and coding concepts to solve real-world applications?
Week 15: Applications of Discrete Math
Weekly Essential Question
- How do we use discrete mathematics and coding concepts to solve real-world applications?
Weekly Learning Objectives
- Apply discrete mathematics to solve real-world applications.
- Apply coding to solve real-world applications.