Weekly outline

  • Week 0

    Course Rules:

    Website:

    • When you sign up, please use the same name you have in your AASTMT records, and include your AASTMT ID. This how I can migrate your grades to the AASTMT system.
    • Login often to follow up with assignment deadlines and announcements. Its your responsibility to keep up with the course. Failure to receive emails or notifications is no excuse. Everything is announced in class and then published in moodle.

    Academic Honesty:

    • Please confirm with the AASTMT policies regarding plagiarism and cheating. A zero grade for the violating submission will be given the first time, then reported to the department for further action.
    • Please ask questions in the online forum to allow everyone to join and benefit from the discussions, and avoid private emails to the lecturers and TAs. Contact the teachers privately only about your personal grades or circumstances, not about the course content.

    How to score A+ in this course?

    • Please do all practicals and assignments and study regularly. In case of problems, please ask questions. Accumulating problems will make things worse as the semester goes by.

    Course Description:

    INTRODUCTION TO SYSTEM PROGRAMMING, MACHINE ARCHITECTURE, MACHINE LANGUAGE, ASSEMBLY LANGUAGE, TWO PASS ASSEMBLERS, ONE PASS ASSEMBLERS, MACRO FACILITIES, CONDITIONAL MACROS, MACRO PROCESSORS, LOADERS, LINKERS, INTRODUCTION TO FORMAL LANGUAGES, COMPILERS AND INTERPRETERS. 

    Learning Outcomes:

    The student will be able to:

    • Study the architecture of a hypothetical machine, its assembly language, macro language.. 
    • Program in assembly language.
    • Understand the structure and design of assemblers, linkers and loaders.
    • Understand the concepts and theory behind the implementation of high level programming languages.

    Course Topics:

    • System programming Vs. Application programming
    • Study of a hypothetical machine (SIC machine)
    • Programming in assembly language
    • Structure and design of a two pass assembler
    • Structure and design of one pass assemblers
    • Programming in macro languages
    • Structure and design of macro processors
    • Loaders and linkers
    • Introduction to formal Languages and processing of high level languages 

    TEXT BOOK

    System software: an introduction to systems programming, Leland L. Beck, 3rd Edition, Addison Wesley, Longman Inc., 1997.

    PREREQUISITE: CC319 

    Grading Scheme:

    Week 7

    Quizes

    5%

    Lab Submissions

    2.5%

    Assignments

    2.5%

    Midterm 1

    20%

    Week 12

    Quizes

    5%

    Lab Submissions

    2.5%

    Assignments

    2.5%

    Midterm 2

    10%

    Project

    10%

    Final Exam

    40%

  • 20 September - 26 September

    Week 1: Chapter 1 : Background

    Learning Objectives:

    • System Software and Machine Architecture
    • The Simplified Instructional Computer (SIC)
      • SIC Machine Architecture.
      • SIC/XE Machine Architecture.
  • 27 September - 3 October

    Week 2: Chapter 1: SIC 

    Learning Objectives:

    • More SIC Programming Examples 

    Lab Work:

    Continue experimenting with the virtual machines, and code examples to understand instruction format and how memory changes during execution

  • 4 October - 10 October

    Eid Al- Adha Holidays

  • 11 October - 17 October

    Week 3: Chapter 1: SIC 

    Learning Objectives:

    • More SIC Programming Examples 
    • Traditional (CISC) Machines
    • RISC Machines
  • 18 October - 24 October

  • 25 October - 31 October

    Week 4/5: Assembler 1

    Learning Objectives:

    • General Introduction and Manual Assembling of Machine Code
  • 1 November - 7 November

    Week 6: Assembler 2

    Learning Objectives

    1. SIC Assembler Psudocode
    2. Pass 1 and Pass 2 detailed functions

  • 8 November - 14 November

    Week 7: Midterm Exam I

  • 15 November - 21 November

    Week 8: Assembler 3

    Learning Objectives:

    1. Machine Dependent Functions: Instruction Formats & Addressing Modes
    2. Program Relocation
    3. Machine Independent Features (Literals, Symbols, Expressions, 
  • 22 November - 28 November

    Week 9: Assembler 4

    Learning Objectives:

    1. Program Blocks
    2. Control Sections
    3. One Pass
    4. Multipass
  • 29 November - 5 December

    Week 10: Loader, Given in Compensation Lecture in Tuesday the 12th of Dec as agreed

  • 6 December - 12 December

    Week 11: Linker

  • 13 December - 19 December

    Week 12: Midterm Exam II

  • 20 December - 26 December

    Week 13: Macro Processors

  • 27 December - 2 January

    Week 14: Compilers

  • 3 January - 9 January

    Week 15: Compiler 2