General Information

  • Course Title: Computer Organization

  • Course code: ECSE 324

  • Credits: 4

  • Contact Hours: (3,4,5)

  • Course Prerequisite(s): ECSE 200 and ECSE 222

  • Course Corequisite(s): N/A

  • Course Description: Basic computer structures; instruction set architecture; assembly language; input/output; memory; software; processor implementation; computer arithmetic. Lab work involving assembly language level programming of single-board computers.

Introduction

In this class we will learn about the design of computers, both hardware and software. In previous classes you have learned about the building blocks of digital hardware (ECSE 222 and how to write programs in ahigh-level computer language such as C or Java (ECSE 202). In this class we will fill in the missing details to find out how a digital machine run programs. You will learn about the basics of computer organization, seeing how the hardware is implemented out of the digital circuits you already know. We will peek “under the hood“ of the machine, and see how programs you write in high-level languages (such as C or Java) actually execute on a real machine.

You will learn how to program a computer at the machine level, in what is known as assembly language.

What will you take away from this class:

  • You will learn about the main computer structures and how the processor hardware executes a program.

  • You will learn how to write programs at the machine level in “assembly language” for one of the most popular modern processors (ARM). ARM processors are used in almost every smartphone (95%).

  • You will learn how high-level languages are translated into assembly language.

The knowledge and skills you learn in this class will not only prepare you to design and analyze computer hardware, but also write better computer software.

Format

The course has three hours of weekly lecture, two hours of weekly tutorials and two hours of weekly labs. The laboratory experiments are meant to reinforce the lecture material and form an integral part of the learning experience in this course. There will be a total of 4 lab experiments, done individually. Lab 0 will be ungraded and labs 1-3 will be graded.

Prerequisites

ECSE 200 -(Electric Circuits 1) and ECSE 222-(Digital Logic).

The chain of courses ECSE 202 (Introduction to Software Development), ECSE 222 (Digital Logic) contain the key prerequisite knowledge to be successful in this course. I expect you to be able to write programs in a “C-like” high-level language, such as C or Java and to be able to think in terms of algorithmic models. I also expect that you know all about the basics of digital logic: binary numbers, logic gates, binary addition, and finite-state machines. These are the building blocks of computers.

Textbook

Carl Hamacher, Zvonko Vranesic, Safwat Zaky, and Naraig Manjikian, “Computer Organization and Embedded Systems”, 6 th Edition, McGraw-Hill, 2012. Available at the McGill bookstore. A copy of the textbook is on reserve at the Schulich Science & Engineering library.

Webpage

Information for the course will be posted on this website http://ecse324.ece.mcgill.ca and this should be the first place you look to get information about the course.

Communication

All communications with the instructors or TAs should be done via Piazza. You should register using this link: http://piazza.com/mcgill.ca/fall2020/ecse324

Professor Office hours

  • Wednesday 9.00am-9.30am

  • Wednesday 12.30pm-1.00pm (right after the lecture)

  • Wednesday 4.30pm-5.00pm

Held online via Zoom using this link: https://mcgill.zoom.us/j/91355722322 The waiting room feature will be used, you will be accepted into the meeting one at a time.

Important

The office hours Zoom meetings are protected and only authenticated Zoom users with a McGill email address can join.

You must sign in into Zoom using your McGill email address or you will not be able to attend the office hours!

Note that all McGill students should already have a McGill Zoom account. Please follow these instructions to login on Zoom with your McGill account: https://www.mcgill.ca/tls/instructors/class-disruption/tools/zoom#signing-into-zoom

Evaluation

  • Mid-Term Exam: 20%

  • Lab Experiments: 25%

  • Final Exam: 55%

  • Piazza participation bonus: 10%

Each of the three graded lab will bear the same weight.

The Piazza bonus will reward students who provide useful inputs on Piazza. The amount of bonus points (up to 10%) will be a function of the number of endorsed answers (or 0 if the student has no endorsed answer). The bonus distribution will be normalized using quantile normalization. The normal distribution with a mean of 5% will be used as reference (i.e. half of the students who contribute will receive at least 5% of bonus point).

Staff

Instructor: Prof. Christophe Dubach (Dept. of Electrical and Compute Engineering / School of Computer Science)

Office: McConnell Engineering Building, Room 758

Lab TAs

  • Amir Ardakani

  • Jonathan Van der Cruysse

  • Nghia Doan

Tutorial TAs

  • Mohamed Abdelgawad

  • Raihan Seraj

Important

Instructors and TAs will not reply to any email (unless it is a personal matter). All communications/questions should go through Piazza.

Canadian Engineering Accreditation Board (CEAB)

Accreditation Unit (AU) breakdown:

  • Engineering Design: 50%

  • Engineering Science: 50%

Graduate Attributes:

  • Design (DE): Developed (D)

  • Use of Engineering Tools (ET): Developed (D)

  • Knowledge Base for Engineering (KB): Developed (D)