Coder Social home page Coder Social logo

gdisf / teaching-materials Goto Github PK

View Code? Open in Web Editor NEW
381.0 40.0 327.0 179.01 MB

GDI SF - Web Development and Programming Curriculum

Home Page: http://www.teaching-materials.org

License: GNU General Public License v3.0

HTML 33.63% JavaScript 54.55% CSS 11.77% Python 0.03% GLSL 0.02%
html workshop javascript css curriculum-creation jquery curriculum-development education curriculum curriculum-design

teaching-materials's Introduction

GDISF Teaching Materials

Teaching materials for HTML, CSS, JS, and HTML5. We maintain our Open Source materials on this repo.

Contributing

Read our docs

Curriculum Creation

  • Read So You Want To Teach A Workshop
  • Read our Curriculum Creation Guide in the wiki
  • Make sure that all curricula are in line with the GDI mission and an appropriate topic/level for our members. This may include:
    • Topics that complement and expand our Front End Web Development curriculum
    • Industry-relevant topics for advanced students (these students already work in the industry and range from Associate/Junior to Senior and above)
    • Topics that students have requested to learn
  • Would you like to fork an existing workshop? Check out these resources: GDI Curriculum Review site girldevelopit.com
  • Make a Pull Request. You may want to use the example/ directory to get started with the required templates. Your PR must must include:
    • Description
    • Lecture slides
    • Hands-on exercises
    • Solutions to exercises
    • Follow Up Email
  • If you want your workshop to be included in our national website, check out this review rubric. Please note that this is not a requirement for inclusion in this repository.

teaching-materials's People

Contributors

alfasf avatar ameowlia avatar amygori avatar brendajin avatar cara-jo avatar cdersky avatar edudevcf avatar ejconlon avatar esthersweon avatar hyendler avatar izzyjohnston avatar jkarnowski avatar johnriv avatar kangbolu avatar karlalopez avatar kellybelly avatar komali2 avatar lillchan avatar lizthedeveloper avatar maxjchung avatar mjawili avatar pamelafox avatar pamelafox-coursera avatar sara-gudeman avatar scottcarol avatar selva-oscura avatar tgaff avatar trucnguyen avatar verythorough avatar yonet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

teaching-materials's Issues

[APIs] Improvements and notes

  • Add rating to JSON file
  • Make exercise time link more obvious in slides
  • Get Windows instructions for simple server
    -Add an easier exercise before IMG rating or make it more explicit
  • Inline the JSON so that we don't have to worry about AJAX permissions?
  • Add error callback to JSON code, maybe.

cc @icyfenix

Question about how these are taught.

I tried to do the HTML101 workshop at a school called Hyper Island. While working through the slides, I noticed that there are some parts that are really long (ex: Starting Here), where it's multiple slides in a row with tons of info.

I'm wondering if you've had issues with people losing focus. Do you actually go through the code for each html tag presented? During my workshop, I just showed a webpage with all sorts of tags on it (from buttons to forms to radioboxes), and said that there were more details in the slides. Then I gave the exercise. Seemed to work well, since going through the tags one by one was making some heads nod asleep.

[HTML/CSS] Various suggestions for HTML Basics

Porting over from the site.

  • On the text editors slide, make sure to actually demonstrate saving a file and opening it on the desktop vs. in Cloud9, as that's a source of confusion during the exercise.
  • Reiterate that the title element goes in the head and is not rendered on the page (this seems a matter of great confusion for newbies).
  • Consider talking about the HTML as a tree structure (DOM).
  • Consider downloading a screen reader and having them hear a page read aloud, so that they understand the need for accessible HTML.
  • Make the HTML history slide more concise (less text-y). Clarify what was wrong with IETF's standard (why W3C was needed).
  • Consider explaining meta charset and encoding.
  • Talk about project folder structure (index.html, css folder, images folder, etc)

[Backbone] Intro - review object literals

Review Object Literals and data types
Explain that Objects are common ways to interact with a library's APIs
Create a basic library with an API
Instantiate and pass in an object

[CSS Tools] Various suggestions

  • Add link to Chrome Canary and FF Alpha
  • Add link to https://developer.chrome.com/devtools/docs/device-mode on resolution testing slide
  • Show for normalize slide
  • Upgrade slides and exercise to Bootstrap 3.
  • Make in-class examples for things like Reset, Grids, Bootstrap, to make it easier to explain them.
  • Show BuiltWithBootstrap, explain Bootstrap-itis and the pros/cons of using a framework.
  • Audit all the links

[JSMVC] Improvements and notes

  • Slide on how to turn spaghetti code into MVC (like in Addy's digesting MVC slides)
  • Change MVC exercise to create VideoListView, with bonus of creating an ItemView nested inside. (Can't do this unless we change the HTML to not be a UL, List would need to create the ul)

[jQuery] Exercise improvements

  • The circle of life thumbnail now 404s.
  • Some of the exercises reference the youtube.js/bootstrap.css files locally instead of on teaching-materials.org server, so they can't be copied/pasted.
  • Exercise 1 and exercise 2 should provide a quick link back to the previous exercise's solution for those who didn't finish.

[CSS Layout] Various suggestions

Porting over from site.

  • The timing of when span is introduced is a bit awkward. Maybe change.
    • Consider adding a slide on CSS3 features (border-radius, etc).
  • Add position:fixed after position:absolute.
  • Add an exercise (or modify final exercise) where the student moves their CSS into an external file.
  • Consider adding slide about "getting help" when learning HTML: jsfiddle, IRC.
  • Consider adding slide about how to find designers (99designs, dribbble).
  • Consider adding slide on prototyping tools (like MyBalsamiq or code generators like jQuery Mobile).

Reverse order of events and animation

In the case of a time crunch, events is more important than animation, so we should reverse those.

That means the final events exercise needs to be made a final homework, since it involves both.

[CSS] Various suggestions

Porting over from site.

  • Explain the "cascading" of rules better/more.
  • Consider adding attribute selection, like input[type="text"].
  • Include a slide on debugging CSS - show example of when rules break (invalid property value), show changing properties, adding styles, viewing :hover properties.
  • Clarify font-size section better, it's confusing now. Maybe change order that the units are explained in. Possibly introduce rem sizing.
  • Consider adding a slide on selectors in CSS3 (nth child, odd, etc).
  • Add additional exercise or bonus in exercise on using web fonts (Google fonts).
    • Consider mentioning HSL and alpha in colors section (though it's IE8+).
  • Add additional exercise on colors - like implementing a color scheme from colourlovers or colorscheme site.
  • Make a version of in-class example that is the "before" (same with all in-class examples).
  • Students find inline styles confusing. Not sure how best to remedy.

[HTML/CSS] Various improvements to web and clients

Thanks to Brandon Frohs:

HTML/CSS Lesson 1 Slides

Next/previous slides are visible (unlike in Lesson 2).

The Web (#2)

The client/browser/server interaction image is a bit too simply. Maybe add URL under the arrow between client and browser (and add navigation field to browser image), and add an additional arrow going from browser to server requesting a specific page? I also like the additional step listed in this image (source) where the server has to find the "data".

Clients (#3)

Tablets may be worth adding to the list of devices.

Browsers (#4)

Perhaps change the first sentence to be more descriptive:

Browsers are programs that access and render content...

Browsers (#5)

"...each browser varies in how it displays webpages" seems drastic to me, as though each webpage will look completely different in each browser. Perhaps "...each browser can vary slightly in how it displays webspages." to show the end result can be pixel-perfect, but it's not always the case, especially with newly added elements/features.

Browser Parts (#6)

  • Chrome now uses Blink, a fork of Webkit
  • Perhaps list Opera to show sharing of Blink (and because it's listed on "Browsers" slide)

Browser Usage (#7)

The chart is about a year out of date. Link is helpful, but would be nice to see an updated chart. Would be awesome if this could be generated on the fly from data pulled from somewhere (perhaps gs.statcounter.com like caniuse.com?).

It may be useful to explain how developers [should] choose which browsers they want to focus on. Perhaps add a link to caniuse.com.

Step 1: The URL Breakdown (#9)

May want to add a port example (ports are used later, but not explained).

Step 2: Server Name -> IP (#10)

Bottom of image (including the source of the image) is cut off.

IP Addresses (#11)

IPv6 is mentioned, described as a number, but hexidecimal is show. May want to mention what hexidecimal is (base 16) and perhaps link to the Wikipedia article for IPv4/IPv6/Hexidecimal.

According to Wikipedia, 127.0.0.1 isn't necessarily always the "self" address, so I'd suggest rewording to say "usually". And, for IPv6, it is ::1.

ifconfig isn't available on Windows machines, and is being deprecated on Linux. ip address can be used on Linux, and I believe ipconfig is the command for Windows.

Servers (#15)

Maybe add node.js to list of server-side programming languages? It's JavaScript, so, theoretically, those who see these slides will soon know JavaScript too. Might be too much information for a beginner though.

[JS 200] Improvements

  • Rewrite functions using var onButtonClick = function() {} instead of function onButtonClick

  • Fix HTML editor slide column order

  • Remove default CSS from bianca's jsbin in-class

  • In DOM detective exercise, include images of what theyre selecting (or atleast be more specific about the green class names)

    cc @bgando

nano fix

The course JS302: Backbone has as requisite JS302. Maybe JS205 ?

[JS 101] Remove ages from exercises

From our feedback form:
"GDI is an organization whose reason for existence is to fight stereotype threat. I partnered with a woman who was older the first day, and I think the fact that the exercises asked for our ages activated stereotype threat. She didn't show up the next day."

I don't know if that's the case or not, but it woudn't hurt to change the exercises. The "age calculator" and "about me" exercises both end up asking for age.

cc @icyfenix

JS Animation/Events: Improvements

  • In this class or previous class, include a slide on debugging with the console - show how it displays errors at the bottom, clicking through to the line number. Maybe explain common errors? (Does a resource exist for that?)
  • Maybe show window.innerWidth on window slide, since we use that in the exercise later? (Students figured out how to hard code a number, though).
  • Give a refresher of CSS absolute positioning and where the grid starts (either as a slide or just remember to in the notes).

[jQuery] Misc slide improvements

  • Maybe the chaining slide should be moved back before exercise 1?
  • Maybe add a slide or 2 about anonymous functions and callbacks before we show .each(), since that is often the first time they see it.
  • Come up with a live coding animation example that always works and link to the site on the slide (jquery.com didnt work today for some reason).

[JS 101] Slow down the second day of lessons

We've had feedback from multiple students that the second day is too fast (even those already familiar with programming). We could slow it down and remove somethings (we could remove Animation and Events entirely, perhaps, and do more DOM exercises). We could break the DOM section up more.

cc @icyfenix

[Graphics] Add more links/resources/demos to graphics slides

[jQuery] Events improvements

  • On events first slide, add list of other event strings.
  • Show event shortcut functions before document.ready slide (button.click, button.hover, etc) because that will look more like document.ready
  • Maybe show example of preventDefault on a form submit as well.
  • On document.ready slide, add something that would prompt us to talk about the motivation for why we need it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.