| 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.
|
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
|