Difference between revisions of "DPS909 and OSD600 Fall 2010 Weekly Schedule"

From CDOT Wiki
Jump to: navigation, search
(Week 3 (Sept 20) – Bugs, Bugzilla, and Testing)
 
(7 intermediate revisions by the same user not shown)
Line 26: Line 26:
 
** '''Blog''' on your reactions to the readings for this week, and also introduce yourself.
 
** '''Blog''' on your reactions to the readings for this week, and also introduce yourself.
 
** Begin learning how to use [[Irc|IRC]] for communication.  We'll cover this in detail next week, but it's better to get started early.
 
** Begin learning how to use [[Irc|IRC]] for communication.  We'll cover this in detail next week, but it's better to get started early.
 +
  
 
== Week 2 (Sept 13) - Collaborative and Community Development Practices ==
 
== Week 2 (Sept 13) - Collaborative and Community Development Practices ==
Line 111: Line 112:
 
** Be working on your first project release.  Ask for help if you're stuck
 
** Be working on your first project release.  Ask for help if you're stuck
 
** Register for [http://fsoss.ca FSOSS] or join as a [[Volunteer|volunteer]].
 
** Register for [http://fsoss.ca FSOSS] or join as a [[Volunteer|volunteer]].
 +
** Look at [[Fall 2010 Mozilla Open Source Project List|project list]] and get your [[Fall 2010 DPS909 and OSD600 Initial Project Plan 0.0|initial project]] plan done.
 +
 +
 +
== Weeks 4, 5 (Sept 27) - Building Mozilla ==
 +
 +
* Introduction to RCS
 +
** SVN, Mercurial, Git (more on git later)
 +
* Build Environments
 +
** Finding and Installing build dependencies
 +
*** Example: [https://wiki.mozilla.org/MozillaBuild Mozilla Build] for Windows
 +
*** Using yum, MacPorts, etc.
 +
** Operating systems, cross-platform builds
 +
** Machine requirements
 +
*** Fast I/O, lots of RAM (for linking)
 +
** Tools
 +
** Libraries
 +
** Settings
 +
*** Environment variables, PATHs
 +
 +
* Build Tools
 +
** [http://www.gnu.org/software/autoconf/ autoconf]
 +
** [http://www.gnu.org/software/make/ make]
 +
** Common open source approaches to automation (Python, Bash)
 +
 +
* '''Readings/Resources'''
 +
** [[How the Build Works|How the Mozilla Build Works]] (on-line lecture) by Mozilla's J. Paul Reed
 +
** [http://sparc.senecacollege.ca/pub/mozilla.lecture/mozilla-20073/1-Mozilla-build-system.avi Mozilla's Build System] (on-line lecture) by the owner of the Mozilla Build System, Ted Mielczarek
 +
** [http://hgbook.red-bean.com/read/a-tour-of-mercurial-the-basics.html Introduction to Mercurial].  The [http://hgbook.red-bean.com/ full book] is excellent to read or use as a reference, but this section is a must.
 +
** [http://vocamus.net/dave/?p=607 Great Introduction to GCC/G++] (Brian Gough's [http://www.network-theory.co.uk/docs/gccintro/ An Introduction to GCC for the GNU Compilers gcc and g++])
 +
** [http://www.eng.hawaii.edu/Tutor/Make/ Introduction to Make and Makefiles]
 +
 +
* '''TODO'''
 +
** '''Watch''' online lectures about the Mozilla build system.
 +
** [http://developer.mozilla.org/en/docs/Build_Documentation Build Firefox] (or [https://developer.mozilla.org/En/Developer_Guide/Source_Code/Getting_comm-central Thunderbird]) on at least one of Windows/Linux/OSX, and preferrabely two platforms.  Blog about the experience:
 +
*** What problems did you have?
 +
*** What did you learn in the process?
 +
*** What surprised you?
 +
*** '''Note:''' Do not put build output in your blog.  You can use your wiki pages for that.  The blog should be commentary on the experience of building a large piece of open source software.
 +
 +
 +
== Weeks 6, 7 (Oct 11) - Distributed Revision Control ==
 +
 +
* Introducing Git
 +
** Client Server (SVN) and Distributed (Git)
 +
** Snapshots vs. versioned files.
 +
** Checksums, SHA-1
 +
** File States:
 +
*** Untracked (not known to git)
 +
*** Tracked: modified, staged, committed
 +
** The staging area
 +
* Basic Git Commands and Concepts
 +
** git help ''<command>''
 +
** git init
 +
** git clone
 +
** git add
 +
** git commit, git commit -m, git commit -a
 +
** git rm
 +
** git mv
 +
** git status
 +
** git log
 +
** git diff, git diff --staged
 +
** .gitignore
 +
** Branches
 +
*** HEAD, master
 +
*** git checkout, git checkout -b
 +
*** git branch, git branch -a, git branch -d, git branch --merged
 +
*** git merge
 +
** Remotes
 +
*** origin, origin/''branch''
 +
*** git remote
 +
*** git remote add
 +
*** git fetch
 +
*** git pull
 +
*** git push
 +
** gitk
 +
 +
* '''Readings/Resources'''
 +
** [http://git-scm.com/ Download and Install git]
 +
** Videos
 +
*** [http://excess.org/article/2008/07/ogre-git-tutorial/ Git Basic Tutorial]
 +
*** [http://www.youtube.com/watch?v=OFkgSjRnay4&feature=related Scott Chacon's more advanced tutorial of git]
 +
*** [http://www.youtube.com/watch?v=4XpnKHJAok8 Linus Torvalds at Google discussing git's distributed nature]
 +
** [http://progit.org/book/ Pro Git, online book]
 +
ction to Make and Makefiles]
 +
** [https://github.com/ github server]
 +
*** [http://help.github.com/ github documentation]
 +
 +
* '''TODO'''
 +
** '''Watch''' video tutorials.
 +
** '''Read''' relevant sections in [http://progit.org/book/ Pro Git]
 +
** '''Install'' and '''Setup''' git locally
 +
** '''Create''' a github account
 +
** '''Create''' a git/github repo for your project(s)
 +
** '''Blog''' about your experiences getting to know git:
 +
*** What problems did you have?
 +
*** What did you learn in the process?
 +
*** What surprised you?
 +
** '''Complete''' and '''Submit''' your [[DPS909 and OSD600 Fall 2010 0.1 Release|0.1 release]].
 +
** '''Join''' [irc://irc.mozilla.org/webmademovies #webmademovies] irc channel.
 +
 +
== Week 8 (Nov 1) - JavaScript ==
 +
 +
* This week's work is an independent study of JavaScript, aimed at getting you quickly acquainted with what JavaScript is and is not.  By watching lectures and building a cool JavaScript web demo, you will get a chance to take your knowledge of JS to a new level.
 +
* JavaScript has become the most used programming language in the world.  Currently, Mozilla, Apple, Google, and Microsoft all have implementations, and actively compete with each other.
 +
* Should you learn JavaScript too? http://shouldilearnjavascript.com/
 +
 +
===Online Video Lectures by Yahoo!'s Douglas Crockford===
 +
 +
* The JavaScript Programming Language:
 +
** [http://video.yahoo.com/video/play?vid=111593 part 1]
 +
** [http://video.yahoo.com/video/play?vid=111594 part 2]
 +
** [http://video.yahoo.com/video/play?vid=111595 part 3]
 +
** [http://video.yahoo.com/video/play?vid=111596 part 4]
 +
 +
* Advanced JavaScript:
 +
** [http://video.yahoo.com/video/play?vid=111585 part 1]
 +
** [http://video.yahoo.com/video/play?vid=111586 part 2]
 +
** [http://video.yahoo.com/video/play?vid=111587 part 3]
 +
 +
* '''TODO'''
 +
** Watch online videos
 +
** Blog your notes and reactions.  What did you learn that you didn't know?  What surprised you most about JavaScript?  What are three tricks and/or tips you learned watching these?
 +
** Create an interesting open video mashup.  Use HTML5 video and online services/libraries, tied together with JavaScript, to build a cool demo.  Make a web demo that uses at least two of the following with HTML5 video:
 +
*** jQuery, YUI, or Dojo
 +
*** Google Maps API
 +
*** Twitter API
 +
*** Flickr API
 +
** You may work alone or in a group of 2, and may collaborate with anyone, even other groups.  You will be asked to present your demo live in class on Tuesday November 9th.

Latest revision as of 09:53, 1 November 2010

Week 1 (Sept 7) Course introduction

  • TODO
    • Complete readings and watching/listening to this weeks resources.
    • Create an account on this wiki for yourself
    • Create a personal wiki page on this wiki, and add a link for yourself to the People page as well as the Winter 2010 students page
    • Create a blog (wordpress or blogspot or whatever) and create a feed category or tag called "open source"
    • Read the Blog Guidelines for instructions on how to use your blog in the course
    • Add your blog feed and info to the Open Source@Seneca Planet List so that it appears in the OpenSource@Seneca Planet
    • Blog on your reactions to the readings for this week, and also introduce yourself.
    • Begin learning how to use IRC for communication. We'll cover this in detail next week, but it's better to get started early.


Week 2 (Sept 13) - Collaborative and Community Development Practices

  • TODO
    • Ensure all TODO items from week 1 are completed
    • Complete Lab as a group by end of week
    • Begin (or continue) reading the CDOT Blog Planet, as this is where we will share class announcements and discussions.
    • Consider creating an account on Twitter to use in conjunction with your blog
    • Dial-in to one of the Mozilla Status calls happening this week, and blog about the experience. I'd recommend the Firefox call.
    • Join at least one Mozilla Mailing list
    • Comment in at least one other student's blog with your feedback to what they wrote. Reminder: Comments have to be approved for them to be be shown on your blog. Check your blog settings.
    • Watch online lectures for this week about open source community, blog your reactions.


Week 3 (Sept 20) – Bugs, Bugzilla, and Testing

  • TODO
    • Create a bugzilla account
    • CC yourself on some of the Chrome Experiments bugs in Mozilla's bugzilla
    • Blog about your work learning and using bugzilla, about the things you learned about using it, what was good, what was bad, and any new tools/techniques you learned this week.
    • Work with #seneca on irc to figure out which bugs you need to file on your Chrome tests
    • Be working on your first project release. Ask for help if you're stuck
    • Register for FSOSS or join as a volunteer.
    • Look at project list and get your initial project plan done.


Weeks 4, 5 (Sept 27) - Building Mozilla

  • Introduction to RCS
    • SVN, Mercurial, Git (more on git later)
  • Build Environments
    • Finding and Installing build dependencies
    • Operating systems, cross-platform builds
    • Machine requirements
      • Fast I/O, lots of RAM (for linking)
    • Tools
    • Libraries
    • Settings
      • Environment variables, PATHs
  • Build Tools
    • autoconf
    • make
    • Common open source approaches to automation (Python, Bash)
  • TODO
    • Watch online lectures about the Mozilla build system.
    • Build Firefox (or Thunderbird) on at least one of Windows/Linux/OSX, and preferrabely two platforms. Blog about the experience:
      • What problems did you have?
      • What did you learn in the process?
      • What surprised you?
      • Note: Do not put build output in your blog. You can use your wiki pages for that. The blog should be commentary on the experience of building a large piece of open source software.


Weeks 6, 7 (Oct 11) - Distributed Revision Control

  • Introducing Git
    • Client Server (SVN) and Distributed (Git)
    • Snapshots vs. versioned files.
    • Checksums, SHA-1
    • File States:
      • Untracked (not known to git)
      • Tracked: modified, staged, committed
    • The staging area
  • Basic Git Commands and Concepts
    • git help <command>
    • git init
    • git clone
    • git add
    • git commit, git commit -m, git commit -a
    • git rm
    • git mv
    • git status
    • git log
    • git diff, git diff --staged
    • .gitignore
    • Branches
      • HEAD, master
      • git checkout, git checkout -b
      • git branch, git branch -a, git branch -d, git branch --merged
      • git merge
    • Remotes
      • origin, origin/branch
      • git remote
      • git remote add
      • git fetch
      • git pull
      • git push
    • gitk

ction to Make and Makefiles]

  • TODO
    • Watch video tutorials.
    • Read relevant sections in Pro Git
    • Install and Setup' git locally
    • Create a github account
    • Create a git/github repo for your project(s)
    • Blog about your experiences getting to know git:
      • What problems did you have?
      • What did you learn in the process?
      • What surprised you?
    • Complete and Submit your 0.1 release.
    • Join #webmademovies irc channel.

Week 8 (Nov 1) - JavaScript

  • This week's work is an independent study of JavaScript, aimed at getting you quickly acquainted with what JavaScript is and is not. By watching lectures and building a cool JavaScript web demo, you will get a chance to take your knowledge of JS to a new level.
  • JavaScript has become the most used programming language in the world. Currently, Mozilla, Apple, Google, and Microsoft all have implementations, and actively compete with each other.
  • Should you learn JavaScript too? http://shouldilearnjavascript.com/

Online Video Lectures by Yahoo!'s Douglas Crockford

  • TODO
    • Watch online videos
    • Blog your notes and reactions. What did you learn that you didn't know? What surprised you most about JavaScript? What are three tricks and/or tips you learned watching these?
    • Create an interesting open video mashup. Use HTML5 video and online services/libraries, tied together with JavaScript, to build a cool demo. Make a web demo that uses at least two of the following with HTML5 video:
      • jQuery, YUI, or Dojo
      • Google Maps API
      • Twitter API
      • Flickr API
    • You may work alone or in a group of 2, and may collaborate with anyone, even other groups. You will be asked to present your demo live in class on Tuesday November 9th.