Difference between revisions of "Winter 2014 SPO600 Weekly Schedule"

From CDOT Wiki
Jump to: navigation, search
Line 1: Line 1:
 
{{Chris Tyler Draft}} [[Category:Winter 2014 SPO600]]
 
{{Chris Tyler Draft}} [[Category:Winter 2014 SPO600]]
== Week 1 ==
+
{{Admon/important|Subject to Change|This weekly schedule will be updated as the course proceeds - dates and content are subject to change.}}
* Introduction to Computer Architecture
+
{|cellspacing="0" width="100%" cellpadding="5" border="1"
* Machine language and Instruction Set Architecture
+
|-
* Assembly Language
+
!Week!!Week of...!!Tuesday - Class!!Thursday - ALC/Lab!!Deliverables
* Porting vs Portable
+
|-
* Open Source
+
|1||Jan 6||Introduction to Software Porting, Portability, Benchmarking, and Optimization||How is Code Accepted? - Analyze code submissions in two separate open source projects||Blog a commentary on code reviews in two communities
 
+
|-
=== ToDo ===
+
|2||Jan 13||Assembly language, Machine code, and Architecture Distinctions||Hello World - Compile a basic C program and analyze the resultant binary||Set up a Fedora system and the ARMv8 Foundation Model
* Select two open source communities. Identify how they operate, specifically:
+
|-
** Where the code is kept
+
|3||Jan 20||Writing in Assembler & Intro to Aarch64||Write Hello World in assembler - x86_64 and Aarch64||Given an x86_64 assembler program with a loop, write an Aarch64 version
** How the community communicates
+
|-
** How people join the community
+
|4||Jan 27||Non-portable code & Git and other SCMS||Software Selection - Introduce the Class to your selected Software Projects||Blog about your selected software projects
** Who the gatekeepers are (e.g. module maintainers)
+
|-
** The code review process
+
|5||Feb 3||Compiler Optimizations and Intrinsics||Compiler Optimization Lab - Observe GCC optimizations||Identify the machine-specific code in your selected projects
** The size, age, and maturity of the community
+
|-
** The health of the community (from Vibrant to Moribund)
+
|6||Feb 10||Porting - Adding platform-specific code for Aarch64||Group hack session - Porting||Port your projects
* Read through the entirety of two code reviews, one in each community.
+
|-
* Write a blog post comparing the two communities.
+
|7||Feb 17||Portability - Removing platform-specific code||Group hack session - Portability||Remove platform-specific code from your projects
 +
|-
 +
|Study Week||Feb 24||Colspan="3"|Study Week
 +
|-
 +
|8||Mar 3||Project Work||Project Work||Get code into review
 +
|-
 +
|9||Mar 10||Benchmarking (I) - Baseline, Control, and Repeatability||Group hack session - Baseline benchmarks||Produce baseline benchmarks for your software
 +
|-
 +
|10||Mar 17||Benchmarking (II) - Change Impact||Group hack session - Impact of your Changes||Publish change impact stats for your software
 +
|-
 +
|11||Mar 24||Optimizing Code||Group hack - Profiling and optimizing||Code review update
 +
|-
 +
|12||Mar 31||Project Work||Project Work||Code review update
 +
|-
 +
|13||Apr 7||Conclusion||Final Presentations||Code accepted upstream
 +
|-
 +
|Exam Week||April 14||colspan="3"|Exam Week - No exam in this course!
 +
|}

Revision as of 01:03, 6 January 2014

Important.png
This is a draft only!
It is still under construction and content may change. Do not rely on this information.
Important.png
Subject to Change
This weekly schedule will be updated as the course proceeds - dates and content are subject to change.
Week Week of... Tuesday - Class Thursday - ALC/Lab Deliverables
1 Jan 6 Introduction to Software Porting, Portability, Benchmarking, and Optimization How is Code Accepted? - Analyze code submissions in two separate open source projects Blog a commentary on code reviews in two communities
2 Jan 13 Assembly language, Machine code, and Architecture Distinctions Hello World - Compile a basic C program and analyze the resultant binary Set up a Fedora system and the ARMv8 Foundation Model
3 Jan 20 Writing in Assembler & Intro to Aarch64 Write Hello World in assembler - x86_64 and Aarch64 Given an x86_64 assembler program with a loop, write an Aarch64 version
4 Jan 27 Non-portable code & Git and other SCMS Software Selection - Introduce the Class to your selected Software Projects Blog about your selected software projects
5 Feb 3 Compiler Optimizations and Intrinsics Compiler Optimization Lab - Observe GCC optimizations Identify the machine-specific code in your selected projects
6 Feb 10 Porting - Adding platform-specific code for Aarch64 Group hack session - Porting Port your projects
7 Feb 17 Portability - Removing platform-specific code Group hack session - Portability Remove platform-specific code from your projects
Study Week Feb 24 Study Week
8 Mar 3 Project Work Project Work Get code into review
9 Mar 10 Benchmarking (I) - Baseline, Control, and Repeatability Group hack session - Baseline benchmarks Produce baseline benchmarks for your software
10 Mar 17 Benchmarking (II) - Change Impact Group hack session - Impact of your Changes Publish change impact stats for your software
11 Mar 24 Optimizing Code Group hack - Profiling and optimizing Code review update
12 Mar 31 Project Work Project Work Code review update
13 Apr 7 Conclusion Final Presentations Code accepted upstream
Exam Week April 14 Exam Week - No exam in this course!