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.