Code 201: Foundations of Software Development
There is mandatory pre-work for Code 201 that counts as 5% of your total course grade. You will have required assignments to submit in our Learning Management System (called Canvas, by a company named Instructure). You will get access to Canvas shortly after you've completed the enrollment process; these assignments documenting your completion of the prework are due by the beginning of the first class. Completing these Canvas assignments will take only a few minutes each, and note that time estimates are provided below for the individual prework components.
In the meantime, please keep notes on your progress through these pre-work assignments, including the time you have invested in them and also details on any questions or problems you encounter.
Pre-work is outlined in ten steps on this page. Note that in Step 3 there are specific instructions that are dependent upon your operating system, and also keep in mind that upon completing those steps that there are still Steps 4-9 to complete on this page, including code tutorials that take quite a bit of time.
Start on the pre-work as soon as you can and be sure to allow yourself plenty of time to complete it. Expect to spend, at a minimum, several evenings and a weekend day or two to get everything completed. Allow yourself more time than you think you will need so that you can take breaks and work at a methodical pace without rushing or trying to cut corners. Detailed time estimates are provided in the following overview.
NOTE: If you have taken Code 101 already, skip to #3. The guide in #3 is similar to Code 101's pre-work but contains additional steps you must complete prior to Code 201.
Overview of Pre-work Steps (time to complete per item)
- Code 101 (optional, one full 12-hour day)
- Laptop readiness (time for this can vary widely depending upon the age and condition of your laptop)
- Setup Guide for Your OS (multiple downloads are involved; 1-3 hours depending on your network speed)
- Purchase Required textbooks (15-30 minutes)
- Brush up on Algebra (1-2 hours)
- Practice the Terminal (2-3 hours)
- Read through a Git tutorial on Udemy (1-2 hours)
- Complete the textbook readings for Day 1 of class (2-3 hours)
- Download and Install Slack (15-30 minutes)
- Complete the assigned Career Coaching assignments (2-3 hours)
Total estimated time for pre-work Steps 3-10: 25 to 57 hours of working time (not counting breaks)
1. Code 101 (optional, one full 12-hour day)
If you are completely new to coding, consider completing Code 101 to build your first website using HTML and CSS and to find out if a career in software development is right for you.
2. Ensure your laptop is up to the task of coding (time for this can vary widely depending upon the age and condition of your laptop)
- Eliminate all viruses and malware
- Uses the latest, stable, updated version of its operating system
- Has a functioning screen, keyboard, and trackpad
- Has plenty of free hard drive space and memory
- Can reliably connect to wireless networks
3. Complete the setup guide for your computer's operating system (multiple downloads are involved; 1-3 hours depending on your network speed)
Following completion of these Pre-work assignments, students should:
- Have a terminal with a Git compatible prompt.
- Be able to receive a valid response when typing "git --version" in their Terminal or Ubuntu app.
- Be able to open VSCode from the Terminal or Ubuntu app on their computer.
4. Purchase the required textbooks (15-30 minutes)
If you haven't already, purchase this textbook set prior to the first day of class:
5. Brush up on Algebra (1-2 hours)
Take some time to review essential algebra. These kinds of logical and mathematical concepts will be very useful to you as you dig into writing code.
Here's a list of algebra topics for your review:
You don't need to read through each topic, but you should have familiarity with most of them. You should have good familiarity with exponents and polynomials, and be sure to read the sections on Functions and Logarithms, as well as any others that look interesting to you.
6. Practice the Terminal (1-2 hours)
One significant aspect of creating software is interacting directly with text files. One of the most efficient ways to do this is through the Terminal, or Command Line.
If you aren't already, this is a great time to get used to the command line. No matter which operating system you're using, this tutorial can help you feel confident using the command line to navigate your computer:
Please work through Sections 1 through 5 of this tutorial. Note: This tutorial is for everyone, even though the word "Linux" is in the title! The same commands work in Windows and MacOS terminals as well.
Also recommended from this tutorial: Section 14, which is a handy cheatsheet of commands. Feel free to explore the more advanced topics if you wish, but those topics are beyond the scope of the Code 201 course!
Using the terminal may feel a little scary at first, but stick with it and give it some practice. This is you, in charge of your computer. :]
7. Git tutorials (1-2 hours)
A. There is a lot of useful information in the Udemy tutorial, but it is a lot to digest for beginners. Skim through it as you can while striving to acquire terminology and gaining an understanding of the large concepts. Learning about version control is one of the most challenging things in the first week of Code 201. Above all, for now, strive for a conceptual understanding of how version control works, and why we use it in software development. The details are much more easy to grasp once the concepts are in place.
B. For a little hands-on practice, complete the first three exercises in the following tutorial:
- Introduction to Git Commits
- Branching in Git
- Merging in Git
8. HTML, CSS, and JS Tutorials (25-50 hours)
Complete these online tutorials prior to the first day of class.
- Intro to HTML+CSS (up through and including the “Web development tools” section) on Khan Academy
9. Complete the textbook readings for Day 1 of class (2-3 hours)
We get started right away on Day 1, so be sure to read the following chapters from the textbooks AND complete the associated discussion assignments in our Learning Management System (which you will have access to once your enrollment process is complete):
- From the HTML & CSS textbook:
- Chapter 1: "Structure"
- Chapter 8: "Extra Markup"
- Chapter 17: "HTML5 Layout"
- Chapter 18: "Process & Design"
- Chapter 1: "The ABC of Programming"
Plan to spend about 20-30 minutes with each chapter. Do not strive to methodically read and retain every single word, because we cover hundreds of pages of text in the first two weeks of the course. Instead, aim for an understanding of the big topics and orientation to where the details are so that you can find them when you need them. And be sure to read closely enough to come up with questions and observations based on your reading!
It can be helpful to start each chapter by reading the single-page summary at the end of the chapter to get a feel for the most important topics.
10. Download and Install Slack (do this step after your enrollment is completed) (15-30 minutes)
We use Slack to distribute files and collaborate before, during, and after the workshop. Install the app on both your laptop and on your mobile device.
Look for an email from us prior to class, in order to join our Slack team.
Once you have joined, add a nice profile picture of your lovely face. Then say hello in your class channel, and introduce yourself.
11. Complete the assigned Career Coaching assignments (2-3 hours)
There are four assignments for you to complete in this category before the first class; details are in the linked documents: