Back to Learning Catalog



Estimated Completion Time

2 segments / 36 weeks


Do you want to learn the skills required to be competitive in today’s high-tech workforce? Foundations of Programming (FoP) will teach students the fundamentals of programming using the computer language Python. The course provides students with the concepts, techniques, and processes associated with computer programming and software development. Students will also explore the many programming career opportunities available in this high-demand field.

This course is part of a program of study that provides coherent and rigorous content needed for progression in the Information Technology career cluster. 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.


Note: content varies depending on course version. For currently enrolled students, please refer to the syllabus located in the course information area for curriculum specifics.


Major Topics and Concepts

Module 01Introduction to Programming

  • 01.00 Welcome to Foundations of Programming
  • 01.01 Intro to Programming
  • 01.02 Introduction to Python
  • 01.03 Printing Strings
  • 01.04 Processing String Values
  • 01.05 String Input
  • 01.06 Module One Exam

Module 02Computing Numerical Data

  • 02.00 Introduction to Computing Numerical Data
  • 02.01 Processing Numerical Information
  • 02.02 Getting Numeric Input
  • 02.03 The Math Module
  • 02.04 The Software Development Life Cycle
  • 02.05 Discussion-Based Assessment
  • 02.06 Module Two Project

Module 03Loops and Functions

  • 03.00 Introduction to Loops and Functions
  • 03.01 Turtle Graphics
  • 03.02 for Loops
  • 03.03 while Loops
  • 03.04 Creating Functions
  • 03.05 Discussion-Based Assessment
  • 03.06 Segment One Exam

Segment Two:

Module 04Logic in Programming

  • 04.00 Introduction to Logic in Programming
  • 04.01 Decisions
  • 04.02 More Decisions
  • 04.03 The Logic of AND, OR, and NOT
  • 04.04 Lists
  • 04.05 Discussion-Based Assessment
  • 04.06 Module Four Project

Module 05Codes and Objects

  • 05.00 Introduction to Codes and Objects
  • 05.01 Number Systems
  • 05.02 Decoding ASCII
  • 05.03 Procedural and Object-Oriented Programming
  • 05.04 Classes and Methods
  • 05.05 Module Five Exam

Module 06Testing and Security

  • 06.00 Introduction to Testing and Security
  • 06.01 Testing
  • 06.02 The Ethics of Programming
  • 06.03 Coding and Careers
  • 06.04 Discussion-Based Assessment
  • 06.05 Segment Two Exam


  • 01 Privacy Certification
  • 02 Encryption Certification
  • 03 Get Certified Certification


  • What You Need to Know
  • Segment One Collaboration
  • Segment Two Collaboration

Credits 1

Competency Group Overview

Meets ICT graduation requirement


  • String Literals and String Variables
    Students will demonstrate an understanding of string variables by utilizing various methods to display and manipulate strings, such as printing text to the console; accepting string input from the console; concatenating, slicing, and indexing strings.
  • Numerical Operations and Data
    Students will demonstrate an understanding of numerical data and operations by utilizing various methods to display and manipulate numbers, such as performing basic arithmetic operations; printing numbers to the console; accepting numerical input from the console; and converting numbers between different data types.
  • Loops and Functions
    Students will demonstrate an understanding of for loops, while loops, and functions by utilizing these to perform tasks such as defining procedures; passing parameters to functions; and creating designs using graphics.
  • Decisions and Booleans
    Students will demonstrate an understanding of boolean logic and decisions by utilizing AND, OR, and NOT operators to control loops and program flow.
  • Lists
    Students will demonstrate an understanding of lists and list functionality by using them to perform tasks such as creating lists, appending items to and removing items from lists; accessing list elements; and changing list elements.
  • Number Systems and Character Systems
    Students will demonstrate an understanding of different base number systems and character systems by using them to perform tasks such as converting numbers from one base to another; converting alphanumeric characters to ASCII codes; and encoding text messages.
  • Object-Oriented Programming
    Students will demonstrate an understanding of object-oriented programming by defining classes, accessing object attributes, adding methods to classes, and using parameters to define objects.
  • Professional Programming
    Students will demonstrate an understanding of professional programming practices by implementing practices such as unit testing, project planning, and writing “post mortem reviews,” and by completing knowledge assessments on topics such as computer security, the software development life cycle, and the ethics 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.