Weekly outline

  • General

    Week 0: Course Information

    • Course number and name:

      CC 410 Systems Programming

    • Credits and contact hours
      Credits Hours: 3Hrs
      Contact Hours: In Lecture 2Hrs, In Tutorial 2Hrs.

    • Instructor’s or course coordinator’s name: Dr. Manal Helal

    • Text book, title, author, and year
      System software: an introduction to systems programming, Leland L. Beck, 3rd Edition, Addison Wesley, Longman Inc., 1997.

    • Catalog 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.

      Prerequisites: CC319

      Type of the course (required, elective, or selected elective course) in the program: Required Course

    • Specific outcomes of instruction

      After the completion of this course the students will be able to:

    Course Learning Outcomes

    SO

    1

    Study the architecture of a hypothetical machine, its assembly language, macro language.

    I,J

    2

    Program in assembly language.

    J

    3

    Understand the structure and design of assemblers, linkers and loaders.

    J

    4

    page1image31552

    Understand the concepts and theory behind the implementation of high level programming languages.

    J

    Topics to be covered

    • 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 

    Grading Scheme

    Week 7:
    Midterm 1: 20 marks
    Lab Quiz 1: 5 marks (will be submitted to TAs on time to be graded before the week 7 grades submission)
    Assignments and Lab submissions: 5 marks (TAs will need to keep a copy of all submissions they receive for Lecturers and Coordinator revisions)
    Week 12:
    Midterm 2: 20 marks if no project submitted, otherwise, the Midterm is 10 marks and the project is 10 marks. The project will be due on week 15, and the pro
     

    أعمال السنة:

    Lab Quiz 2: 5 marks (again given to TAs and marks submitted before week 15)
    Assignments and Lab Submissions: 5 marks
    Final: 
    Practical Exam: 10 marks
    Final Exam: 30 marks





    Class Rules:

    1. Please come to lectures/labs on time. Only 5 minutes delay is allowed.
    2. Cross talking, drinking, eating, using mobiles or any disturbing activity are not allowed during lectures/labs. 
    3. If you need to leave the lecture room for any reason during the lecture, you are not allowed to come back.
    4. Please pay attention to the lecture, and write your questions down to ask in the last five minutes. Raise your hand and wait for permission to start asking. If time does not allow all questions, please post your questions in the lecture forum before coming to office hours.
    5. Please submit your own work only with due references in assignments, projects, and exams. Plagiarism and cheating is penalized by zero for the first incident, and following the academy policies in further incidents.
    6. As you see the  marks are distributed on several activities that you should consider as opportunities NOT to miss. There will be no makeups for any activity, so please plan in advance. 
  • 8 February - 14 February

    Week 1: Chapter 1 : Background

    Learning Objectives:

    • System Software and Machine Architecture
    • The Simplified Instructional Computer (SIC)
      • SIC Machine Architecture.
      • SIC/XE Machine Architecture.
  • 15 February - 21 February

    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

  • 22 February - 28 February

    Week 3: Chapter 1: SIC 

    Learning Objectives:

    • More SIC Programming Examples 
    • Traditional (CISC) Machines
    • RISC Machines
  • 1 March - 7 March

    Week 4: Assembler 1

    Learning Objectives:

    1. General Introduction and Manual Assembling of Machine Code
    2. SIC Assembler Psudocode
    3. Pass 1 and Pass 2 detailed functions
  • 8 March - 14 March

    Week 5: Assembler 2 - Machine Dependent Features

    Learning Objectives

    1. Machine Dependent Features: Instruction Formats & Addressing Modes
    2. Program Relocation
  • 15 March - 21 March

    Week 6: Assembler 3 - Machine Independent Features

    Learning Objectives:

    1. Symbols,
    2. Expressions.
  • 22 March - 28 March

    Week 7: Midterm Exam I

  • 29 March - 4 April

    Week 8: Assembler 4 - Machine Independent Features

    Learning Objectives:

    1. Program Blocks 
    2. Control Sections
  • 5 April - 11 April

    Week 9: Easter Holiday. Please arrange a time to makeup the lecture. We agreed before on Wednesday @ 12:30 p.m. Lets do it in Week 13 or 14.

    • 12 April - 18 April

      Week 10: Loader

      Learning Objectives:

      1. Absolute Loaders
        • The process understood manually
        • the algorithm 
        • bootstrap loaders
      2. Relative Loaders
        • The process understood manually
        • the algorithm (is explained in the relative linking loader of next section/lecture, without the linking requirements)
        • Relocation by M records
        • Relocation by Bit Mask

    • 19 April - 25 April

      Week 11: Linker

      Objectives:

      1. Linking Loader
        • The process understood manually
        • The algorithm and the data structures
      2. Design Options
        • Linkage Editors
        • Dynamic Linking

    • 3 May - 9 May

      Week 13: Macroprocessor

      Objectives:

      1. Understand macro, how to declare them, how to invoke them
      2. Understand the design of macroprocessor that defines a macro, and expand it in the output code
      3. The algorithm and data structures
    • 10 May - 16 May

      Week 14: Compiler I

      Objectives:

      1. Lexical Analyser: tokenisation
      2. Syntax Analyser: Parse Trees
        • Bottom Up methods: Operator Precedane and Shift/Reduce
        • Top Down methods: recursive descent
    • 17 May - 23 May

      Week 15: Compiler II

      Objectives:

      • Code Generation