Difference between revisions of "SPO600 - Information for Prospective Students"

From CDOT Wiki
Jump to: navigation, search
(Who teaches this course?)
(Is this an easy course?)
Line 23: Line 23:
 
== Is this an easy course? ==
 
== Is this an easy course? ==
  
No! - It's a challenging course. However, it covers material which is not covered elsewhere in the program, and if you like to understand technology in detail, you may really enjoy this course. The knowledge and skills covered in this course are of practical value to programmers and system administrators.
+
No! - It's a challenging course. However, it covers material which is not covered elsewhere in the program, and if you like to understand computer technology in detail and how hardware and software interact, you may really enjoy this course. The knowledge and skills covered in this course are of practical value to programmers and system administrators.
  
 
== Who teaches this course? ==
 
== Who teaches this course? ==

Revision as of 14:19, 20 May 2015

Interested in taking SPO600 -- Software Portability and Optimization?

Here is some background information you may find useful:

What is this course about?

This course is about making existing software work on a new type of computer (porting) and making software work as efficiently as possible (optimization). These topics lead into an investigation of how computer programs work at their lowest levels (assembly language / machine language) and how compilers convert high-level code into machine code, including optimizations that they perform.

In this course, you'll be working with open source software, since the source code for that software is readily available for you to examine, modify, and use. We'll specifically be working with software that runs on Linux on 64-bit ARM computers.

This is a project-oriented course. Previous offerings of this course focused on porting code; in Winter 2015 there will be an increased focus on optimization.

Who can take this course?

This course is open to both CTY (system and network administration) and CPA (software development) students. Each group brings unique but overlapping skills: CTY students have a strong understanding of operating systems and administrative procedures, and CPA students have a strong understanding of programming. This course provides a range of project opportunities requiring different combinations of skills from each program of study.

Why take this course?

In this course, you'll learn about the internal details of computer architecture and the lowest levels of programming - the instructions that a compiler produces from your code. You'll also learn how to port code to work on a new architecture (or on a range of architectures), benchmark software performance, improve software performance by changing the code or the way it is built, and debug code. This is a project-based course, and you will gain experience working directly with one or more open source communities on software that is in everyday use.

After completing this course, you will understand the fundamentals of computer architecture and operation and be able to build and/or write software that performs well, work with multiple computer architectures, and participate in open source projects.

Is this an easy course?

No! - It's a challenging course. However, it covers material which is not covered elsewhere in the program, and if you like to understand computer technology in detail and how hardware and software interact, you may really enjoy this course. The knowledge and skills covered in this course are of practical value to programmers and system administrators.

Who teaches this course?

SPO600 is taught by Chris Tyler.

I've been teaching in the of ICT at Seneca since 2001 and am now also an Industrial Research Chair in Open Source Technology for Emerging Platforms in CDOT -- which means I spend most of my time doing applied research in CDOT.

Have more questions about SPO600?

Please contact Professor Chris Tyler (via email at chris.tyler@senecacollege.ca).

Return to the SPO600 homepage.