Introduction to Programming 1a: Introduction
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!
Units at a Glance
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
Required Materials
Computer with:
- Internet access
- Presentation software
- Word processing software
Students will need to create a free account for the following sites:
Students will use the following site to create flowcharts:
They can interact with these web sites through any typical browsers.
Note: You cannot use PythonAnywhere if you are under 13 years of age.