| Date: Sept. 2007 | ||||||
| Course Code and Name | CMPE 230 Systems Programming | |||||
| Course Type | Semester | Credits | Lecture (hours/week) | P.S. (hours/week) | Laboratory (hours/week) | |
| Required | Spring 2008 | 4 | 3 | 2 | ||
| Instructor | Can Özturan | |||||
| Catalog Description | Overview of compilers, interpreters, assemblers, linkers and loaders. Unix environment and system calls. Signals and exceptions. Localization and Unicode. Perl and CGI Programming. Assembly language programming. Introduction to multithreading. Introductory Graphical User Interface (GUI) programming. | |||||
| Course Objectives | This course will enable the student to: | |||||
| 1. Learn the idea behind various system software. | ||||||
| 2. Learn and compare the functionalities of various system software. | ||||||
| 3. Learn how to use the Unix environment and Unix tools, | ||||||
| 4. Learn multithreaded programming with OpenMP. | ||||||
| 5. Design and develop system software with Perl. | ||||||
| 6. Get introduced to assembly language programming. | ||||||
| Prerequisite(s) | CMPE 160 | |||||
| Textbook(s) | Learning Perl, Randal Schwartz and Tom Phoenix | |||||
| Other References | 1) Blanchette and SummerField, C++ GUI Programming with Qt 2) Ayala, K. J., The 8086 Microprocessor: Programming and Interfacing the PC, West Publishing Company, 1995. 3) OpenMP Application Programming Interface (http://www.openmp.org/drupal/mp-documents/spec25.pdf) | |||||
| Grading | Method | Quantity | Percentage | |||
| Midterm Exam(s) | 2 | 34 | ||||
| Project(s) | 3 or 4 | 36 | ||||
| Final | 1 | 30 | ||||
| Percentage | ||||||
| Course Content | Mathematics and Basic Science | 0 | ||||
| Engineering Science | 50 | |||||
| Engineering Design | 40 | |||||
| Other (social sciences etc) | 10 | |||||
| Topics | ||||||
| 1. | System Software Overview: assemblers, linkers, loaders, compilers interpreters, script languages. | |||||
| 2 | Unix environment, Makefiles, Intel tools, Memory layout of C programs. | |||||
| 3. | Multithreaded Programming with OpenMP. | |||||
| 4. | Introductory Graphical User Interface Programming with Qt | |||||
| 5. | Perl Programming: variables, associative arrays, flow control, I/O, file handling, formats, references, pattern matching, subroutines, packages, modules. | |||||
| 6. | Introductory X86 Assembly language programming: x86 family, addressing modes, types of instructions, segmented memory, 8086 registers, data movement, arithmetic, logical, jump, comparison, stack, dos instructions, A86 and GNU assemblers, . | |||||