| Date: Sept. 2004 | ||||||
| Course Code and Name | CMPE 230 Systems Programming | |||||
| Course Type | Semester | Credits | Lecture (hours/week) | P.S. (hours/week) | Laboratory (hours/week) | |
| Required | Spring 2005 | 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. Design and develop system software with Perl. | ||||||
| 5. Get familiar with Internet programming. | ||||||
| 6. Get introduced to assembly language programming. | ||||||
| Prerequisite(s) | CMPE 160 | |||||
| Textbook(s) | Deitel and Deitel, Perl, How to program, Prentice Hall, 2001. | |||||
| Other References | Ayala, K. J., The 8086 Microprocessor: Programming and Interfacing the PC, West Publishing Company, 1995. | |||||
| 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 | |||||
| 3. | Perl Programming: variables, associative arrays, flow control, I/O, file handling, formats, references, pattern matching, subroutines, packages, modules. | |||||
| 4. | CGI Programming. | |||||
| 5. | 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, memory layout of C programs. | |||||
| 6. | Miscellaneous Topics: Localization, Signals and exceptions, Introductory Graphical User Interface Programming. | |||||