Code Em Fall 2016
Code Em started with icebreaker introductions. Tell the class three truths and a false statement about yourself, including the instructors! Everyone was asked to share their experience with computer science and programming.
To assess varying levels in computer science, we started a discussion on what everyone's goals might be for the class. Since this class will take a project-based approach, the students will learn to merge all of these goals into one project, or projects -from all of the class-shared objectives and set Code Em curriculum objectives, students will learn how to create an "objective tree" by using several objectives. Think of each objective, or goal as a separate piece that relates to the rest, to fit together making a large puzzle. Some of the student's objectives included, learning how to code in Python and HTML, learning to code better, be able to create a series in Scracth, code to draw a character, make different electronics and design games.By using an objective tree, as a class we can break each goal down into smaller definable charactersitics. We will start to interconnect each objective (goal) from these characteristics. This objective tree method is a great method to learn; throughout the Code Em classes we will be using other methods like it to break down complex things into simpler, more understandable parts -really getting into talking about Abstraction.
Name that hardware!
When the Code Em students walked into Tech Em, they noticed two tables at the front of the studio with a slew of mismatched computer hardware. How could they not notice! Each piece of hardware was labeled with a different number. Students were tasked to write down what they thought each hardware is named and what year they thought it was invented or built. When they were finished, we went over each device's identity and when it was invented. Many of the device's real identities and age came to a complete surprise to everyone. For example, what students thought was just a keyboard, was actually a whole computer, the TRS-80 (or "trash-80", despite the nickname, it is completely respectable)! Many were surprised about the Raspberry Pi, a whole computer.
This exercise was an excellent intro to the advancement of computer hardware. The hardware devices from the quiz were from several different decades. A vacuum tube representing the 1940's, and the Raspberry Pi (first generation from 2012).
Brief History of Computing
To gain a further appreciation for the advancements in computing, learned that a computer does not have to be powered with electricity or by a battery. Even their parent's car is considered a computer. Examples of early computers started with Tally Sticks, at a time when history was not recorded. These were tools (mechanical devices) to aid in counting. Other examples included were the Abacus (~2700 BC to present).
So, what is hardware? What is software? What is a computer program?
As a class, we went over what each of these mean. Hardware is the physical stuff, like the keyboard, monitor, mouse, circuit boards, chips, wires, etc.
Software is what's 'inside' the computer, all of the programs, or applications, like a word processor or game.
A computer program is step-by-step instructions written to tell the computer exactly what to do.
The class was able to see a snippet of computer hardware progression in-person at the front of Tech Em from the interactive quiz.
We will be using a messaging app called Slack. Tech Em has been using this for some time. We have created a separate Slack 'team', to have all the students from each of the classes join. This provides the opportunity for students to reach out after the class with questions on any of the concepts we learned, discussing projects, or troubleshooting code while at home. While students are using Slack, they will have the opportunity to access feedback from the rest of the Tech Em Studios team!
Tracking our Projects
We briefly went over this in class. We are going to be using GitHub as a way to compile and organize everyone's coding projects they have been working on. This site can 'host' their repositories, so it will all be in one place. Once we start typing up code, we will teach them how to upload their projects onto a private repository. Having all of their projects in one place will help with putting together a portfolio from the class if you and your child choose to do so. Students can upload other software projects they work on outside of class (and after this class) onto this site. There are millions of open source projects on GitHub that your child has access to once they create an account!
For those students that have an email address, please accept the Slack invitation if you have not already done so. For those that do not have an email, parents, you have the option of either creating an email with your child through Gmail or another domain, or we can send an invitation to your email. After accepting the invitation, your child can create their own credentials for the Slack sign-in.
During the time in between next class, students can create a GitHub account to start getting used to it. As a class we will go through how we will upload our projects.
We are planning on having every student earn an official Tech Em Studios certificate by the end of the session! We will most likely have an 'assessment' towards the end to make sure each student has understood the fundamental concepts of what we'll teach throughout this Fall towards the end of the session.
Outline for Code Em
We started with a review of what we went over last week: Objective discussions (what our learning interests are and project ideas), using Slack, GitHub, the Interactive Quiz on hardware devices. We continued our conversation on computer hardware history starting with where we left off, what makes a computer, a computer. Our initial definition of a computer (early computers) is a tool used for helping to solve problems, it does not require electricity (or a battery). A great example to start off with, which helps to gain appreciation for how far computer hardware has come is something that was invented before history was written, Tally Sticks (generally made up of wood). This was a device to help early users solve math problems. After counting crops, or anything to be counted, humans quickly realized they would exceed the limit of their initial counting method, their ten fingers. So to help keep track of high counts of things, we created these tally sticks. These tally sticks operate quite identically as do tally marks.
We observed the advancements of early computers through the centuries with the Abacus (~2700BC), Pascal's calculator (1642's -1800s), Arithometer (1820), and the Babbage Machine (1823). Then onto the first computer programmer, Ada Lovelace.
We jumped to learning about the importance of the main components of computer hardware, starting with the vacuum tube. We categorized the advancements engineers had made in computer hardware into 'generations'. This Vacuum tube signaled the 1st Generation. About 17,000 of these 'switching devices' were the main component of the first commercial computers like the ENIAC, in the 1940s. However, these required a great deal of electricity and would burn out easily. Not to mention, the ENIAC's size demanded a very large room.
The replacement for the vacuum tube was the transistor, considered to be the building blocks of computers. The advent of the transistor rang in the 2nd Generation, electric computers. These devices were a great deal more efficient than its predecessor. When you combine transistors, logic gates are formed, to make integrated circuits. When I say 'switch', I mean there are only to possible input values and output values, ON and OFF (or 0 and 1). This "internal switching logic" is how computer hardware carries out instructions provided in the software. Inside all modern devices are lots of switches. These switching devices are very much like the billions of neurons in our brains.
These integrated circuits were miniaturized to form microchips. Microchips comprised the main component of hardware, that brought in the 3rd Generation, microcomputers. These allowed for more 0's and 1's, thus allowing more data to be computed and stored (computers store data using 0's and 1's).
We explored a few different types of logic gates, the AND gate, OR gate, and the NOT gate. Each gate accepts one or more input values and produces a single output value. Remember, these values are either zero or one (can't be both!). We learned how each of these gates operate and how you can represent these logic gates, their logic diagram symbol and associated truth tables. We learned that we can combine these logic gates, to have more inputs and outputs of 0's and 1's.
Next week, we'll learn the awesome steps a computer takes to fire up a program: Fetch, Decode, Execute! -and how this is relative to how we humans operate. We'll also take our first look at programming languages, starting with Python.
Draw a logic diagram symbol for each gate we learned about (AND, OR, NOT). Show the logic for each switching device by creating a truth table for each.
BONUS Try combining a few of these logic gates to make a simple circuit -we started this in class.
Remember to check your email for an invitation to Slack! For an explanation of this app, look to the end of Day 1 section of this blog.
There are comments.