Class meets Thursdays 12-1 in the CastleBranch Brewery and Sundays 1-4 at New Hanover Northeast Library in Watkins Room
Welcome to the our Git repository. A repository is a place where project files and data about those files are stored.
This repository - or repo - is the home of our curriculum. By the time you've worked through it all you will...
-
be familiar with the Linux bash command line
-
have experience writing collaborative code projects with Git
-
be comfortable reading and writing C, PHP, HTML, CSS, Javascript and SQL
-
have coded your own command line and full stack web applications
-
understand common architectures and programming design patterns
-
be ready to design and create your own new applications from scratch
No prior experience is necessary, just sticktoitiveness.
This course is built around and on Harvard's CS50. By the end of this class you will have completed that entire course, and much more. If you want, you can register for it on EdX (either for credit or not) to access their extra video content and forums. I'll make sure you have all the materials you need right here though, that's strictly optional.
We'll have a lot of important class discussion and notices in our Slack channel. Please do sign up there ASAP and be sure you're getting notifications when needed. They have a nice app, which is also optional, but nice.
If you meet the below expectations, in this course you will go from zero programming experience to designing and coding your own desktop and web applications from the ground up. It is easy to defeat yourself by getting behind or working infrequently. Learning to program is learning a new language. Like any other language, frequent practice is the key to success. You can keep on top of it and you can succeed! You will need to set aside time at least twice a week to keep your knowledge fresh though. Coming to class regularly will help you keep on top of this a great deal - if you want to succeed you should come to as many classes as you can - at least once a week. Talk to Tristan if you have a scheduling conflict or any other questions. I'm doing this for the fun of seeing you succeed, and am always happy to help.
-
Work through the list of assignment below, in order.
-
Where a video lecture is listed, watch it outside of class.
-
Set aside 5 out of class hours per week for completing problem sets and lectures.
-
Come to class with a laptop and headphones.
-
Learning to program is hard! You will feel dumb. You will struggle. The single key to success is leaving your ego at the door. Be patient. Take a step back or ask for help when you need it. Don't beat yourself up when you struggle. Be nice to you and you will succeed.
Thursday 12-1
-
25m : Concept review and discussion, quizzes
-
15m : Setup for current week problem set if needed
-
20m : Homework review, play with each other’s projects, q & a
Sunday 3:30-5
- Lab : work through problem set, watch lecture shorts and get help - may go later as needed
R 5/24 - Introduction, course registration, expectations
S 5/28 – NO CLASS- Memorial Day Weekend
HW - CS50 Lecture 0
R 6/1 - Scratch setup, GitHub setup, the command line
HW - Puzzle Pieces, Cowsay
S 6/4 - Scratch
HW - CS50 Lecture 1
R 6/8 - functions & syntax: main, printf, get_int
HW - Git Motivated
S 6/11 - Hello.c
R 6/15 - variables, data types, assignments and evaluation
HW - Git Stylish
S 6/18 - Water.c
R 6/22 - loops and conditions, breaking problems into little parts: change/compile/run
R 6/29 - visualizing and formatting loop output
S 7/2 - Choose either Mario.c easier, or harder
R - loop anatomy review, interpreting error messages, arrays, iteration and indices
S - S_p_l_i_t.c, esreveR.c
R -
S - Pin tests
HW - Git Artistic
R - data types review, return types
R - mod math, chaining boolean expressions, functions: round, floor
HW - CS50 Lecture 2
R - writing your own functions (implement strlen)
S - Initials.c, easier or harder
R - command line arguments, debugging
S - Caesar.c
R - solving tiny problems - vigenere set up
S - Vigenere.c
HW - CS50 Lecture 3
R - GUI persistence in console - make a dungeon-less crawler
HW - finish init & draw
R -
HW - finish won & move
R - fifteen discussion, bug hunt and victory lap
S - no class
R - Complexity and sorting algorithms
Set 4, part 1, Whodunit
Set 4, part 2, Resize: less comfy, more comfy
R 7/15 - P Set 3 Game of 15 Demo, P Set 4 File i/o, Image manipulation and Stegonography discussion
S 7/18 - P Set 4 Whodunit & Resize Lab
No Tristan this week - will arrange sub
No Lecture
Set 4, part 3, Recover
R 7/20 - P Set 4 Whodunit & Resize demo, P set 4 Recover discussion
S 7/23 - P Set 4 Recover Lab
R 7/27 - P Set 4 Recover Demo, Data Structures and Complexity discussion
S 7/30 - P Set 5 Speller Lab
R 8/3 - P Set 5 Speller Demo, P Set 6 Web Server discussion
HW - find and present on an RFC or a layer of the OSI Model
S 8/6 - P Set 6 Web Server Lab
R 8/10 - Present HW research
S 8/13 - Stock Trading Web App, Databases & SQL Lab
No Lecture
R 8/17 - PHP-FIG & PSR standards
HW - read up on assigned PSR topic
S 8/20 - Discuss PSR, wrap up Stock Trading Apps - Tristan out, will try to find sub
R 8/24 - Demo Stock Trading Apps, Intro Mashup Google Maps Integration
S 8/27 -
R 8/31 - JavaScript, DOM & AJAX
S 9/3
Problem Set 9 - public data project
R 9/7 - Machine Learning, Neural Nets, p/np, Data Visualization, Kaggle
S 9/10
R 9/14
S 9/17
Final Project
R 9/21 - Diagramming in BPMN, Use Cases, Acceptance Criteria, brainstorm, form teams
S 9/24
R 9/21 - Laravel Framework, Composer & dependencies, Local environments, Artisan
S 9/24
R 9/28
S 9/31
Demo final project models & work complete