School of Engineering \ Computer Engineering
Course Credit
ECTS Credit
Course Type
Instructional Language
Programs that can take the course
Computer Engineering
Artificial Intelligence Engineering
This course provides an introduction to programming in Unix environment using the C language. The Unix kernel, Unix shell, file system and basic shell commands. Unix utilities and shell programming. The C programming language (functions, arrays, strings, pointers, dynamic memory allocation, low level operators and bit fields). Unix system calls. Process control, signal handling and interprocess communication.
Textbook and / or References
Required Text:
C How to Program, 6th or 7th Edition, by Deitel and Deitel. Prentice Hall.
Reference Texts:
Linux Pocket Guide, Daniel Barrett. O'Reilly.
Interprocess Communication in Linux, John S. Gray. Prentice Hall.
https://www. tutorialspoint. com/unix/index. htm
The aim of this course is to teach students programming in Unix environment using the C language.
1. Use basic Unix/Linux commands and utilities. Understand Unix/Linux file system basics and manipulate the file system.
2. Understand how shell level programs can perform useful tasks. Write shell scripts.
3. Solve programming tasks in C programming language.
4. Be proficient using C pointers, arrays, strings and file I/O.
5. Be proficient in C structures, dynamic memory allocation.
6. Write programs using system calls for process creation.
7. Know basics of interprocess communication, signaling and signal handling, pipes.
Week 1: Introduction to Unix/Linux (basic commands, file system, file manipulation, editors)
Week 2: More Linux (wildcards, regular expressions, filters, signals, job control)
Week 3: The shell, environment variables, shell setup files, shell scripts
Week 4: Shell scripts cont’d (variables, conditionals, loops)
Week 5: C Programming: basic data types, console I/O, control structures, functions
Week 6: C Programming: arrays, pointers, pointer arithmetic
Week 7: C Programming: pointers cont’d.
Week 8: C Programming: characters and strings, File I/O
Week 9: C Programming: structures, dynamic memory allocation, C linked lists
Week 10: Library functions and System Calls, Processes, process environment
Week 11: Processes cont’d: fork, exec, wait
Week 12: Signal handling, pipes
Tentative Assesment Methods
• Midterm 35 %
• Final 35 %
• Homeworks 20 %
• Labs 10 %
|
Program Outcome
*
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Course Outcome
|
1 |
C
|
|
|
A, B
|
|
C
|
B
|
|
|
|
|
2 |
C, D
|
B
|
|
A, B
|
|
C
|
B
|
|
|
|
|
3 |
C, D
|
|
|
A, B
|
|
C
|
B
|
|
|
|
|
4 |
C, D
|
|
|
A, B
|
|
C
|
B
|
|
|
|
|
5 |
C, D
|
|
|
A, B
|
|
C
|
B
|
|
|
|
|
6 |
C, D
|
|
|
A, B
|
|
C
|
B
|
|
|
|
|
7 |
C, D
|
|
|
A, B
|
|
C
|
B
|
|
|
|
|