Open main menu

CDOT Wiki β

Changes

Winter 2015 SPO600 Weekly Schedule

819 bytes added, 23:21, 15 December 2014
no edit summary
!Week!!Week of...!!Tuesday!!Thursday!!Deliverables<br/>(Summary - click for details)
|-
|1||Jan 12||[[#Tuesday (Jan 13)|Introduction to Software Porting, Portability, Benchmarking, and Optimization / How is code accepted into an open source project? (Lab 1)]]||[[#Thursday (Jan 15)|Computer Architecture OverviewBenchmarking and Profiling]]||[[#Week 1 Deliverables|Set up accounts, and blog a comparision of code reviews in two communities (Lab 1).]]
|-
|2||Jan 19||[[#Tuesday (Jan 20)|Compiled C Lab (Lab 2)Working with the code / Building]]||[[#Thursday (Jan 22)|Prepare Build and benchmark a presentation on a selected aspect portion of assembly languagethe LAMP stack (Lab 2)]]||[[#Week 2 Deliverables|Blog a commentary on the Compiled C Lab about your baseline data (Lab 2), and be prepared to give your presentation.]]
|-
|3||Jan 26||[[#Tuesday (Jan 27|Assembly language presentationsProfiling: Finding the pain points (Lab 3)]]||[[#Thursday (Jan 29)|Assembly language presentationsComputer architecture overview]]||[[#Week 3 Deliverables|Blog about your assembly language presentation.the profiling results and pain points discovered (Lab 3)]]
|-
|4||Feb 2||[[#Tuesday (Feb 3)|Assembly lab Compiled C Lab (Lab 34)]]||[[#Thursday (Feb 5)|Inline assembler / Potential project triage - Scan the potential project list to find out about the packagesCompiler optimizations]]||[[#Week 4 Deliverables|Blog post about a commentary on the assembly lab Compiled C Lab (Lab 3) and what you found in the potential projects.]]
|-
|-
|7||Feb 23 ||[[#Tuesday (Feb 24)|Working with the code / Find the platformProject presentations -specific code in 3 packages (Lab 4)Stage 1.]]||[[#Thursday (Feb 26)|Group hack session - Picking your packagesPrepare a presentation on a selected aspect of assembly language.]]||[[#Week 6 Deliverables|Blog about the platformyour project plans -specific code in 3 packages (Lab 4) and the packages you selectedthis will be used to assign your 1st Project Marks. Be prepared to give your presentation.]]
|-style="background: #f0f0ff"
|-
|8||Mar 9||[[#Tuesday (Mar 10)|Project Presentations - Stage 1Assembly language presentations]]||[[#Thursday (Mar 12)|Benchmarking and profilingAssembly language presentations]]||[[#Week 7 Deliverables|Blog about your project plans - this will be used to assign your 1st Project Marksassembly language presentation.]]
|-
|9||Mar 16||[[#Tuesday (Mar 17)|Group hack - Baseline builds and benchmarkingAssembly lab (Lab 5)]]||[[#Thursday (Mar 19)|Compiler OptimizationsReading reference documentation (and Lab 5 Continued)]]||[[#Week 9 Deliverables|Blog about your baseline datathe assembly lab (Lab 5).]]
|-
|10||Mar 23||[[#Tuesday (Mar 24)|Optimization LabProject Presentations - Stage 2]]||[[#Thursday (Mar 26)|Group Hack - Profiling: Finding the Pain PointsUptreaming]]||[[#Week 8 Deliverables|Blog about the pain points in your softwareproject progress - this will be used to assign your 2nd Project Marks.]]
|-
|11||Mar 30||[[#Tuesday (Mar 31)|Project Presentations - Stage 2Inline Assembler]]||[[#Thursday (Apr 2)|Group Hack - OptimizationFind inline assembler in 3 packages (Lab 6)]]||[[#Week 9 Deliverables|Blog about your project progress - this will be used to assign your 2nd Project Marksthe assembler you found (Lab 6).]]
|-
|12||Apr 6||[[#Tuesday (Apr 7)|UpstreamingDiscussion & Hack Session]]||[[#Thursday (Apr 9)|Discussion & Hack Session]]||[[#Week 10 Deliverables|Blog about your progress.]]
|-
|13||Apr 13||[[#Tuesday (Apr 14)|Discussion and hack sessionProject Presentations - Stage 3]]||[[#Thursday (Apr 16)|Wrap-up Session]]||[[#Week 11 Deliverables|Upstream Blog about your work and blog about itproject progress - this will be used to assign your 3rd project marks.]]
|-
==== Discussion of how open source communities work ====
* Background for the [[SPO600 Code Review Lab|Code Review Lab (Lab 1)]].
=== Thursday (Jan 15) ===
* [[Computer Architecture]] overview Benchmarking and Profiling * Profiling with <code>gprof</code>** Build with profiling enabled (see also use the option <code>-pg</code> with both gcc and ld)** Run the profile-enabled executable** Analyze the data in the <code>gmon.out</code> file*** <code>gprof ''nameOfBinary''</code> # Displays text profile including call graph*** <code>gprof ''nameOfBinary'' | gprof2dot | dot | display -</code> # Displays visualization of call graph Resources* [https://sourceware.org/binutils/docs-2.16/gprof/ GProf Manual]* [http:Category:Computer Architecture|Computer Architecture Category]//www.thegeekstuff.com/2012/08/gprof-tutorial/ Profiling with GProf])
=== Week 1 Deliverables ===
# Generate a [[SSH#Using_Public_Keys_with_SSH|pair of keys]] for [[SSH]] and email the public key to your professor.
# Sign and return the [[Open Source Professional Option Student Agreement]].
# Optional but recommended: [[SPO600 Host Setup|Set up a Fedora 20 system]].
== Week 2 ==
=== Tuesday (Jan 20) ===
{{Admon/tip|Bring Your Laptop|Classes are held in a [[Active Learning Classroom]]. If you have a laptop or other device with a VGA or HDMI output (such as a smartphone!) please bring it. You'll need either a local linux environment or an SSH client -- which is built-in to Linux, Mac, and Chromebook systems, and readily available for Windows, Android, and iOS devices.}}
 Working with the Code* Working with GIT* Perform Working with other version control systems Building the [[SPO600 Compiled C Lab|Compiled C Lab Code* Make* Configuration tools (Lab 2autotools, cmake)]] in groups* The compiler toolchain** Preprocessor** Compiler** Assembler** Linker* Debug vs.Non-debug/Stripped binaries Looking at How Distributions Package the Code* Using fedpkg
=== Thursday (Jan 22) ===
 * [[Winter 2015 SPO600 Assembly Language PresentationBaseline Builds and Benchmarking Lab|Select Baseline Builds and prepare to teach the class about a specific small topic related to assembly language / machine language programmingBenchmarking Lab (Lab 2)]].
=== Week 2 Deliverables ===
* Complete and blog your conclusion to the [[SPO600 Code Review Lab|Code Review Lab (Lab 1)]].
* Blog your conclusion to baseline data from the [[SPO600_Compiled_C_LabSPO600 Baseline Builds and Benchmarking Lab|Compiled C Lab Baseline Builds and Benchmarking lab (Lab 2)]].* Be prepared to give your [[Winter 2015 SPO600 Assembly Language Presentation|presentation]] on Tuesday of next week.
<!--
 
== Misc / Relocated ==
 
* [[Computer Architecture]] overview (see also the [[:Category:Computer Architecture|Computer Architecture Category]])
* [[Winter 2015 SPO600 Assembly Language Presentation|Select and prepare to teach the class about a specific small topic related to assembly language / machine language programming]].
 
== Week 3 ==