Back to Learning Catalog



Estimated Completion Time

16-18 weeks


Congratulations; you’re speaking a different language! A programming language that is. But do you want to learn more? Discover the most popular programming languages and what they have to offer the software world. Explore data, algorithms, and objectives and how they are essential to language ‘speak’. Learn the software development life cycle and how it can be implemented so you can create projects, such as a prototype for an app you’ll code and a working to-do list website.

During this course, you will learn career-related skills and earn a badge for this accomplishment. A badge is a digital certification of your career-related learning that you can share on social media or with higher education platforms, colleges, potential employers, peers, and colleagues. Select this link to learn more about badges.

Course Requirements

Required Software

Major Topics and Concepts

Unit 1: Hardware and Software Basics

  • Identify and describe the functionality of major software applications
  • Compare and contrast different operating systems
  • Create appropriate hardware and software requirements for a tech project
  • Write Python code that manipulates text files

Unit 2: Speaking the Same Language

  • Compare and contrast different programming languages
  • Write Python programs that validate arguments and handle exceptions
  • Use global and local scope appropriately
  • Operate a debugging tool in Python

Unit 3: Working with Data

  • Identify and use a variety of data types and structures in Python
  • Write programs that input and validate user data
  • Compare techniques for data analysis and data processing
  • Describe how data is represented in binary

Unit 4: Introducing: Algorithms!

  • Describe and implement standard searching algorithms
  • Explain and implement standard sorting algorithms
  • Develop a Python program that implements an abstract data type
  • Understand and use Boolean algebra and De Morgan’s Law

Unit 5: Algorithms in Action

  • Develop algorithms to solve common math problems
  • Identify and use recursion in programming solutions
  • Convert among binary, hexadecimal, and decimal systems
  • Understand and use Big-O notation

Unit 6: What’s the Big Objective?

  • Understand and implement composition, inheritance, encapsulation, and abstraction
  • Create a variety of classes and instantiate objects
  • Explain the differences between structural, object-oriented, and event-driven programming
  • Execute a variety of operations on objects including copying, comparing, and accessing/mutating

Unit 7: The Software Development Life Cycle

  • Compare and contrast design methodologies
  • Translate program design into appropriate data structures and code
  • Analyze, modify, and evaluate large programs
  • Discuss and apply various parts of the software development life cycle

Unit 8: Real-World Inspiration: Capstone Project

  • Develop a multi-program application that uses real-world data
  • Use configuration management tools such as source control
  • Design a prototype using proper prototyping techniques
  • Create and test a capstone project using Flask in PythonAnywhere

Credits .5


  • Hardware and Software
    Students will demonstrate an understanding of how software and hardware work together by identifying software and hardware components, describing major software applications, explaining operating systems, and explaining the meaning of hardware and software requirements.
  • Data Types and Structures
    Students will demonstrate an understanding of data analysis by explaining how data structures are used in Python, identifying and using various types of data, validating user-inputted data, and describing how data is represented in binary.
  • Algorithms
    Students will demonstrate an understanding of algorithms by developing python programs to utilize algorithms to solve math problems, convert binary, decimal and hexadecimal number systems, implement standard searching and sorting algorithms, and demonstrate the differences and uses for iteration versus recursion.
  • Composition, Inheritance, Encapsulation, and Abstraction
    Students will demonstrate an understanding of composition, inheritance, encapsulation, and abstraction by explaining classes, how to access object attributes, how to add methods to classes, and how to use parameters to define objects.
  • Software Development Life Cycle
    Students will demonstrate an understanding of the software development life cycle by explaining various design methodologies; analyzing, modifying and evaluating large programs; and describing the various parts of the software development life cycle.


Foundations of Programming

Attend a virtual open house

We offer regular online open house webinars where VLACS staff members provide parents and students with an overview of our programs and answer questions about online learning.