Changes

Jump to: navigation, search

Fall 2018 SPO600 Weekly Schedule

717 bytes added, 11:07, 5 September 2018
no edit summary
[[Category:Fall 2018 SPO600]]
This is the schedule and main index page for the [[SPO600]] ''Software Portability and Optimization'' course for Fall 2018.
<!-- {{Admon/important|It's Alive!|This [[SPO600]] weekly schedule will be updated as the course proceeds - dates and content are subject to change. The cells in the summary table will be linked to relevant resources and labs as the course progresses.}} <!-->{{Admon/important|Content being Updated|This page is in the process of being updated from a previous semester's content. It is not yet updated for Fall 2018. Do not rely on the accuracy of this information until this warning is removed.}}-->
== Schedule Summary Table ==
|Exam||Dec 10||colspan="23"|Exam Week - No exam in this course!
|}
== Week 1 ==
* Labour day - no Class I this week === Week 1 - Class I II ===
==== Introduction to the Problems ====
===== Porting and Portability =====
* Most software is written in a '''high-level language''' which can be compiled into [[Machine Language|machine code]] for a specific computer architecture. In many cases, this code can be compiled for multiple architectures. However, there is a lot of existing code that contains some architecture-specific code fragments written in architecture-specific high-level code or in [[Assembly Language]] (.* Reasons that code is architecture-specific:** System assumptions that don't hold true on other platforms*** Variable or, in some cases, machine[[Word|word]] size*** [[Endian|Endianness]]** Code that takes advantage of platform-specific high-level code).features
* Reasons for writing code in Assembly Langauge include:
** Performance
* Course resources are linked from the CDOT wiki, starting at http://wiki.cdot.senecacollege.ca/wiki/index.php/SPO600 (Quick find: This page will usually be Google's top result for a search on "SPO600").
* Coursework is submitted by blogging.
* Quizzes will be short (1 page) and will be held without announcement at any time, generally at the start of class. Your There is no opportunity to re-take a missed quiz, but your lowest three quiz scores will not be counted, so do not worry if you miss one or two.** Students with test accommodations: an alternate monthly quiz is available in the Test Centre. See the professor for details.
* Course marks (see Weekly Schedule for dates):
** 60% - Project Deliverables
* All classes will be held in an [[Active Learning Classroom]] -- you are encouraged to bring your own laptop to class. If you do not have a laptop, consider signing one out of the Learning Commons for class, or using a smartphone with an HDMI adapter.
* For more course information, refer to the SPO600 Weekly Schedule (this page), the [http://www.senecacollege.ca/ssos/findWithoutSemester/spo600/sict Course Outline], and [[SPO600 Course Policies]].
 
=== Week 1 - Class II ===
==== Course and Setup: Accounts, agreements, servers, and more ====
* Student Agreement
==== Discussion of how How open source communities work ====
* Background for the [[SPO600 Code Review Lab|Code Review Lab (Lab 1)]]as homework.
==== Computer Architecture ====
 
* [[Computer Architecture]] overview (see also the [[:Category:Computer Architecture|Computer Architecture Category]])
* A first look at the x86_64 and AArch64 Architectures and ISA
** Register file comparison
** Instruction encoding
** ELF
** Procedure calling conventions
==== Reference ====
* [[Computer Architecture]] and [[:Category:Computer Architecture|Computer Architecture Category]]
=== Week 1 Deliverables ===
## Add yourself to the [[Winter 2018 SPO600 Participants]] page (leave the projects columns blank).
## Generate a [[SPO600_Servers#Preparatory_Steps|pair of keys]] for [[SSH]] and email the public key to your professor, so that he can set up your access to the [[SPO600 Servers|class servers]].
## Sign and return the [[Open Source Professional Option Student Agreement]] (this will be done on paper in class).# Optional (strongly recommended): [[SPO600 Host Setup|Set up a personal Fedora system]].
# Optional: Purchase an AArch64 development board (such as a [http://96boards.org 96Boards] HiKey or Raspberry Pi 3. If you use a Pi, install a 64-bit Linux operating system on it, not a 32-bit version).
<!--
== Week 2 ==
* Project hacking and discussion
-->
<!--
###################################################################################

Navigation menu