Computer Programmer

Average Salary: $80,000 - $96,000

Computer Programmer
Quick View

Program Curriculum

  • Are you ready to develop your understanding of computers from the inside out? In this course, you will discover hardware and software options for a computer, how computers work together to create networks, and how the internet works. You will explore the major types of software categories you will need to know in most professional spaces including word processing, spreadsheets, and database information. You will also develop skills like programming and app building before putting everything together in a final project where you’ll build an e-book. Let’s get started!

    Unit 1: The Basics: Understanding Computer Hardware

    We interact with dozens of computers every day, whether we realize it or not. From smartphones and ovens to grocery store kiosks, computers are all around us. Their purpose is to process information in a meaningful way, and it takes quite a lot of hardware to get the job done! We will explore the basics of computer hardware, peripherals, maintenance, and troubleshooting. At the end, get ready to apply your knowledge to a common hardware problem and solve it!

    What will you learn in this unit?

    • Compare and contrast types of computers and their purposes

    • Identify and define the components of the von Neumann architecture model

    • Describe on-board and add-on components of a computer

    • Describe the purpose of peripherals and how to connect them to a computer

    • Apply a common troubleshooting methodology for hardware problems

    Unit 2: Data and Storage

    Data is not just a technical computing term anymore—it affects almost everyone in one way or another. From the phones we use to the groceries we buy, data is being generated at unprecedented levels. All of that data needs to have a home, which is where secondary storage comes in. Get ready to learn about hot topics involving data and storage devices—and how they affect you!

    What will you learn in this unit?

    • Explain the difference between data and information

    • Discuss how data mining and data analysts are connected

    • Convert between decimal and binary values

    • Distinguish which data type should be used to store particular pieces of data

    • Compare and contrast different methods of storage

    Unit 3: Systems and Software 101

    If hardware is the body of the computer, then software is its mind. Software does the thinking for the computer in a variety of ways. It allows users to interact with the hardware and provides tools for maintaining it. Application software enables users to be productive and entertain themselves. The future of software development is exciting, futuristic, and just brimming with cool opportunities for new programmers. Software is a broad topic, so get ready to learn!

    What will you learn in this unit?

    • Describe the main operating systems in use today

    • Explain the features of an operating system

    • Give examples for why files and file management systems help with organization

    • Use various application software programs to accomplish tasks

    • Configure your Chrome browser and Gmail account

    • Contrast the types of software delivery models and licensing options

    Unit 4: Networking Fundamentals

    The networking world is fast-paced and innovative. The internet can seem mysterious, but behind it are wires, cables, and satellites that carry data to and from computers. Different kinds of network hardware and software are used to enable this communication, and certain rules must be followed. Get ready to dive into the exciting world of the internet and learn just how simple yet complex it can be.

    What will you learn in this unit?

    • Analyze the benefits and risks of using a network

    • Identify various types of networks and explain their purposes

    • Describe the four major network topologies and name the types of internet service providers

    • Explain the packet switching process

    • Define and explain the functions of different pieces of network hardware

    • Discuss network security issues and how to troubleshoot them

    Unit 5: Word Processing

    The business and academic worlds make heavy use of word processing software. Over 25 million people worldwide[1] use Google Docs, making it one of the most popular word processing applications. Not only does Google Docs provide basic functionality for creating and editing documents, it also has some cool collaboration features. Get ready to learn the ins and outs of Google Docs and how you can use it to enhance your writing.

    What will you learn in this unit?

    • Explain the basic terminology of word processing software

    • Use word processing features for sharing and collaborating on documents

    • Create and format documents using Google Docs

    • Create professional documents using Google Docs

    Unit 6: Spreadsheets and Databases

    All of the data being generated daily in the world needs a place to live. Enter spreadsheets and databases. These kinds of software can help organize, retrieve, manipulate, backup, and export data in various ways. From the simplest spreadsheet to the most complex database, data storage technology is vital to the proper functioning of many societies. So get ready to learn what spreadsheets and databases are capable of by following along in Google Sheets and Airtable.

    What will you learn in this unit?

    • Create and format a spreadsheet

    • Apply spreadsheet formulas and functions

    • Analyze data through filters, sorting, and conditional formatting

    • Demonstrate data visually by creating and modifying charts

    • Describe database concepts and types

    • Create a basic database and input data using a form

    Unit 7: The World of IT Apps

    From business communication applications and accounting software to educational learning management systems and personal smartphone apps, the world of IT apps seemingly knows no bounds! We will discover the uses of various applications, extend our file management skills, explore the browser, improve our online search strategies, and learn where to find tech help if we need it.

    What will you learn in this unit?

    • Describe and use software for personal and business tasks

    • Develop file management techniques

    • Demonstrate proficiency using a browser

    • Configure a web browser using advanced settings

    • Assess the validity of online sources

    • Use search engines and search tools effectively

    Unit 8: Programming Pro Tips

    Programming is currently one of the hottest industries. Even careers that are not traditionally thought of as technical now require a basic level of programming knowledge. In this unit, you will walk through the basics of coding, beginning with the software development life cycle, and then move on to understanding how various programming languages help to solve problems. You will explore the world of algorithms, get exposure to the basic constructs of most programming languages, and even develop your own mobile app. Get ready for a jam-packed, fun-filled unit!

    What will you learn in this unit?

    • Compare and contrast programming language categories

    • Define and recognize programming control constructs

    • Describe basic programming building blocks and concepts

    • Create a basic mobile app

  • Now that you know the basic workings of a computer, it’s time to put the computer to work! In this course, you will explore some of the basics of graphic design, web development languages, and coding. You will also learn about team building, communication and presentation software, and becoming a digital citizen, giving perspective on how to collaborate with others as you transition from school to the workplace. Lastly, you will uncover potential cyber threats and how to protect your own devices through features and behavior change before putting everything together in a culminating project: designing a website in Weebly. Let’s get to work!

    Unit 1: Web Design

    Websites are very important in our society. Businesses rely on them to market, advertise, share information, sell products, and communicate. But not all websites are created equal—some are attractive and professional while others are dull and unappealing. To make a visually appealing website or graphic, you’ll need some very important design skills. Let’s explore the basics of web design, web development, and graphic design.

    What will you learn in this unit?

    • Identify and use basic principles of image design

    • Create a professional-looking graphic using Google Docs

    • Identify and describe web programming languages

    • Use storyboards to plan a website design

    • Use HTML and CSS to create web pages

    • Build and publish an interactive website

    Unit 2: Code Like a Pro!

    What do stoplights, coffee makers, and video games all have in common? They are all controlled by code! In our modern world, code is the basis for all of the technology that we use. One of the most popular programming languages is Python, and we’ll learn how to use it to create a fun text-based adventure game. We’ll also make sure our game is good to go by testing and debugging it. Get ready for a Python adventure!

    What will you learn in this unit?

    • Solve problems and think critically

    • Differentiate among Python data types and describe their uses

    • Employ mathematical operators in programs

    • Create a text-based adventure game in Python

    • Use random numbers in a game

    • Fix errors in a game by applying debugging strategies

    Unit 3: Digitally Speaking

    From messenger pigeons and papyrus to paper and emails, communication sure has come a long way! We now have a range of tools at our disposal for workplace and personal communication. Let’s learn how to speak digitally by exploring some of these tools. We will set up and use a Gmail account to investigate the world of email. And along the way, you’ll learn how to mind your netiquette!

    What will you learn in this unit?

    • Explain the use of various kinds of collaboration software

    • Use basic email functions to send messages

    • Apply advanced email settings to collaborate with others

    • Employ effective nonverbal and verbal communication skills

    Unit 4: The Good and the Bad: Trends and Threats

    With new innovations such as augmented reality, artificial intelligence, and smart devices, the future of tech has never looked so bright! But in this fast-paced, ever-changing industry, threats are equally fast-paced and evolve just as quickly. Cybercrime is rampant, and many individuals and organizations are falling prey to cyberattacks. We’ll discuss the specific threats that are out there, how to recognize them, and how to prevent them. Also, you’ll learn some best practice tips along the way to keep yourself safe.

    What will you learn in this unit?

    • Discuss how technology trends affect society

    • Identify and describe security threats

    • Explain how different types of malware work

    • Describe issues relating to internet safety

    • Explain how to maintain digital privacy and security

    Unit 5: Building Bridges

    Relationships among different groups of people are important to a well-functioning business, whether it involves peer, employer–employee, or mentor–mentee relationships. Communicating, collaborating, and resolving conflict well are vital elements of working in a business environment. IT tools can help these relationships function smoothly by meeting a variety of needs within the company.

    What will you learn in this unit?

    • Describe the importance of various types of relationships within the business world

    • Learn and apply strategies for resolving conflict in the workplace

    • Demonstrate awareness of workplace safety

    • Recognize the importance of leadership skills and teamwork

    Unit 6: Become a Pro at Presentations

    Presentation software is useful as a visual aid accompanying a speech or lecture. Google Slides is one of the most popular types of presentation software. It offers a variety of options to add multimedia content and collaborate with other people. We will learn basic features as well as more advanced aspects of Slides that can be used in a business context. Get ready to start creating your very own presentations!What will you learn in this unit?

    After studying this unit, you will be able to:

    • Explain the purpose of presentation software

    • Put together basic presentations and add multimedia content

    • Create and incorporate business-related elements in a presentation

    • Apply appropriate slide transitions and animations to a presentation

    • Demonstrate planning and time management skills

    Unit 7: The Legal and Ethical Side of IT

    With all the data we interact with online, there is a great need for privacy and security. But sometimes it’s unclear what we can and cannot do with data, and legal or ethical issues may surface. In this unit, we’ll look at intellectual property and how to protect it. We’ll also examine the issues of confidentiality, integrity, and availability with the goal of understanding how to behave securely, legally, and ethically.

    What will you learn in this unit?

    • Summarize confidentiality, integrity, and availability concerns relating to data

    • Describe potential threats to a company’s data, hardware, and software

    • Discuss ethical and legal issues related to IT

    • Investigate online sources to help you avoid plagiarism

    • Summarize behavioral security concepts

    Unit 8: Pathways to Expanding Your Involvement in IT

    As you reach the end of this IT course, it is really only the beginning of your journey! Begin preparing for your future today by exploring your options for joining professional organizations, becoming involved in a computing club, giving back to your community, taking part in competitive programming, and becoming a lifelong learner. Being an IT professional is not simply about having the right skill set, as important as that is. You also need to be a good digital citizen and be conscious of how your actions affect the wider community.

    What will you learn in this unit?

    • Identify potential IT clubs and organizations to be involved in

    • Discuss the benefits of competitive programming

    • Read and understand technical material from magazines, journals, and books

    • Be a responsible digital citizen who promotes security and advocates for fairness online

    • Develop employability skills and knowledge

  • Have you ever wondered how your favorite software is created? Explore the software development life cycle from start to finish while developing your own programming skills with Python. Explore the power of data and algorithms along with their influence on the world. Launch yourself into the endless possibilities a career as a programmer can bring you!

    Unit 1: Software Development 101

    Have you heard the saying, “Money makes the world go ‘round”? A more accurate statement for today’s world is “Software makes the world go ‘round”! It’s almost impossible to move through an entire day without interacting with at least one piece of software, whether it’s behind a traffic light, microwave, car, or smartphone. We are going to begin your programming journey with a crash course on software development. We’ll set the foundation by discussing some software basics, and we’ll also learn the ins and outs of the software development life cycle. Get ready to explore how software is changing the world!

    What will you learn in this unit?

    • Identify common phases in the software development life cycle

    • Differentiate between procedural, object-oriented, and event-driven programming paradigms

    • Describe how software is impacting the business world

    • Explain how different kinds of enterprise system software can be used in businesses

    Unit 2: Speaking the Language

    Programming languages have gone through quite the evolution in the past 60 years. Machines only understand binary (1s and 0s), but humans are more comfortable programming in English. So languages have evolved from confusing symbols to easier-to-understand English words. The future of programming languages is heading toward natural language processing, where programmers will be able to write code in plain English instead of learning the rules of a language. With the hundreds of languages that exist today, it can be overwhelming thinking about how to choose one. But after this unit, you will understand how languages differ and which ones are best suited for certain fields.

    What will you learn in this unit?

    • Compare and contrast high-level and low-level languages

    • Explain the characteristics of imperative, procedural, and object-oriented languages

    • Distinguish between compilers and interpreters

    • Identify which languages are best suited for certain fields

    Unit 3: Problems and Solutions

    Many programmers are so eager to begin writing code that they neglect to properly plan beforehand. Rushing through the design process can lead to critical mistakes later on. We will distinguish between a good scope statement and a poor one. We’ll also see how problems can be broken down in order to develop a solution. And we will end the unit by setting up an account at PythonAnywhereso that we can start learning one of the most popular languages in the world today!

    What will you learn in this unit?

    • Identify input, output, and system processing requirements

    • Use problem-solving strategies such as breaking a problem down into subroutines

    • Write programs that use assignment

    • Explain the various data types in Python

    Unit 4: A Deep Dive with Data

    Data makes the world go ‘round. It is the heartbeat of many businesses, and it holds the power to help or destroy. With a commodity this valuable, it needs to be analyzed and understood correctly. In this unit, we will explore how data is stored in a computer using physical components. We’ll take a look at how images, audio, and video are represented and stored in memory. We’ll work with data types and understand how strings can be manipulated. And finally, we will gain a deeper understanding of how Big Data works in the real world. Hang on tight for this deep data dive!

    What will you learn in this unit?

    • Explain how binary data is processed and stored in physical components

    • Use Boolean logic gates to perform logical operations

    • Demonstrate how to manipulate strings using Python functions

    • Identify various data types and their uses

    Unit 5: All About Algorithms

    Algorithm seems to be a buzz word these days, but what exactly is an algorithm? Do they really have all the power and control that some people say? In this unit, we will answer these questions and lay a solid foundation of programming skills. We will be using Python to implement our algorithms, but the concepts you will learn are transferrable to most other common languages. Get your fingers warmed up because you’ll be typing code before you know it.

    What will you learn in this unit?

    • Develop algorithms that will be run on a computer

    • Analyze and improve an algorithm’s efficiency

    • Differentiate among the different types of loops

    • Develop programs that use sequence, selection, and iteration

    Unit 6: The Data Files

    With all the data in the world, we need to have solid methods for collecting, processing, and analyzing it. In this unit, you will learn and implement various techniques in Python for working with data from files, surveys, and the console. We will explore how programming data is stored in memory, keeping in mind some considerations when dealing with real-world data. And finally, you will begin using Python to code in an object-oriented way. Get ready for a paradigm shift.

    What will you learn in this unit?

    • Analyze and manipulate data collected by various techniques

    • Understand how computers store data in memory using stacks and heaps

    • Create and use interfaces to gather data

    • Understand and create object-oriented code in Python

    Unit 7: Running the Numbers

    We are surrounded by numbers in our daily lives, whether we realize it or not. Numbers have become important for our day-to-day functioning, as every computer system is built on a foundation of numbers. But did you know that there are people who use completely different number systems? We are going to uncover the secrets of lost number systems and save the world! Well…that may be a bit exaggerated. But we will learn how to convert among number systems, how to use various mathematical operations, how to create vector images and graphs, and how to use data structures.

    What will you learn in this unit?

    • Perform numerical conversions among different number systems

    • Create programs that use a variety of mathematical operations

    • Compare and contrast basic data structures

    • Create code that encapsulates data and methods into an abstract data type

    Unit 8: Skill Spotlight: A World of Programming

    Technology has changed our world in remarkable ways. It has provided solutions to many of life’s challenges and has saved countless lives, but there are also some downsides to technology that need to be considered and countered. Technology has opened new doors of communication, both in the workplace and in our personal lives. In this unit, we will consider the big picture of how technology is shaping our world. We will also look at what careers in computing are available. Get ready to broaden your perspective!

    What will you learn in this unit?

    • Analyze how computing affects pop culture and personal life

    • Discuss the positive and negative impacts of technology

    • Demonstrate good communication and leadership skills

    • Investigate job opportunities in computing industries

  • Dig deeper and expand your knowledge as you discover how programming can solve a vast array of problems. Plan and develop a problem-solving program while performing testing, debugging, and quality assurance procedures. Design and plan your own app as part of your capstone project to give you a thorough introduction to the world of programming.

    Unit 1: Designing Programs

    Producing a quality piece of software happens through careful planning and preparation. Determining the hardware and software requirements, setting up a database structure, and creating a data flow diagram are all important parts of the design process. In this unit, we will learn how the software development life cycle drives the creation of software. We will also create a software design document that provides necessary information about the software product. Get ready to dive into the documentation world!

    What will you learn in this unit?

    • Write a software design document

    • Compare and contrast structured programming and object-oriented approaches

    • Explain the details of how a program is executed

    • Describe different types of documentation used in the software development life cycle

    Unit 2: Plan for Success

    We already know how important it is to plan before developing a program. But how exactly do we design a program before we write it, especially if it is a large piece of software? In this unit, we will explore various tools like diagrams and version control systems that will help the programming team plan for success. We will create a data flow diagram, a process logic diagram, pseudocode, and a flowchart in order to get a hands-on perspective. We will end by converting some of our designs to a block-based programming language.

    What will you learn in this unit?

    • Describe and create tools for designing a program

    • Understand and explain how version control systems work

    • Determine the flow of data through a program

    • Convert pseudocode and flowcharts to programs

    Unit 3: Abstraction

    Do you know how exactly a car works when you turn the engine on and drive? Do you know all the details of how your refrigerator keeps your food cold? What about a washing machine? How do the dials or the interface communicate with the machine to get your clothes clean? Thankfully, we can use these machines and appliances without being mechanical engineers, thanks to the concept of abstraction, which allows us to hide complex details. In this unit, we will explore abstraction from various angles and apply it to computer hardware and programming languages. We will end with some fun abstraction using Scratch.

    What will you learn in this unit?

    • Understand and explain how models and simulations use abstraction to raise and answer questions

    • Use global and local variables in Python

    • Explain how multiple levels of abstraction are used in computers

    • Provide specific examples of how models and simulations are used in the real world

    Unit 4: Quality Assurance

    When people are in the process of buying a house, one step that should never be skipped is having a home inspector check the house over. Home inspectors have a list of areas they check to make sure everything is up to code. They examine things such as the plumbing and electrical work, the windows, and the roof. Once they have completed their inspection, they write up a report and suggest areas that may need improvement before the buyers finalize their purchase. Similarly, Quality assurance (QA) specialists make sure that software meets certain regulations and standards. Like home inspectors, they also work with a long checklist of areas to ensure that the software meets expectations. The QA process touches most of the software development life cycle, so get ready to view software through the lens of an enforcer, auditor, maintainer, and documenter!

    What will you learn in this unit?

    • Explain the software quality assurance process

    • Follow quality assurance procedures for testing, identifying problems, and tracking resolutions

    • Maintain programs by updating documentation

    • Provide user documentation and support

    Unit 5: Running the Tests

    Software bugs can be serious and even detrimental to the project if not detected. In 1998, the Mars Climate Orbiter was launched into space but was destroyed upon entering Mars’ atmosphere. The probe’s software used imperial measurements instead of metric units as expected, which was a serious bug that caused a fatal defect. Testing is an important part of the software development life cycle that can mitigate serious flaws. Read on to learn the ins and outs of testing!

    What will you learn in this unit?

    • Identify and debug errors

    • Explain differences between types of testing done throughout the software development life cycle

    • Create robust programs that handle errors effectively

    • Create a test plan

    Unit 6: Legal and Ethical Computing

    Breaking the law can have serious consequences in the computing industry. But there are many ethical dilemmas and gray areas that have not been addressed by the law, especially as technology advances. How will driverless cars choose who to prioritize—pedestrians or passengers? What kind of consumer data can companies sell? If there is a loophole in an acceptable use policy is it ok to exploit it? These questions require a careful look at ethics and some good guiding principles.

    What will you learn in this unit?

    • Describe differences between types of software licensing

    • Analyze the impact of computer laws on privacy and security

    • Explain the ethical responsibilities of a computer professional

    • Evaluate issues relating to copyright and plagiarism

    Unit 7: Safe and Secure

    Our world is full of risks and threats that can come from a variety of sources. Natural disasters, vandalism, and power outages can wreak havoc on IT facilities. Data communication systems can be hacked, and software applications can be vulnerable if their code is not robust. Stay tuned to see how we can prevent these and other risks. We will also check out how the internet functions so that we can better understand how to prevent cybersecurity risks.

    What will you learn in this unit?

    • Identify risks to IT facilities, data communication systems, and software applications

    • Identify risk recovery steps for various situations

    • Discuss privacy and security issues that are associated with the internet

    • Explain the various risk response strategies and when they should be used

    Unit 8: Skill Spotlight: Involved and Informed

    Did you know there are over 4 billion internet users in the world? That means data is being generated at an unprecedented level. How do we keep track of meaningful information in the workplace so that it is useful and effective? We are going to explore personal information management (PIM) applications and get some firsthand experience using several. We will also dive into the world of technical writing by learning how to write a computer research report. And we will end by considering how we can use our skills now and in the future to improve the world!

    What will you learn in this unit?

    • Use personal information management (PIM) applications to increase workplace efficiency

    • Conduct technical research to gather information for a research report

    • Identify and document performance goals and monitor progress toward those goals

    • Identify ways to use technology to support collaboration and lifelong learning

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

    Unit 1: Hardware and Software Basics

    Hardware and software form the perfect team; one without the other is useless. In this unit, we’ll investigate how they work together. Tech projects usually list hardware and software requirements, so you will get to put on your project manager hat and identify those requirements! Then we will compare different types of software and when they should be used. We’ll take a peek at the tiniest components of hardware and understand how they function. And you’ll also learn tips for effective file structures and get some practice manipulating Python files. Get ready to zoom into the hardware and software world!

    What will you learn in this unit?

    • 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

    How many languages do you speak? How many programming languages do you speak? There are a variety of different programming languages that fill different needs based on the type of software or website being developed. We are going to learn about the most popular programming languages and what they have to offer the software world. We will explore multitasking, exception handling, functions, and scope in Python. Get ready to learn another language!

    What will you learn in this unit?

    • 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

    Data is all around us! Whether we realize it or not, every time we interact with a computer, we are generating lots of data. But data is not very useful until it is structured and processed. We are going to learn how data is represented by computers, how we can use data structures in Python, and how to validate data that is inputted by the user. We’ll also learn about how data is processed, analyzed, and managed. Displaying data in a visual way can help users understand it better, so we’ll examine some tips and tricks for data visualization. And we’ll end with some practical Python data visualization.

    What will you learn in this unit?

    • 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!

    Algorithms are an important part of our daily lives, whether we realize it or not! We use algorithms whenever we follow a recipe or use step-by-step instructions. But algorithms can be very powerful and complex. We are going to examine several different classical algorithms that will help us search and sort data. We’ll check out various data structures and learn some logic tips and tricks. We are even going to create a simulation of wasp breeding behavior—buzz!

    What will you learn in this unit?

    • 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

    Can you remember a day when you were feeling particularly efficient? Did you clean your room in record time? Did you complete a bunch of homework in an afternoon? Did you make dinner for the family without making the kitchen look like a disaster zone? We have all (hopefully!) experienced efficiency. We can describe algorithms in terms of efficiency as well. We’ll learn a special type of notation that will help us evaluate an algorithm’s time and space efficiency. We will also get plenty of practice writing and implementing a variety of algorithms along the way. Some might even help you with your math homework. Now that’s efficient!

    What will you learn in this unit?

    • 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?

    Objects are hugely important, both in real life and in the programming world. Your favorite objects in real life might be your phone, a pet, a drawing, a robot, or something else! An object in programming is modeled after real-life objects, and it helps us organize our code around the real world. The realm of object-oriented programming is vast and exciting, so buckle up for a wild ride! We’re going to explore the different types of relationships between classes and objects. We’ll also play with some speedy turtles that do whatever we tell them. Get your fingers warmed up because we are going to be typing a lot of code in this unit!

    What will you learn in this unit?

    • 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

    Writing code is just one small part of the process of developing software. To be successful in today’s tech climate, projects need organization, management, and appropriate methodologies. We are going to explore the software development life cycle and the different ways that it can be implemented. We will design and code a small project that tracks inventory in a house. We’ll end by examining a text adventure Python program that will give us more experience with large programs. Let’s go!

    What will you learn in this unit?

    • 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

    The real world is where the rubber meets the road, so to speak. It is where all the theories, concepts, and abstract ideas become practical. In this unit, we are going to create a prototype for an app that we will then code using the Flask framework. By the end of the unit, you will have a working to-do list website!

    What will you learn in this unit?

    • 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

  • Get ready to take your programming abilities to the next level in Programming 2b! You’ll start by developing a simple web page using HTML, CSS, and JavaScript and then you’ll practice your Python skills, making your own photo editor and sound player! Using API, you’ll practice adding a weather widget to a website and you’ll ensure page safety using encryption techniques through Python. You’ll test, you’ll inspect, you’ll collaborate, and for your finale, you’ll craft a graphical user interface for an app using Python’s Tkinter! Let’s get ready to program!

    Unit 1: Spotlight: Web Programming

    The web is pretty easy to use, right? After all, you’re on it right now! But what starts out as a simple web page can quickly turn into a more involved and complicated application. We are going to explore web programming by learning a little bit of both sides. We’ll start simple and create our own web page using HTML, CSS, and JavaScript. We’ll get more advanced by adding some dynamic interactivity. Then, we’ll scale up to web applications and learn about page life cycle, events, state management, and web hosting. Get ready for a wild ride on the web!

    What will you learn in this unit?

    • Understand HTML tags and use them to create a basic web page

    • Use CSS to apply style to a web page

    • Apply interactivity to a web page using JavaScript

    • Describe topics related to web app development, such as page life cycle and state management

    • Discuss how web servers and web services work

    Unit 2: Spicing It Up with Multimedia

    Have you ever been told that you are a visual learner? Do you find it easier to remember information when it is put to music? Actually, it turns out that most of the world’s population are visual learners and can remember information more accurately when it’s in a song. Images and audio can be very powerful, and they can make or break a website or application. Because they are so important, we need to learn a few things about them, such as what forms they take on, how they are represented at the binary level, and how to manipulate them. You’ll also be making your very own photo editor and sound player in Python!

    What will you learn in this unit?

    • Differentiate between bitmap and vector images

    • Write a program in Python to manipulate bitmap images

    • Compare and contrast analog vs digital sound

    • Create a program in Python that plays and manipulates sound

    • Discuss the ways that images and audio enhance interfaces and program functionality

    Unit 3: Focus on the User: Improving UI

    Did you know that the average user spends a mere 15 seconds on a website before leaving? That’s not a lot of time! In order for a website to make a good impression, it needs to be intuitive and user-friendly. Let’s examine how to make interfaces that will attract users and be aesthetically pleasing. We will use criteria to evaluate everyday interfaces like remote controls and microwave ovens. We’ll analyze some of the issues surrounding accessibility and users with diverse needs. And we will wrap up by creating our very own mobile app!

    What will you learn in this unit?

    • Discuss how user interface design affects user behavior

    • Identify the components of a user interface

    • Apply design criteria to evaluate the effectiveness of a user interface

    • Analyze software and websites designed for users with diverse needs

    • Recognize design elements necessary for accessible websites

    • Create a mobile app using MIT’s AppInventor

    Unit 4: Testing and Quality Assurance

    Did you know that the average user spends a mere 15 seconds on a website before leaving? That’s not a lot of time! In order for a website to make a good impression, it needs to be intuitive and user-friendly. Let’s examine how to make interfaces that will attract users and be aesthetically pleasing. We will use criteria to evaluate everyday interfaces like remote controls and microwave ovens. We’ll analyze some of the issues surrounding accessibility and users with diverse needs. And we will wrap up by creating our very own mobile app!

    What will you learn in this unit?

    • Discuss how user interface design affects user behavior

    • Identify the components of a user interface

    • Apply design criteria to evaluate the effectiveness of a user interface

    • Analyze software and websites designed for users with diverse needs

    • Recognize design elements necessary for accessible websites

    • Create a mobile app using MIT’s AppInventor

    Unit 5: Communicating in Teams

    Did you know that 74 percent of employees feel as though they are missing out on company news? With a workforce that is shifting more toward remote working, it is critical now more than ever that we have solid communication skills and protocols in place. You will learn how to improve your verbal and nonverbal communication skills, what software tools are helpful for collaboration, how network components and architectures form the backbone of our online communication, and how APIs facilitate communication between interfaces. You will also get practice with synthesizing multiple sources and ideas on a research topic as well as presenting information in a compelling way.

    What will you learn in this unit?

    • Employ effective verbal, nonverbal, and reading skills

    • Explain major networking components, systems, and architectures

    • Use and test an API

    • Perform advanced searches and present information

    Unit 6: Taking Control: Security and Ethics

    Did you know that a hacker will perform a cyberattack every 39 seconds on average? One in three Americans will be affected by a cyberattack in some way each year. Not only do companies need to be aware of the risks and plan specific controls, but they also need to fully realize the impacts that a data breach could have on them financially and socially. Building privacy and security into the earliest stages of software development is absolutely crucial. We are going to investigate the fields of cryptography and cryptocurrency and how they relate to privacy and security. Then, we’ll even implement an encryption technique in Python!

    What will you learn in this unit?

    • Identify risks and controls for IT facilities, data, and software systems

    • Describe methods of cyberattacks

    • Explain the principles of cryptography and implement encryption in Python

    • Analyze the impact of data breaches and cyberattacks

    • Discuss how blockchain technology works in cryptocurrencies

    Unit 7: Graphical User Interfaces

    We have all used graphical user interfaces; in fact, most of our operating systems are based on this visual form of interaction. But even though GUIs are all around us, we may not know much about how they are designed or developed. Let’s explore how Windows apps use GUI components and how they function. We’ll get very practical by designing and developing our own GUIs through Python’s Tkinter library. And finally, we’ll examine some of the ethical concerns around apps, including intellectual property issues and ethical data acquisition.

    What will you learn in this unit?

    • Explain the characteristics and capabilities of Windows apps

    • Add widgets to a GUI using Tkinter

    • Create advanced GUIs using different layouts in Tkinter

    • Discuss the legal and ethical components of user interfaces

    Unit 8: Go Team!

    In today’s fast-paced, team-oriented programming world, it’s absolutely critical to develop good communication and collaboration skills. Gone is the stereotype that programmers are introverts who don’t like to talk to people. Quite the opposite! Collaboration takes place all the time throughout the development process, and we’ll get some practice using various tools. You’ll also continue working on your capstone app by adding backend functionality in Tkinter. And we’ll wrap up by making some concrete goals for your future. Ready, set, teamwork!

    What will you learn in this unit?

    • Select and use appropriate communication tools for programmers in a project environment

    • Participate in a peer code review

    • Develop functional code behind a graphical user interface in Tkinter

    • Create a personal career plan