Introduction to Programming 1B: Problem Solving Through Programming
Computer Programmer / Software Developer Career Pathway Course Units
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!
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.
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.
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!
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!
Unit 6: Legal & 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.
Unit 7: Safe & 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.