NP URI: www.nobleprog.co.ke/cc/advancedc Undefined array key 0 /apps/hitra7/npfrontend/nptemplates/default.php:137 Array ( [0] => Array ( [file] => /apps/hitra7/npfrontend/nptemplates/default.php [line] => 137 [function] => {closure:/apps/hitra7/npfrontend/index.php:5} [args] => Array ( [0] => 2 [1] => Undefined array key 0 [2] => /apps/hitra7/npfrontend/nptemplates/default.php [3] => 137 ) ) [1] => Array ( [file] => /apps/hitra7/npfrontend/modules/course/course.php [line] => 141 [args] => Array ( [0] => /apps/hitra7/npfrontend/nptemplates/default.php ) [function] => require_once ) [2] => Array ( [file] => /apps/hitra7/npfrontend/core/routes.php [line] => 16 [function] => course_menu_callback [args] => Array ( [0] => /cc/advancedc ) ) [3] => Array ( [file] => /apps/hitra7/npfrontend/__index.php [line] => 94 [args] => Array ( [0] => /apps/hitra7/npfrontend/core/routes.php ) [function] => require_once ) [4] => Array ( [file] => /apps/hitra7/npfrontend/index.php [line] => 17 [args] => Array ( [0] => /apps/hitra7/npfrontend/__index.php ) [function] => include_once ) [5] => Array ( [file] => /apps/hitra7/index.php [line] => 65 [args] => Array ( [0] => /apps/hitra7/npfrontend/index.php ) [function] => include_once ) ) NP URI: www.nobleprog.co.ke/cc/advancedc Undefined array key 1 /apps/hitra7/npfrontend/nptemplates/default.php:137 Array ( [0] => Array ( [file] => /apps/hitra7/npfrontend/nptemplates/default.php [line] => 137 [function] => {closure:/apps/hitra7/npfrontend/index.php:5} [args] => Array ( [0] => 2 [1] => Undefined array key 1 [2] => /apps/hitra7/npfrontend/nptemplates/default.php [3] => 137 ) ) [1] => Array ( [file] => /apps/hitra7/npfrontend/modules/course/course.php [line] => 141 [args] => Array ( [0] => /apps/hitra7/npfrontend/nptemplates/default.php ) [function] => require_once ) [2] => Array ( [file] => /apps/hitra7/npfrontend/core/routes.php [line] => 16 [function] => course_menu_callback [args] => Array ( [0] => /cc/advancedc ) ) [3] => Array ( [file] => /apps/hitra7/npfrontend/__index.php [line] => 94 [args] => Array ( [0] => /apps/hitra7/npfrontend/core/routes.php ) [function] => require_once ) [4] => Array ( [file] => /apps/hitra7/npfrontend/index.php [line] => 17 [args] => Array ( [0] => /apps/hitra7/npfrontend/__index.php ) [function] => include_once ) [5] => Array ( [file] => /apps/hitra7/index.php [line] => 65 [args] => Array ( [0] => /apps/hitra7/npfrontend/index.php ) [function] => include_once ) ) NP URI: www.nobleprog.co.ke/cc/advancedc Undefined array key 2 /apps/hitra7/npfrontend/nptemplates/default.php:137 Array ( [0] => Array ( [file] => /apps/hitra7/npfrontend/nptemplates/default.php [line] => 137 [function] => {closure:/apps/hitra7/npfrontend/index.php:5} [args] => Array ( [0] => 2 [1] => Undefined array key 2 [2] => /apps/hitra7/npfrontend/nptemplates/default.php [3] => 137 ) ) [1] => Array ( [file] => /apps/hitra7/npfrontend/modules/course/course.php [line] => 141 [args] => Array ( [0] => /apps/hitra7/npfrontend/nptemplates/default.php ) [function] => require_once ) [2] => Array ( [file] => /apps/hitra7/npfrontend/core/routes.php [line] => 16 [function] => course_menu_callback [args] => Array ( [0] => /cc/advancedc ) ) [3] => Array ( [file] => /apps/hitra7/npfrontend/__index.php [line] => 94 [args] => Array ( [0] => /apps/hitra7/npfrontend/core/routes.php ) [function] => require_once ) [4] => Array ( [file] => /apps/hitra7/npfrontend/index.php [line] => 17 [args] => Array ( [0] => /apps/hitra7/npfrontend/__index.php ) [function] => include_once ) [5] => Array ( [file] => /apps/hitra7/index.php [line] => 65 [args] => Array ( [0] => /apps/hitra7/npfrontend/index.php ) [function] => include_once ) )

Course Outline

Introduction

  • Overview of C Features and Applications

Preparing the Development Environment

  • Choosing an IDE
  • Configuring the compiler

Writing a Sample Program

  • Defining the problem
  • Coding according to requirements

Defining the Scope of Variables and Functions

  • Understanding scope, visibility and lifetime
  • Working with storage classes: auto, extern, register, static

Managing Data in a C Program

  • Beyond primitive data types
  • Working with advanced data types: structures, linked lists, etc.
  • Storing different data types in the same memory location

Modifying the Properties of a Variable

  • Beyond type modifiers
  • Working with type qualifiers: constant, volatile, etc.

Manipulating Bits in C

  • Working with data smaller than a byte
  • Working with bit manipulation operators

Controlling the Flow of Your Program

  • Beyond sequencing
  • Using the goto statement

Reading and Writing Data

  • Recap of Input/Output functions
  • Improving output readability

Developing Cross-Platform Code

  • Understanding compiler directives
  • Compiling code conditionally

Enhancing Program Performance

  • Macros vs functions
  • Defining macros to run program fragments

Dynamically Allocating Memory

  • Advantage of using pointers: execution speed
  • Pointers to functions
  • Accessing memory and manipulating the address

Debugging a C Program

  • Advanced techniques for checking, detecting and correcting errors
  • Working with gdb (Gnu Debugger)

Creating a Static Library

  • How a static library is linked into executable file
  • Creating a static library

Creating a Shared Library

  • Static libraries vs shared libraries (dynamic libraries)
  • How a shared library is linked and loaded into memory at runtime
  • Creating a shared library

Abstracting Data in Your Program

  • Overview of interface, specification, and implementation
  • Creating an abstract data type
  • Regression testing an abstract data type

Searching and Sorting Data

  • Searching arrays using linear search, binary search, etc.
  • Sorting arrays usig selection sort, insertion sort, bubble sort

Interprocess Communication and Signals

  • Understanding processes, sockets, and signals
  • Implementing IPC using shared files, shared memory, pipes, message queues, sockets, semaphores, etc.

Making Your C Program Run in Parallel

  • Running different parts of a program concurrently through multithreading
  • Writing a thread

Advanced Networking Programming

  • Recap of TCP, UDP, IP and other dominant protocols
  • Serving multiple ports, surviving abrupt network disruptions, etc.
  • Writing powerful socket APIs

Towards High-Quality Code

  • Peer code review and parallel programming
  • The importance of iterative coding (refactoring)

Summary and Conclusion

Requirements

  • C programming experience

Audience

  • Programmers
  • Developers
 28 Hours

Testimonials (2)

Related Categories