The First Programmer – Ada Lovelace The first programmer was Ada Augusta (1815-1852), Countess of Lovelace. Dating back to the mid-1800s, she is credited with being the first to write instructions for the first computer program. Our field begins with her. Let’s meet Ada Augusta.In 1832, Ada met Charles Babbage, the inventor of a proposed mechanical computer called the Analytical Engine. Although his designs were far too advanced to build in their time, their work set the stage for today’s computer and computing. The Analytical Engine included concepts for integrated and stored memory, arithmetic processing (which today is known as […]
Labs
Labs are hands-on coding projects that you build along with Tonya as she explains the code, concepts, and thought processes behind it. You can use the labs to further your code knowledge or to use right in your projects. Each lab ties into the Docx to ensure you have the information you need.
Each lab is designed to further your understanding and mastery of code. You learn more about how to think about its construction, quality, maintainability, programmatic and logical thought, and problem-solving. While you may be building a specific thing, Tonya presents the why of it to make it adaptable far beyond that specific implementation, thereby giving you the means to make it your own, in any context.
Evolution of Computing
In order to appreciate just how far this field has come, we need to step back in time and understand the evolution of computing and the computer. Understanding the roots and challenges of those who came before us will help you to visualize your role now and what is possible for the future. Besides, knowing some of the key technological advancements and the key contributors arms you with both perspective and talking points.
Abstract Data Type
The abstract data type, or ADT, is a container whose properties (characteristics) and functionality are separate from the implementation. Let’s take about it. Study Notes What is abstract? Per Merriam-Webster: relating to or involving general ideas or qualities rather than specific people, objects, or actions We’re separating the general from the specific. What is an Abstract Data Type (ADT) Container Properties (data and functionality) are independent from an implementation View the type from the application’s (or user’s) perspective Model to “abstract” away complexity (abstraction) Lists Designed specifically for the needs of a list Properties and functionality to track the list […]
Special Data Type
Special data types are specified by the programming language. One example is the enumeration. Let’s explore this data type. Your key takeaways are: Special data types are specified by the programming language Enumeration is a common data type It is an example of using the right tool for the job Study Notes It’s a data type specific to a particular language. One fairly common data type is an enumeration. Examples of Enumeration enum Month (JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC); enum Season (SPRING, SUMMER, FALL, WINTER); enum Users (SUBSCRIBER, CONTRIBUTOR, AUTHOR, EDITOR, ADMIN, SUPERADMIN); […]
Composite Data Type
Composite data types are a combination of primitives and other data types. They include arrays, lists, and collections. Your key takeaways are: Composite data types include arrays, lists, and collections Combination of primitives and other data types Arrays ordered arrangement of data each element keyed – implied or declared value held in the element can be any data type Study Notes What is a Composite Data Type? Combination of the primitives and other composite types It’s a composition of different types Examples of Composite Data Types Array Collection What is an Array? An array is an ordered arrangement of data. […]
Primitive Data Type
The primitive data type is the basic building block of data. They hold one single value. They represent a string, number, or boolean. Your key takeaways are: The basic building blocks of data are the primitives Primitives hold a single value representation for string, number, and boolean Each language has these building blocks Study Notes All data types are built off of the primitive types, so we’ll start with these. Different Data Representations What patterns do you see in the following table? Why are patterns important? Patterns tell you a story. Patterns give you clues. Start watching for patterns. How […]
Lab Introduction
Data is a big part of what you do, no matter which language you’re working with. In this lesson, we’ll talk about the different types of data type classifications. Data Type Classifications Primitive Composite (e.g. array and collection) Special (e.g. enumerated) Abstract (e.g. list, objects) Why are Data Type Classifications Important? What are some of the reasons you need to know about these data types? You need to understand how the data is being computed. Knowing how each of these data types is represented helps you avoid unexpected results. What happens when you compare a floating point to an integer […]
Pseudocode
Pseudocode helps you to transition from visual mapping, as you did in the last episode, to a textual format. It’s written in a generic non-state specific format. It’s the building block of code before you write your actual code.
Computational Visualization
In this episode, you will learn about different techniques for visualizing computation. You’ll learn about how to conceptual view your code, do visual mockups and maps, flowcharting, and thought and planning tools. Your key takeaways are: Conceptual view of code Visual mockups and mapping help you see the big elements Flowcharting helps you to map out the individual steps and conditions Thought and planning tools Study Notes How do you visualize the steps to do something? Using visualization, we’re able to map out the process for registering. Now convert this into something useful. Think logically. The flowchart helps you with […]
Computational Thought
Your next step is to learn about computational (or programmatic) thought. Your key takeaways are: Computers are stupid Software tells the computer explicitly how to solve a problem Computational thought is the act of expressing how to solve a problem Building software is a thinking profession Study Notes What is computation? Per Merriam-Webster the act or process of computing or calculating something a system of reckoning What is computing? Per Merriam-Webster to find out (something) by using mathematical processes Why mathematical processes? Remember: computers are comprised of circuitry and software. Methodical Logical Step-by-step expression Proof Drive to the solution What […]