Network Programming on Linux by C/C++

Item Remark
Course Objectives

Upon completion of this course based on a real development sample project, students will be able to:

  • Professionally use software development process in real project
  • Consolidate object oriented programming (OOP) using C++
  • Acquire knowledge on Linux technologies (POSIX threads, file system)
  • Develop client-server network application on Internet based on Unix/Linux framework
  • Linux programming and many embedded systems support POSIX library in programming. It helps students learn embedded system programming easier upon this course
  • Achieve essential soft skills for workplace: teamwork, communication skill, presentation skill, technical email writing, work etiquette.
Prerequisite
  • Graduated bachelor of computer science or last-year student
  • Basic programming skill in C, preferably C++ and understanding about Linux OS
Training methodolody
  • Each training session is a combination of lectures and hands-on lab exercises to provide the optimum learning experience
  • A development sample project is assigned from the start of training course
  • Trainees are provided necessary soft skill courses for professional working
  • Actively trainees are required to investigate, refer to the references, document before class

Course outline

1. Basic software engineering

  • Requirement
  • Design using UML: High Level Design, Detail Design, Test Plan & Test Cases
  • Implementation: Prepare for Implementation, Coding & Unit Test, Integrate & Integration Test
  • Testing: Testing Process, Testing Phases, Blackbox Testing Techniques Overview

 

2. C/C++ & Linux technologies

  • C++ overview: inherited, encapsulation, polymorphism
  • C/C++ Programming on Linux
    - Compile
    - Debug
    - Create Library
  • Linux I/O programming
  • Internetworking with Linux sockets
    - Socket Introduction
    - UDP & TCP
    - Socket programming
  • Multi-threaded programming with the Pthreads library:
    - Thread  management(Create, Destroy)
    - Thread Synchronization (Mutex, Condition Variable)

 

3. Soft skills

  • Teamwork, Communication skill, Presentation skill, Technical email writing, Interview skill, Work etiquette

 

4. Project assignment

  • Group discussion & Project report