مقدمه:

دوره برنامه نویسی پیشرفته در محیط لینوکس به دانشجویان آموزش می دهد که چطور تحت لینوکس برنامه های مختلف را پیاده سازی کرده و همچنین از منابع سیستم به نحو کارآمد استفاده کنند. در این دوره زبان برنامه نویسی C بطور کامل آموزش داده خواهد شد. زبان C در حقیقت برای تهیه برنامه های بعضا کوچک و سریع طراحی شده است. این زبان در زمره‌ی زبان های سطح پایین قرار می‌گیرد به این معنی که کدهای تولید شده توسط این زبان به زبانی که سخت افزار می فهمد نزدیک است. C زمانی مورد استفاده قرار می‌گیرد که سرعت بالا و استفاده از فضای کم از اهمیت ویژه ای برای برنامه نویس برخوردارند. بسیاری از سیستم عامل ها نظیر لینوکس به زبان C نوشته شده اند همچنین بسیاری از زبان های برنامه نویسی مدرن نیز خود به زبان C نوشته شده اند. برنامه هایی که اصولا به زبان C در محیط لینوکس نوشته می‌شوند بازه گسترده ای را شامل می‌شوند که از این میان می‌توان به تهیه انواع Device Driver ها اشاره کرد. همچنین زبان C کاربرد گسترده ای در محیط های Embedded دارد.

 

محتوا: مقدمات زبان C و برنامه نویسی تحت محیط لینوکس به همراه مثال ها و پروژهای عملی و سورس کد

هدف: آشنایی با زبان استاندارد شده C، برنامه سازی در لینوکس. آشنایی با مفاهیم پیشرفته برنامه نویسی نظیر همروندی، برنامه نویسی تحت شبکه و اصول برنامه سازی امن در زبان C و سیستم عامل لینوکس. اصول برنامه سازی امن در C و لینوکس برای حداقل سازی نفوذهای رایج

مدت دوره: 52 ساعت

پیش نیاز: آشنایی با مفاهیم ابتدایی شبکه و سیستم عامل

 

1- Part one - Essential C programming

2- Introduction

3- C Fundamentals

4- Formatted I/O

5- Expression & Statement

6- Loops

7- Basic Types

8- Arrays

9- Functions

- Programming Process

- Setting Up

- Specification

- Code Design

- Prototype

- Makefile

- Testing

- Debugging

- Maintenance

- Revisions

- Electronic Archaeology

- Marking Up the Program

- Using the Debugger

- Text Editor as a Browser

- Add Comments

10- Pointers

11- Strings

12- The Preprocessor

Part Two – Advance C Programming

13- Writing Large Program

14- Advance uses of pointers

15- Declarations

16- Structure

17- Union

18- Enumeration

19- Program Design

20- Low-Level Programming

21- The Standard C library

- Input/output

- Numbers and Characters

- Error Handling

- C99

Part Three – Linux Programming

22- Memory Management and Allocation

23- File I/O

24- Time

25- Processes

26- Pipes and Fifo's

27- Signals

28- POSIX Threads

29- Writing Secure Privileged Program

30- Inter Process Communication

31-Mutex

32- Networking and Sockets

33- Sockets – Fundamentals of TCP/IP networks

Part Four – Secure C Programming

34- Introduction

35- Secure working with strings

36- Secure pointers

37- Dynamic memory management

38- Integer Security

39- Formatted Output

40- Concurrency

41- File I/O

42- Recommended Practice

- The security development life-cycle

- Design

- Implementation

- Verification