OS and Networking with C/C++

In this curriculum one programming topic is typically followed by one networking topic.

  1. OS Setup and Virtualization Comparison between VMWare, VirtualBox, Xen. Basic principles on how to install and do initial configuration of various OS distributives, e.g. Kubuntu desktop, Ubuntu server, Zenwalk, FreeBSD UNIX on hardware or virtual machines. (These skills are used throughout the course to set up "clean" environments for further trainings and to become familiar with basic OS concepts.)
  2. Networking basics: How to detect your networking parameters, how to set up networking infrastructure. Overview of various networking layers (OSI Model and TCP/IP Model). Network debugging utilities - tcpdump, Wireshark and others. (A practical introduction to TCP/IP Illustrated vol.1?; overview of what has stayed the same and what has changed.)
  3. C/C++ application development: C/C++ programming concepts regarding strings, input/output. Setup of development environment. Compilers and their options on Linux, Makefile's, configuring Eclipse IDE, debugging, core dumps.
  4. Iptables: How to configure the famous filtering utility, and how it affects the behavior of the networking/transport layers.
  5. Events and exceptions Events on the system level, system calls. Sending signals. Exception processing; try/catch syntax in C++. Defensive programming.
  6. More networking protocols: IPv6, SCTP, instant messaging, peer-to-peer software. Networking in relation to multimedia and streams.
  7. Polymorphism in C++: Template classes, function templates, contract-based design and development of data types, STL algorithms.
  8. Application protocols for Web and e-mail, Web/mail servers, Proxying, ICAP: Apache, Squid, adapting HTTP protocol with ICAP. Filtering spam and viruses.
  9. Data structures, collections Standard libraries and approaches to work with data structures, access external data sources.
  10. Networking and security: SSL, HTTPS. Digital sertificates and sertification authorities.
  11. Multithreading: C++ programs with multiple threads. Synchronization issues.
  12. Scripting basics: Testing networking solutions with shell-scripts (bash?), perl, python and tcl/expect. Web system testing with Selenium RC.
Reading List

Izveidojis Kalvis Apsītis 2007-10-24 16:44
This wiki is licensed under a Creative Commons 2.0 license
XWiki Enterprise 6.4 - Documentation