Oman College of Management &Technology Department of Computer Science Baraka, Oman Tel. (968) 26893366 Fax (968) 26893068 503205(Systems Programming) Course Code: 503205 Course Name: System Programming Semester / Session: First 2014/2015 Credit Hours: 3 Hrs Course Prerequisites: Programming in Selected Language Class sections and Lecturers: Section 1: 12:30 – 13:30 Sun, Tue, Thru 231 Loay AlNeamy Instructors Office Hours: Email: Office Location: Office Hours: Website: Loay.alneimy@omancollege.edu.om 225 Sun, Tue, Thu 10:30-11:30, 13:30-14:30 Mon, Wed 10:00 – 11:30 www.omancollege.edu.om/loay Course Description This course is one of the core courses for students in Computer Science degree program. The topics that will discuss are System Software and Machine Structure, Basic Assembler Functions, Basic Loader Functions, Basic Macro Processor Functions, Basic Compiler Functions and Basic Operating System Functions. Course objectives Understanding of how the Assembler works, how to generate the object code for an assembly program, different addressing mode, linker and Loader, an Introduction to Compiler & Operating system. Learning Outcomes After completing this course the student should be able to: (1) Understand computer systems, especially low-level influences on high-level goals. This includes the machine-level representation of programs and data structures; the memory hierarchy and its impact on performance; access to stored information via file systems, and access to other computer systems via networks. (2) Understand existing system software and software standards, especially the UNIX toolset. This includes preparing a program (editors, static analysis, development environments); running a program (compilers and interpreters, assembler, linker, loader, debugger, profiler, tracer); controlling parts of a program (memory management, threads); communication between programs (within one system using signals, between systems using sockets and communication protocols); and combinations of software tools with scripting languages. (3) Understand "real code", such as selections from the Linux operating system kernel and GNU utilities and libraries, and through comparative selections from Solaris, Linux, and Mac OS X. (4) Understand system performance, including experiments on program performance and optimization techniques. Teaching Methods The course will be based on the following teaching and learning activities: Power point presentations that covers the theoretical part Review questions Lab sessions Course Plan 1. Background (chapter 1) Introduction. System Software and Machine Structure. The Simplified Instructional Computer (SIC). Traditional (CISC) Architectures. RISC Architectures 2. Assemblers (chapter 2): Basic Assembler Functions. Machine-Dependent Assembler Features. Machine-Independent Assembler Features. Assembler Design Options. Implementation Examples. 3. Loaders and Linkers (chapter 3): Basic Loader Functions. Machine-Dependent Loader Features. Machine-Independent Loader Features. Loader Design Options. Implementation Examples. 4. Macro Processors (chapter 4): Basic Macro Processor Functions. Machine-Independent Macro Processor Features. Macro Processor Design Options. Implementation Examples. 5. Compilers (chapter 5): Basic Compiler Functions. 6. Operating Systems (chapter 6): Basic Operating System Functions. Course Time Table: Week 1 2 Subjects System Software and Machine Structure. The Simplified Instructional Computer (SIC). 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Traditional (CISC) Architectures. RISC Architectures Basic Assembler Functions. Machine-Dependent Assembler Features. (First Exam) Machine-Independent Assembler Features. Assembler Design Options. Basic Loader Functions. Loader Design Options. Basic Macro Processor Functions. (Second exam) Machine-Independent Macro Processor Features. Macro Processor Design Options. Basic Compiler Functions. Basic Operating System Functions Final Exam Evaluation Plan Modes Of Assessment First Exam Second Exam Assignments Final Exam Score 20% 20% 10% 50% * Makeup exams will be offered for valid reasons only. Makeup exams may be different from regular exams in content and format. Attendance Policy Lecture attendance is mandatory. Students are allowed maximally of 15% absentia of the total module hours. Teaching Resources Main Textbook : System Programming Software, An Introduction to System programming , 3 . edition ,Addison Wesley 2009. rd Systems Engineering and Analysis (3rd Edition) by Benjamin S. Blanchard, Wolter J. Fabrycky. Recommended Books: