Babbage University
There are stories here for your current quest
Babbage University
Metapolis' famed university. Named for the inventor of the computer, Charles Babbage: the first programmer.Story Table of Contents
4 of 8Git in Education
You enter the impressive building designated as the Department of Computer Science. Last time you were here was the weekend, but today, the school is alive. Two college students late to class jog past you. Some sit with headphones in, working on laptops at tables that line the broad hallway.Your destination is the Leibniz Lecture Hall where Dr. Joy is teaching a software engineering class for graduating seniors. Upon entering, you take your place at the back of the auditorium-style classroom. About two hundred students are filling the seats, laptops open in front of them. You look down the rows of backs-of-heads and computer screens to the center floor where the professor is slowly pacing in front of a large projection screen.
Dr. Joy's Powerpoint presentation indicates that she has just finished introducing herself and reviewing the syllabus. She advances to the next slide: The Group Project. "As the syllabus suggests, the grade on your group project will comprise 90% of your grade in the class." Several students shift uncomfortably. She goes on to say that the project will be graded both on its external interface and its internal implementation.
A student one row ahead of you finishes a game of League of Legends at that moment and raises his hand to ask, "But... like... what does that mean?"
"Let's suppose," says the professor, "that your group decides to make an educational video game to teach algebra to struggling middle schoolers. Part of your grade will come from whether or not your game meets that goal. Part of your grade will come from how well-organized and well-documented your code is."
"But... like..." says a student a few rows ahead of you, Facebook open on her screen. "How will you know if the code is... um... well-organized and well-documented?"
"My TAs and I will look at your group's Github repositories," she says.
There is murmuring throughout the auditorium. Another student asks: "Can we work alone if we --"
"No," Dr. Joy says.
Another tries: "But, suppose we have a group that isn't getting stuff done, can we join another --"
"No," she says, again.
"What if we've never used Github before?" asks another.
"There's a tutorial on my website," says the professor. "And there are literally a million tutorials online."
The League of Legends boy in front of you asks: "What if one person in the group ends up doing all the work?"
"Then you didn't plan the project very well," says Dr. Joy.
Another student pipes up "But we can plan everything right, and one person can still flake out. I have had to cover for a lot of --"
"Let me stop you right there," Dr. Joy interrupts. She takes a deep breath, and you can tell that assigning high-stakes group projects to twenty-year-old coders is not the thing she loves most about her job. "Raise your hand if you hate group projects."
Everyones hands go up.
"And raise your hands if you've done a group project in the past that didn't go well," she says.
Hands go up again -- almost all of them.
"I get it," she says. "Group projects are frustrating, unfair, painful, annoying and sometimes seemingly impossible. But guess what..." She advances to the next slide, which simply contains the text:
Life is a group project
"I teach this class every year," she says. "And every year, it's the same questions. Every year, there are people who drop the class when realize they have to do a group project. Every year, I watch the coders who don't drop struggle to figure out how to write code with other people. And every year, students who finish the class come up to me and say, 'Thank you.' Do you know why?"
No one answers.
"And more than that," she goes on. "Every year, former students write to me just to thank me for this class. Do you know why?"
A few students raise their hands. She ignores them.
"This class is not easy," she says. "In part, it's because coding with other people is something you've never practiced. Even in computer science departments, where we know most of you will go out and get jobs on software teams, we still don't spend much time teaching you how to work on teams. Also, it's because coding with other people is a genuine challenge -- one that professionals face daily. But..." She points at Life is a group project. "This class is where you'll learn what coding really is. Some of you still think that coding is about computers. Those who desperately want to cling to that idea are the ones I won't be seeing back here next week. Those of you who stay are the ones who will realize that coding is never about computers."
Dr. Joy drinks from a bottle of water on her podium and advances to the next slide, which contains the text:
Code is about people
"People, people, people. People write code," she says. "People use code. People write code for people to use. Sometimes that means people will use your code inside their code. Sometimes that means that people will run your code and interact with it through some software interface. Either way: people work with people to write code for other people."
She goes on to the next slide.
111 billion LOC/year
"There are 111 billion lines of code written every year," she says. "That's the code that runs our cars and planes, carrying people across the Earth. That's the code that runs on our smartphones, connecting people with other people. That's the code that operates our stock markets, facilitating financial transactions between people. That's the code that analyses astronomical amounts of data, so that people can make sense of it. That's the code that runs on your laptops, so you can play League of Legends during class."
Everyone chuckles. The student who was doing just that shrinks down in his seat, as do several others in the group.
"By the way," Dr. Joy says, "I hope you're all writing this down. That other 10% of your grade is the final exam. All of this will be on it." This alone causes League of Legends, Facebook, Instagram, Youtube, and various other pieces of software to disappear from laptop screens -- replaced by programs like Notepad, Sublime, Vim, Emacs, and Evernote.
The professor continues to talk about how the field of software engineering has grown into an increasingly people-focused discipline and the sounds clacking keys fills the room, as the students try to summarize her thoughts -- much of which they barely understand -- into useable notes for studying later.
The class finishes and students shuffle out. When you are the last one in the room, Dr. Joy notices you as she is packing up her laptop.
"Are you the coach from MetaCoders?" she asks.
You get up and join her on the stage. "Coach in training," you say as you shake her hand. "That seemed like a struggle, Dr. Joy."
"It's not their fault," she says. "They've gone through so many years of coding education where they only thing they were assessed on was whether or not they could get the computer to do what the homework assignment said. By this stage in their college career, they've completed hundreds of isolated, self-contained assignments -- none of which were grounded in an actual problem that needed fixing. It's a style of education that leads to a paradox: they are all great coders, but with no sense of what is actually worth coding. Most of them don't know what it means to code something for someone else. They just know how to get their code to do what their professor asked them to do. If it were up to me, they would all have learned Git a long time ago. And they would have begun learning how to write code in teams from day one."
"I'm guessing that's why MetaCoders HQ wanted me to come here," you say.
"You've already used Git more than some of these college seniors," Dr. Joy says. "I do think that matters."
"Why not fix it?" you ask. "Can't you get them to collaborate earlier?"
"Education is hard to change," says Dr. Joy. "We only have 4 years with most of these kids. Many of them come from high schools that don't teach computer science. And -- as you saw -- college student hate when you make them do group projects. It doesn't matter how much you tell them that life is a group project. They still don't want to do them; they think that their life will be the exception to that rule. They have 12 years of prior education -- most of which did not involve group projects. Many of them expect 4 more years of the same."
"I always hated group projects too," you say. "There's something about your grade depending on what other people do that feels wrong."
"Interestingly enough," says Dr. Joy, "you MetaCoder coaches are in a better position to make change than I am. You don't give grades and you coach instead of teach."
"I'm not sure what that has to do with it."
"What's the one group project experience that kids consistently get?" she asks. When you don't respond, she answers her own question: "Sports. Not every kid plays them -- but many do. And that means that for many of the students sitting in my class today, their one and only experience with teamwork was sports. Coaches are the one kind of 'teacher' that spends most of their time getting students to grow as individuals and as a team."
"So is that the reason MetaCoders calls them 'coaches' instead of 'teachers'?"
"You'd have to ask the MetaCoders founders to be sure," she says. "But if I had to guess: Yeah. If you tell a group of students you're a teacher -- they'll all expect you to do what teachers tend to do: start filling their brains with information. If you tell them you're a coach -- they'll expect you to do what coaches tend to do: inspire them, build their skills, and help them become better team players."
You both stand in silence in a moment; Dr. Joy seems lost in thought. Then:
"Well, I have another class to prep for and you have a meeting at TechSquared, right?" You say goodbye to Dr. Joy, who says she'll see you in Chapter 6 to discuss the details of how brains learn to code -- one of her main research areas. She also tells you to say hi to anyone at TechSquared who graduated from Babbage University. "They'll all remember my class," she says. "They always do."
Git in Education
Tue, January 5 10:10 AM
Read the full story to the right:
Dijsktra Elementary
There are no stories here for your current quest
Dijsktra Elementary
Named for a cool dude.Story Table of Contents
No stories here at this time. Look elsewhere!
Lovelace Elementary
There are no stories here for your current quest
Lovelace Elementary
Named for Ada Lovelace, one of the world's first programmers. Her life was tragically short, but her legacy shall live forever.Story Table of Contents
No stories here at this time. Look elsewhere!
Margaret Hamilton Elementary
There are no stories here for your current quest
Margaret Hamilton Elementary
Named for the an American computer scientist, systems engineer and business owner. She was director of the Software Engineering Division of the MIT Instrumentation Laboratory, which developed on-board flight software for NASA's Apollo space program.Story Table of Contents
No stories here at this time. Look elsewhere!
Pascal Elementary
There are no stories here for your current quest
Pascal Elementary
Named for a cool dude.Story Table of Contents
No stories here at this time. Look elsewhere!
Bruce's House
There are no stories here for your current quest
Bruce's House
Bruce is MetaCoder's newest Coding Coach in Metapolis; he was hired at the beginning of March. He lives here with his family.Story Table of Contents
No stories here at this time. Look elsewhere!
Jack's House
There are no stories here for your current quest
Jack's House
Jack's place has an extra room that is used as an office space, this is where he will keep all the equipment.
Story Table of Contents
No stories here at this time. Look elsewhere!
John's House
There are no stories here for your current quest
John's House
John lives in a condo that has a side gate with easy access to his back door, inside he has a small room inside where he keeps all the equipment.
Story Table of Contents
No stories here at this time. Look elsewhere!
Joseph's House
There are no stories here for your current quest
Joseph's House
This is where Joseph lives. Or so he tells us.
Story Table of Contents
No stories here at this time. Look elsewhere!
Kate's House
There are no stories here for your current quest
Kate's House
Kate's house has a driveway and a garage where she keeps all the equipment.
Story Table of Contents
No stories here at this time. Look elsewhere!
Ruby's House
There are no stories here for your current quest
Ruby's House
This is where Ruby lives.
Story Table of Contents
No stories here at this time. Look elsewhere!
Coder Cafe
There are stories here for your current quest
Coder Cafe
A quaint coffee shop frequented by coders of all sorts.Story Table of Contents
8 of 8Yu's Bio
You step into the coffee shop, relieved to be out of the cold. Once again, none of the patrons of the shop look up, all of them too engrossed in the work on their computer screens. It's subtly disorenting.
Yu is sitting in the same place as last time, with the same coffee mugs. You join him at his table.
"Are you ready to build your coach bio?" Yu asks when you sit down. "I'm still working on mine, but check it out."
Yu first shows you the code in DrRacket:
#lang mc-coach/bio
(bio
#:first-name "Yu"
#:profile-pic (square 40 'solid 'red)
#:coach-story "A few months ago, I began training as a MetaCoders coach...")
Then Yu shows you the webpage that the code produces when it runs:
"You're welcome to join me. I'm going to keep working on it," says Yu. "I haven't even added my actual profile picture..."
Yu's Bio
Tue, January 5 1:00 PM
Read the full story to the right:
Hopper Library
There are no stories here for your current quest
Hopper Library
Named after Grace Hopper, who created the first computer language compiler, which led to the COBOL programming language.Story Table of Contents
No stories here at this time. Look elsewhere!
MetaCoders HQ
There are no stories here for your current quest
MetaCoders HQ
The mothership hovers benevolently over the city of Metapolis. The population thrives in the cool shade beneath.Story Table of Contents
No stories here at this time. Look elsewhere!
Kick Butt Martial Arts
There are no stories here for your current quest
Kick Butt Martial Arts
A local business owned by Johnny Lawrence.Story Table of Contents
No stories here at this time. Look elsewhere!
Metapolis Welcome Center
There are stories here for your current quest
Metapolis Welcome Center
Where all vistors to Metapolis are encouraged to begin their journey.Hint: Most quests will start here...
Story Table of Contents
2 of 8Chapter 4: Intro
Welcome back to Metapolis!In this chapter we will be learning more about coding education as it works in universities and how we see coders work "in the real world."
Today we will travel to:
- Babbage University Where we'll observe a class of senior computer science students learning git.
- TechSquared Where we will see a team of developers at work.
- Coder Cafe to catch up with Yu and learn how to create a coach bio.
Also, if you complete the assessment, you'll be uploading your own coach bio to Github -- which will allow us (at MetaCoders HQ) to incorporate your bio into our main site at metacoders.org and virtually introduce you to all other MetaCoders around the world!
Chapter 4: Intro
Tue, January 5 9:00 AM
Read the full story to the right:
TechSquared
There are stories here for your current quest
TechSquared
A big business that does big, big things.Story Table of Contents
6 of 8Git in the Workplace
With the help of some very friendly front desk staff and security officers, you find your way to the 3rd floor, where someone will supposedly meet you "by the egg couches." You hope the "egg couches" will be obvious... The elevator opens onto a bright office space. An entire wall is simply windows, looking south across Metapolis. You can see the distinctive rooftops of Babbage University in the distance.Before you can begin your search, someone who looks scarcely older than the students at the college walks up to you and introduces herself. "Hi, I'm Alex. You're the visitor from MetaCoders, right?"
"That's me."
"We're about to have our lunchtime Scrum," she says. "Quick, follow me."
She powerwalks you to a fishbowl-style meeting room -- all walls made of glass. Before you walk in, you can already see the team of three people waiting for you.
"Okay, ready," says Alex as you both enter the room. "Everyone, this is our visitor from MetaCoders." Then to you, "This is my team. I'm the backend dev. Conrad is the UI/UX designer. Christopher is the frontend dev. And Ito is the project manager. We're making an MVP for TechSquared's new app for teaching algebra to middle schoolers in remedial math classes."
Everyone stands up to shake your hand. To your surprise, they don't sit back down when Ito says, "Okay, let's begin the Scrum."
Alex starts: "Let's see...I'm still implementing the data models for the gamification system -- points and badges and stuff. I opened a pull request morning on our main repo. I also talked to IT about hosting the MySQL database separately from our webserver. He says they can do the same load balancing system that we did on the SpellingBee app. I also slacked the SpellingBee devs to see if it makes sense to reuse their authentication system instead of rolling our own. They said they'd help me split out their custom authentication code into a Ruby gem."
Alex finishes with a nod, and the attention shifts to the next person in the circle, Conrad.
"Um, I have mockups ready for the landing page, the free trial pages, and the upsell page," says Conrad. "Christopher and I are going to work together today to convert a couple of the main widgets into React components. And I might need some help getting my Node environment set up, I tried to run do 'npm install' and got a weird error yesterday."
Christopher's turn: "I finished the Ajax calls for the user authentication flow and for when users unlock badges. I opened a pull request this morning; Alex and I are going to do a code review on that before end of day. And I'm going to help Conrad ramp up on our JavaScript codebase. Oh that reminds me. Ito, can you give Conrad access to the frontend repo?"
Ito makes a note then says: "I spoke with Nina about the project launch timeline, and she gave us the go-ahead. Marketing is still working on the app name and logo -- but Nina said she would make sure they finish by next week. So we're looking at a soft launch by the end of the month. Nina is going to get us some test users from the SpellingBee app -- so we can squeeze in a solid month of iterations before March, when marketing is going to do their big push for early adopters."
To your surprise, the meeting disolves almost immidately after that. Everyone shakes your hands and thanks you for coming, leaving you alone with Alex in the fishbowl.
"I didn't understand a word of that," you say.
"If it makes you feel any better," she says, "Conrad probably didn't either. He just tranfered in from marketing a few days ago; it's only his third Scrum. He's great with Photoshop and Illustrator, but he's only just learning JavaScript."
"I guess it never occurred to me that coders have to learn more languages than just code. There's a whole new dictionary of words: scrums, backends, authentication flows, pull requests." You shake your head. "It's a lot."
"Before I graduated from Babbage University," she says, "I spent a summer coaching for MetaCoders. One of the most useful terms I learned there was Broca's region."
"I guess I haven't gotten to that yet," you say. "Or maybe I missed it. I'm on Chapter 4."
"I think it's after that... Chapter 6, maybe?" Alex says. "Anyway, it's one of the areas of the brain that processes language. Scientists have found that as you learn a language, there are changes in that Broca's region. But the cool thing is that Broca's region doesn't care what the language is -- English, Chinese, Spanish or even Java, Ruby, Racket -- they all get handled at least partially in the same place." She taps the left side of her skull. "When you're comprehending language -- whether it's spoken or written, whether it's a human lanugage or a computer language -- little regions of your brain's left hemisphere get involved."
"So... I should just wait for my brain to catch up?" you say.
She talks as she leads you back to the elevator. "One of my favorite things at MetaCoders was teaching kids through stories; I minored in Literature in college. Stories are a chance to teach students things like 'pull request' and 'frontend' versus 'backend' -- the giant network of English words and ideas that get used in and around software projects. I know it helped me become fluent long before I applied to work here. So yeah -- be patient -- both when you're learning to code larger and larger textual artifacts and when you're learning the culture around how people collaborate on those artifacts."
When the elevator door opens, you step out, but turn around and say: "Oh, Dr. Joy says hi."
"Dr. Joy! Her class was the best!" says Alex, suddenly excited. She sticks her hand in the elevator door to keep it from closing. "If it wasn't for MetaCoders, that would have been my first ever experience collaborating on software."
"Any advice for me? I'm supposed to code my own coach bio and push it to my repo ."
Alex thinks for a moment. "Keep a log of everything you do. If you ever want to get a job at a company like TechSquared, you'll need to tell a story in your interview -- and that story needs to convince people that you'll be an asset if you come aboard and begin contributing to the company's codebase. Your bio is a contribution to the MetaCoders codebase. It's not just a bio. It's part of a bigger story."
Git in the Workplace
Tue, January 5 11:30 AM
Read the full story to the right:
Turing Recreational Center
There are no stories here for your current quest
Turing Recreational Center
Named after Alan Turing -- considered the father of theoretical computer science and A.I.Story Table of Contents
No stories here at this time. Look elsewhere!
#lang mc-coach-assess
(view-deck (chapter-4))
(test-with-deck (chapter-4))
- Start at the Metapolis Welcome Center
- Find the green icons in order: 1 of 8
- There are 4 stories to find in this Chapter.
- Stories without these icons will not be on the test.