Computer Programmer
Average Salary: $80,000 - $96,000
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