1,885
edits
Changes
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.
== 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]].
==== 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]].
# 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
-->
<!--
###################################################################################