Coding Semester 1

 Coding Semester 1
  • Recommended Grade Level: 9-12
  • Course Credits: 0.5
  • Course Price: $299.00

Course Overview:

Have you ever wondered how your favorite webpages or apps function? Learn about the influence of computers on our daily life, the purpose of programming languages, and how computers function. Experiment with Python to explore algorithms, syntax, and data structures while putting the software development cycle into practice by starting to plan and develop your own app in the Capstone Project. Discover the potential of a career in this field!

Required Materials:

  • Students will need to create a free account for the following sites:
  • pythonanywhere.com
  • trello.com
  • Students will use the following site to create flowcharts:
  • draw.io
  • They can interact with these web sites through any typical web browser.

Syllabus:

Unit 1: Our Digital Life

Could you imagine today's world without computers? Look around you. Computers are everywhere—on your desk, in your pocket, and inside almost every device and appliance in your house. They have brought enormous benefits to our world, but they have created some challenges as well. Computers seem amazingly smart, but they do their work only by performing an enormous number of simple steps very quickly. Someone has to tell the computer what the steps should be. If you learn how to code, this could be you!

What will you learn in this unit?

  • Discuss the extensive role of computers in your daily life
  • Explain how technology has changed the workplace
  • Describe two different types of adaptive technology
  • Identify some of the challenges created by computers in a global society

Unit 2: The Big Programming Picture

Coders write programs. So now it’s time to see what programming is all about. A program is a sequence of statements in a language that both humans and computers can understand. Programs are translated by compilers or interpreters into machine instructions. Machine instructions, in turn, are interpreted by a processor, and operate on data that is stored in a main memory. There are many different programming languages, based on a number of different programming styles including procedural and object-oriented programming.

What will you learn in this unit?

  • Understand the concept of a program
  • Explain how information is stored in a computer’s memory
  • Describe the process by which programs are translated to machine language
  • Comprehend the purpose of programming languages and give some examples
  • Distinguish between procedural and object-oriented programming

Unit 3: Let’s Do Some Programming

As computer languages evolve so do computer programmers. Today's coders write code or use some markup style language for their websites and presentations. We will begin by writing code using Python. Maybe you've heard of it? Python is a simple programming language which is known for its code readability, or its ability to be understood by the novice coder. Success with Python is near! However, before we can get started creating and running coding projects we need to understand a little more about syntax, data structures, and algorithms.

What will you learn in this unit?

  • Use pseudocode to write programming algorithms
  • Understand the concept of syntax and data structures
  • Define different data types and explain their uses
  • Write simple code using Python and explain the use of program statements

Unit 4: The Big Process Picture

So far, we have learned about programing statements, tools, and algorithms. We have even practiced a little, by implementing and refining code. We have also learned about procedural programming and how it's based on procedure calls and functions. We've covered object-oriented programming and how it creates and manipulates objects to make things happen, each with their own collection of data, code, and methods. While it's not likely that you will ever master all programming languages, it is totally possible to become an expert in several languages. In this unit, you will add some project management skills to your already impressive skillset, by taking a look at the software development life cycle.

What will you learn in this unit?

  • Define the software development life cycle
  • Explore different methods to solving a programming problem
  • Describe different types of documentation and tools used for developing software
  • Identify tools you can use to make your programming time more productive
  • Explain testing performed at different stages of the software development life cycle

Unit 5: The Big People Picture

Now that you’ve mastered some of the basics of programming, it’s time to discover what you can actually do with your skills. You may be surprised to learn just how many opportunities are available to you as a computer scientist! Nearly every industry relies on technology of some sort, from marketing to medicine to defense. In this unit, we’ll identify computing careers in some of the top industries, as well as understand the different specializations and roles within a programming team. Finally, we will discuss different educational paths for getting where you want to go.

What will you learn in this unit?

Explore a variety of industries, which are related to computing

Explain the responsibilities of team members in developing software

Describe the different types of specializations within programming

Identify the education and training requirements for a career in computing

Unit 6: Security, Privacy & Other Issues

Early in the course we discussed some of the positive impacts of technology on society, such as a more productive work force full of exciting opportunities, the free and equitable access to information, better communication and increased accessibilities for people with disabilities. Nevertheless, there is a darker side to technology! As Peter Parker (that’s Spiderman but don’t tell anyone) learned from his Uncle Ben, “with great power, comes great responsibility.” In today’s digital age, that power often lies with you, the programmer, and it’s up to you to keep us safe. So, you must be aware of the challenges that come along with our reliance on technology and be vigilant in making sure that these challenges are kept under control.

What will you learn in this unit?

  • Analyze the negative impacts of technology on personal life and society
  • Identify security and privacy risks that relate to computer networks
  • Describe ethical and responsible uses of social media
  • Discuss the impact of government regulation on privacy and security
  • Evaluate the ethical responsibilities of computer programmers

Unit 7: Capstone Project Part I

Take a step back and look at how much you’ve learned. You know about the advancements that technology has brought in personal and professional life, the process of developing software and the people involved, some of the ethical and security risks of technology, and the programming basics of writing code using Python! It’s time to put all this acquired knowledge to good use. In the last two units of the course, you’ll complete a capstone project by researching, designing, and creating a software solution to a problem. Ready? Here we go!

What will you learn in this unit?

Use critical thinking skills to analyze the needs of a software project

Describe user personas for a product’s target users

Create a flowchart and dataflow diagram

Identify functional and technical requirements of a mobile application

Unit 8: Capstone Project Part II

The time has come. You have a spec, or part of a spec, for a single process, data flow diagrams, a data model for your database, and even a flowchart that visually maps out the algorithm you will need to code. In this final unit of the course, you’ll enter the Development Phase of the Software Development Life Cycle, creating the ‘Calculate & Transact Payment’ process of the application.

What will you learn in this unit?

  • Identify and manage scheduling of development tasks
  • Design a User Interface to gather user input
  • Write pseudocode and Python code for using arrays
  • Use user inputs to calculate outputs and present outputs to the user
  • Code input validation procedures for user input to ensure software stability

Awards, Approvals, and Accreditation