This application-based course ties together mathematics concepts and powerful programming tools in Python. Topics covered in the course provide students with essential knowledge should they have an interest in cryptology, social networks, ChatBot AI, and game theory. These topics include number theory, graph theory, conditionals, string processing, and logic with the goal of providing students with engaging explorations connected to the real world.

Students will break coded messages, design artistic shapes, implement simulations, calculate probabilities, and explore number theory and proofs by applying mathematical strategies and coding algorithms.

In this course, students will focus on four critical concepts:

1.) Applying programming and mathematical patterns to reduce complex problems into simpler units.

2.) Utilizing recursive relationships and coding to efficiently calculate mathematical values.

3.) Identifying number properties that help in writing efficient programs to solve mathematical problems.

4.) Encoding real-life situations into programmable, mathematical models to help solve problems.

Mathematically, students will investigate discrete topics addressed in NCTM Principles and Standards such as combinatorics, iteration and recursion, and vertex-edge graphs. Students will build complex designs by applying the mathematical properties of geometric shapes. They will explore and analyze logic and proof structures as well as utilize recursive reasoning. Combinatorics and simulation will be explored for determining probabilities theoretically and empirically. Students will explore number theory such as modulus and number systems such as binary. Additionally, students will apply mathematical models to real-world problems such as encrypting and decrypting messages and converting networks to vertex-edge graphs and matrices.

As they explore coding, students will learn Python concepts that are included in various introductions to Python standards. Students will implement scripts that use mathematical and logical operators. They will apply control structures such as functions to increase efficiency and reduce complexity in programming. Conditionals will also be utilized to help computers make decisions while in operation. Students will make use of data structures and string operations to store and handle information. Most importantly, students will solve real-life applications concerning cryptology, artistic design, and probability.

This course utilizes the Replit programming environment to enable students to build, test, save, and share programs. Students will also discuss important concepts in programming and mathematics. Some lessons will focus primarily on mathematical concepts while others will build those concepts into programming tasks so that students will gain knowledge of powerful mathematical concepts while developing essential coding skills that they can apply to a variety of problems in the real world.

In this standard-level course, students are expected to invest approximately 6 hours per week on their coursework.

**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.

In addition to VHS Learning system requirements, students will need the following web applications:

Students must create a Replit account to complete this course and will be directed to do so during the first week of the course.