Linux System Programming

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

‫د لوړو زده کړو وزارت‬

‫کندهار پوهنتون‬
‫د کمپیوټر ساینس پوهنځ‬
‫د نيټورک څانګه‬
‫د سیسټم پروګرامینګ کورس پاليس‬

Item Description
‫موضوع‬ ‫ر‬
‫تشې ح‬
Title Linux System Programming
‫عنوان‬ ‫سیسټم پروګرامینګ‬
Credits Theoretic ‫ نظري‬Practical ‫عمل‬ Total ‫ز‬
‫ټولېه‬
‫ي‬
‫درس ساعتونو‬
‫ي‬ ‫او‬ ‫کريډيټونو‬ ‫د‬ 2 2 4
‫شمې‬
Offering year and 2024 – 2nd year 2nd semester
semester ‫تدريس کال دوهم کال دوهم سمیسې‬ ‫ي‬ ۱۴۰۳-۱۴۰۲ ‫د‬
‫د تدریس کال او سمیسې‬
Aim ▪ Understand concepts of system programming using C Language
‫ز‬
‫موخ‬ ▪ Understand cli commands of Linux.
‫ي‬
▪ Understand concepts of Shell programming in Linux
▪ Understand concepts of Assembly language
▪ Understanding the structure of open-source operating system using Linux
▪ Practically implementing system programming concepts in Linux OS
▪ Be able to write applications and code in C language.
▪ Understanding the concept behind pointers and memory addressing
▪ Implementing files, media, Storage files, memory allocation.
▪ Write simple utility for Linux operating system
Key learning outcomes At the end of this course students will be able to:
‫ز‬
‫ښوونې نتایج‬ ‫کلیدي‬ ▪ Explain Linux OS structure.
▪ Explain and apply the concepts and the important commands of Linux system.
▪ Develop a program in C language for Linux OS command line.
▪ Develop scripts with Shell programming.
▪ Develop Assembly language in Linux.
▪ Explain and apply process management and the system calls.
▪ Explain and apply concurrent programming and the system calls.
▪ Explain and apply file operations and the system calls.
▪ Describe and apply Shell Programming in Linux.
▪ Explain and apply EXT2 file system and its system calls.
Academic staff ‫ نوماند پوهنیار نوید احمد همتمل‬:‫استاد‬
responsible ۰۷۰۴۹۳۳۹۲۶ :‫د اړیکي شمېره‬
‫د تدریس مسول استاد‬ Hematmal2022@gmail.com :‫ایمېل ادرس‬
fkgcdc6 :‫کالس روم کوډ‬
Syllabus ▪ Linux OS introduction
‫مفردات‬ ▪ Linux basic commands
▪ Programming Environment in Linux
▪ Shell programming in Linux
▪ Assembly Language in Linux
▪ Process Management
▪ Concurrent Programming
▪ File Operations
▪ File system calls
▪ EXT2 File Systems
Prerequisite ▪ Introduction to Programming (C)
‫مخکين اړین مضمونونه‬ ‫ز‬ ▪ Operating Systems
‫ي‬
Related courses ▪ Advanced Programming
‫اړونده مضمونونه‬ ▪ Computer Network Programming
Teaching and Learning ‫ تدریس‬:‫الف‬
methods. ‫▪ پاورپاینټ تدریس کول‬
‫د تدریس میتود‬ ‫▪ ویډیوګان او چارټونه په تدریس ک استعمالول‬
‫) له مېتود څخه کار اخیستل‬OBE-SCL( ‫محصل محوري‬ ▪

Page 1 of 6
‫ب‪ :‬د مضمون د استاد مسولیتونه‪:‬‬
‫د محصلینو د حاضي ر‬
‫کنتول او ارزونه‬ ‫▪‬
‫د مفرداتو مطابق د درس کتاب او نوي موادو برابرول‬ ‫▪‬
‫د مضمون اړوند پروژو او سمینارونو جوړېدلو په هکله الرښودنه کول‬ ‫▪‬
‫د عمل او ساحوي کړنو زمینه برابرول‬ ‫▪‬
‫د تدریس په جریان او ختم ک محصیل ته د پوښتنو حق ورکول‬ ‫▪‬
‫ټولګ ک د نظم جوړېدل‬‫په تدریس ی‬ ‫▪‬
‫درس نصاب د پالن او مهال وېش له مځ تطبیقول‬ ‫▪‬
‫محصلینو ته د الزم مهارتونو د عمل کېدلو زمینه برابرول‬ ‫▪‬
‫ج‪ :‬د محصیل مکلفیتونه‪:‬‬
‫ټولګ ته حاضېدل‬ ‫په ټاکل وخت و ی‬ ‫▪‬
‫چاپتیال ساتن مراعت کول‬‫ډیسیپلی او ر‬
‫ر‬ ‫د نظم‬ ‫▪‬
‫په ټولګ ک ګرځنده ټلیفون خاموش ساتل‬‫ی‬ ‫▪‬
‫په صنف فعالیتونو ک فعال ګدوڼ کول‬ ‫▪‬
‫پر وخت د کورن دندي رسته رسول‬ ‫▪‬
‫عمل کړنو ته د مهال وېش له مځ حاضېدل‬ ‫▪‬
‫انتنیټ له اسانتیاو څخه هر وخت ګټه اخیستل‬ ‫د کتابتون او ر ر‬ ‫▪‬
‫د تدریس په جریان ک د مهمو ټکو او پوښتنو یاداښت کول او لیکل‬ ‫▪‬
‫د لیکچرنوټ اخیستلو لپاره کتابچه او تدریس کتاب درلودل‬ ‫▪‬
‫په انالین صنف یعن ‪ Google Classroom‬ک برخه اخیستل‬ ‫▪‬
‫د انالین ‪ YouTube, edX, Khan Academy, Stack Overflow‬او داس نور موادو څخه استفاده کول‪.‬‬ ‫▪‬
‫د‪ :‬د ازموین کړنالره‪:‬‬
‫څلورځوابه پوښتن‬ ‫▪‬
‫تشیځ او محاسبوي پوښتن‬‫اوږد ر‬ ‫▪‬
‫تشیځ پوښتن‬ ‫لنډ ر‬ ‫▪‬
‫قوانی‬
‫ر‬ ‫ه‪:‬‬
‫ځتکتیا اړوند ټولز استعمالول مطلق منع دي‪ ،‬او د استعمال په صورت‬
‫ر‬ ‫مصنوع‬ ‫یا‬ ‫‪AI‬‬ ‫د‬ ‫ک‬ ‫وخت‬ ‫په‬ ‫کولو‬ ‫رسچ‬ ‫د‬ ‫▪‬
‫کتي‪.‬‬‫ک د اړوند اساینمینټ یا پروژې نمرې صفر حسابل ږ‬
‫په کالس روم ک یوازي او یوازي پر یوه اکاونټ فعالیت ته اجازه سته‬ ‫▪‬
‫په کالس روم ک خپل نوم باید د حاضي مطابق لیکل سوی وي‪ ،‬که په یوه نوم څو کسه ی‬
‫ټولګ ک موجود وي بیا نو‬ ‫▪‬
‫د نوم تر څنګ د پالر نوم د تخلص په ځای ک لیکل حتم دي‪.‬‬
‫کتي‪.‬‬‫په کالرسوم ک ځنډول سوي اساینمینټونه نه حسابل ږ‬ ‫▪‬
‫کتي‪.‬‬
‫د کان سوي اساینمينټونو نمرې صفر حسابل ږ‬‫▪‬
‫‪Course Materials and‬‬ ‫‪Textbook‬‬ ‫‪Wang, K. C. (2018). Systems programming in Unix/Linux. Springer.‬‬
‫‪References‬‬ ‫‪Reference Books Kochan, S. G., & Wood, P. (2016). Shell Programming in Unix,‬‬
‫درس مواد او‬
‫ي‬ ‫د مضمون‬ ‫‪Linux and OS X. Addison-Wesley Professional.‬‬
‫اخځلیکونه‬ ‫‪Research papers 3-5 Research papers according to course policy will be assigned to‬‬
‫‪students as assignment and its link will be uploaded on classroom‬‬
‫‪Videos‬‬ ‫‪Courses and videos according to course policy will be assigned to‬‬
‫‪students as references and its link will be uploaded to classroom‬‬
‫‪Others‬‬ ‫‪Websites and other medias will be assigned to students as reference‬‬
‫‪and will be uploaded to classroom‬‬
‫‪Evaluation Methods‬‬ ‫‪Assignments‬‬ ‫ز‬
‫کورن‬ ‫‪Project‬‬ ‫‪ Mid-‬پروژه‬ ‫‪ Final‬شل سلنه‬ ‫اخېي‬
‫ز‬
‫ارزون میتودونه‬ ‫د‬ ‫‪term‬‬ ‫‪exam‬‬
‫ي‬ ‫دندي‬ ‫ازموینه‬ ‫ازموینه‬
‫‪exam‬‬
‫‪10%‬‬ ‫‪10%‬‬ ‫‪20%‬‬ ‫‪60%‬‬
‫‪Time Distribution‬‬ ‫‪Laboratory‬‬ ‫البراتواري کار‬
‫د تدریس د وخت وېش‬ ‫‪Lectures‬‬ ‫‪ Exercise/Tutorials‬لکچړونه‬ ‫تمرین‬
‫‪50%‬‬ ‫‪30%‬‬
‫‪Fieldwork‬‬ ‫ساحوي کار‬
‫‪Teamwork‬‬ ‫ګرون کار‬ ‫‪Home study‬‬ ‫ز‬
‫کورن دنده‬
‫ي‬
‫‪10%‬‬ ‫‪10%‬‬
‫‪Project‬‬ ‫رر‬
‫سمیست د دوهم اون څخه ررسوع تر دوولسم اون تر پايه پوري باید اماده وي‪.‬‬ ‫▪ پروژه د‬
‫پروژه‬ ‫اختن ورځ پوري ټوله باید په ‪ GitHub‬ک موجوده وي‪.‬‬ ‫▪ پروژه د اول ورځ څخه تر ر‬
‫▪ پروژه ک باید د ټیم ټول غړو عمل کار کړی وي او په ګيټ هب ک باید د ثبوت دپاره ‪ commits‬موجود‬
‫وي‪.‬‬

‫‪Page 2 of 6‬‬
Relationship of this Course to Program Learning Outcome
‫ز‬
‫ښوونېو موخو رسه‬ ‫څانګ له کلیدي‬ ‫د مضمون اړېکه د‬
‫ي‬
Very
Skills/Knowledge None Some Moderate Extensive
extensive
‫زده کړه‬/‫مهارتونه‬ ‫هيڅ‬ ‫يوڅه‬ ‫متوسط‬ ‫زیات‬ ‫ډېر زیات‬
The ability to communicate in a new language ✓
Superior memory function ✓
Use modern tools and techniques ✓
Critical thinking and apply knowledge concurrence with other
disciplines ✓
Increased problem-solving abilities ✓
Understand professional and ethical responsibility ✓
Communicate effectively ✓
Ability to function in a group and in multi-disciplinary team ✓
Increased ability in digital literacy ✓
‫رر‬ ‫په ی‬
Remarks ‫سمیست‬ ، ‫ کورن دندي‬، ‫ ګرون کارونه‬، ‫ټولګ ک د محصلينو ارزونه تررسه کول (تقریري پوښتن‬ ▪
‫رر‬
)‫سمست کلن ازموینه‬ ‫منځن ازموینه او د‬
‫کتن‬
‫محصلی تشویقول‬
‫ر‬ ‫کامیابه‬ ▪
‫کمزوري محصلینو رسه د مضمون اړوند همکاري کول‬ ▪
‫د لیکچرنوټ اخیستلو لپاره کتابچه او تدریس کتاب درلودل‬ ▪

‫ پر بنسټ د (سیسټم پروګرامینګ) د مضمون د سمي ر ر‬SCL-OBE ‫د‬


‫ست پالن‬
Student’s Facilitators
Assessment Activities Activities Outcomes Subtopics Topics Week
‫ارزونه‬ ‫د محصل‬ ‫د استاد‬ ‫پایل‬ ‫فرع عنوانونه‬ ‫عنوانونه‬ ‫اون‬
‫فعالیتونه‬ ‫فعالیتونه‬
‫ی‬
‫▪ په ټولګ ک د‬ ‫▪ په وخت‬ ‫▪ د تدریس‬ Students will ▪ Subject Course Introduction
‫ننه پوښتن‬ ‫ی‬
‫ټولګ ته‬ ‫ځای او د‬ learn about the Orientation
‫کول‬ ‫حاضتېدل‬
‫ر‬ ‫وسایلو‬ whole course ▪ Overview of
‫▪ د کورن‬ ‫▪ د یاداښت‬ ‫استعمال‬ and its topics course
‫دندي ورکول‬ ‫کتابچه‬ ‫▪ د محصالنو‬ policy.
‫▪ د موضوع‬ ‫درلودل‬ ‫د حاضي‬ ▪ Overview of
‫اړوند‬ ‫▪ په تدریس ک‬ ‫لیست‬ student
Projects
‫چلینجونه‬ ‫فعاله ونډه‬ ‫درلودل‬
▪ Teams and
‫ورکول‬ ‫اخیستل‬ ‫▪ د محصالنو‬
assigning
‫▪ د موضوع‬ ‫څخه‬ projects. 1
‫اړوند د‬ ‫تدریس په‬
‫پروګرامونو‬ ‫جریان ک‬
‫جوړولو‬ ‫پوښتنه‬
‫چلینجونه‬ ‫کول‬
‫ورکول‬ ‫▪ محصالن‬
‫په ګروپونو‬
‫وېشل او‬
‫فعالیت ن‬
‫کنتولول‬‫رر‬
Students will ▪ Installation Introduction to Linux
learn how to of Linux
〃 〃 〃 2
install Linux
and install
Page 3 of 6
packages in ▪ Package
Linux. Manager
Students will
be distributed
in groups and
select a project
till end of 2nd
week
Students will ▪ Window Linux Distros
learn how to Manager &
work with Desktop
ubuntu CLI Manager
▪ Shell Script
language
▪ Config files
▪ Post
〃 〃 〃 installation 3
scripts.
▪ Linux
Command
anatomy
▪ Pipelining
▪ Redirection
▪ Nano text
editor
Students will whoami, man, Basics of Linux
learn how to clear, pwd, ls, cd,
work with mkdir, touch,
ubuntu CLI rmdir, rm, open,
mv, cp, head, tail,
date, cat, less,
echo, wc, sort,
uniq, expansions,
〃 〃 〃 diff, find, grep, 4
du, df, history, ps,
top, kill, killall,
jobs, bg, fg, gzip,
gunzip, tar, nano,
alias, xargs, ln,
who, su, sudo,
passwd, chown,
chmod
Students will ▪ Command Implementation of
learn how to Options in C Ubuntu CLI
〃 〃 〃 implement cli ▪ Linux apis commands 5
commands
like
Students will ▪ variables, Linux Shell
learn about data types Programming
shell ▪ control
programming structures.
in Linux and ▪ input and
will be able to output
〃 〃 〃 6
create scripts
which runs
manually or
automatically
as scheduled
tasks

Page 4 of 6
Students will ▪ functions Linux Shell
further learn and script Programming
about organizations
implementing ▪ command
〃 〃 〃 shell line 7
programming arguments
scripts for and options.
various tasks ▪ regular
expressions
Students will ▪ Building Introduction to
learn different blocks Assembly language
types and ▪ Registers
〃 〃 〃 8
basic syntax of
assembly
language
‫په تحریري شکل‬ ‫په وخت ی‬
‫ټولګ ته‬ ‫د تدریس موادو‬ Students’ Mid-term exam
‫ سلنه‬۲۰ ‫د‬ ‫حاضتېدل‬
‫ر‬ ‫او کورس پاليس‬ knowledge
will be 9
‫ازموين اخیستل‬ ‫مطابق سوالونه‬
‫برابرول‬ assessed
‫▪ په ی‬
‫ټولګ ک د‬ ‫▪ په وخت‬ ‫▪ د تدریس‬ Students will ▪ User input Introduction to
‫ننه پوښتن‬ ‫ی‬
‫ټولګ ته‬ ‫ځای او د‬ be able to ▪ Instructions Assembly language
‫کول‬ ‫حاضتېدل‬
‫ر‬ ‫وسایلو‬ work with ▪ Functions
‫▪ د کورن‬ ‫▪ د یاداښت‬ ‫استعمال‬ assembly
‫دندي ورکول‬ ‫کتابچه‬ ‫▪ د محصالنو‬ language and
‫▪ د موضوع‬ ‫درلودل‬ ‫د حاضي‬ implements
‫اړوند‬ ‫په تدریس ک‬ ‫لیست‬ functionalities
for Linux
‫چلینجونه‬ ‫فعاله ونډه‬ ‫درلودل‬
‫ورکول‬ ‫اخیستل‬ ‫▪ د محصالنو‬
‫د موضوع اړوند‬ ‫څخه‬ 10
‫د پروګرامونو‬ ‫تدریس په‬
‫جوړولو‬ ‫جریان ک‬
‫چلینجونه ورکول‬ ‫پوښتنه‬
‫کول‬
‫▪ محصالن‬
‫په ګروپونو‬
‫وېشل او‬
‫فعالیت ن‬
‫کنتولول‬‫رر‬
Students will Process Management
be able to in Linux/Unix
apply the
〃 〃 〃 11
system calls of
process
management.
Students will Process Management
be able to in Linux/Unix
apply the
〃 〃 〃 12
system calls of
process
management.
Students will Concurrent
be able to Programming
explain the
concurrent
〃 〃 〃 13
programming
concepts and
the system
calls

Page 5 of 6
Page 6 of 6

You might also like