C Programming for Telecom Engineers

A 4 week course that helps you in developing your coding skills for the telecom industry

  • Domain : ELECTRONICS
Enroll Now View demo

A Quick Overview

This course will introduce Telecom (LTE/5G) programming in C. This specialization is a mix of theory and practice. This course develops strong programming skills for learners who want to develop telecom industry level projects and solve complex telecom problems by writing computer programs, optimizing and debugging them. Through the course, you will learn to develop algorithms, Data Structures, bug fixing, and debugging systematically. It has video lectures to introduce the concept of programming with various online demos. The video will switch between the presentation slides and the actual coding process. There are weekly assignments along with 3 mini projects and a major project to ensure that the students can practice what they learned from the presentation.

This course is mainly designed to:

  • Develop and debug industry level telecom projects based on LTE and 5G.
  • Create awareness of typical programming errors while developing complex modules.
  • Tips to avoid these programming errors
  • Various tricks to tune your modules for better performance and to develop various development and debugging skills

GET COURSE COUNSELLING TODAY

Get a 1-on-1 demo to understand what is included in the course and how it can benefit you from an experienced sales consultant. The demo session will help you enroll in this course with a clear vision and confidence.

Request a Demo Session

COURSE SYLLABUS

1 Linux basics, Vi Editor Basics & C Basics

Linux Basics
 -Linux Introduction
 -Linux Kernel
 -Linux basic commands
 Download & Install Linux in Windows
 
Vi Editor
 -Vi Editor introduction(vim)
 -Vim commands
 -C code execution using GCC

 C Basics
 -C Variables
 -C Data Types
 -C program memory layout
 -Storage Class
 -Auto, Static, Extern, Register
 -Local vs Global
 -Local vs Static
 -Static variable use in Telecom
 -Input & Output in C
 -Operators in C
 
Conditional statement
  -If-else
  -Nested if-else

Looping
  -for, while, do-while loop
  -Break, continue

Switch case
Switch-case usage in Telecom
Functions & Recursion
 
 

2Bits Manipulations, Preprocessors, Macro, Structures & Union

Bit Manipulations
 -Basic bits operations
 -Hexadecimal & Binary
 -Basic operations in LTE
 -Basic practices
 -Bitwise uses in LTE code

Preprocessors & Macros in C
 -Preprocessors
 -Preprocessors usage in LTE
 -Macro & Macro types

Structures in C
 -Structure syntax, definition and examples
 -typedef
 -Array of structures
 -Why structs in Telecom LTE?
 -Structure Padding & avoiding
 -Bit Fields with DCI example

Union in C
 -Union syntax, examples
 -Use of Union in LTE

Structure Vs Union
Enum in C
Enum in LTE example

3Array, String, Pointer, Data Structures, Memory operations & C Advanced

-Array in C
-String in C
-About, declaration, initialization & input/output
-Passing to a function
-C String functions


Pointers
 -Pointers & Changing Value Pointed by Pointers
 -How pointer works in C?
 -Double Pointer
 -Dereferencing a double pointer


Pointers and Arrays
Passing array to a function
Pointers and Multidimensional Arrays
String and pointers
Structure Pointer
Function Pointer


Linked List, Stack & Queue
Linked List in C
Why Linked List in LTE?
Linked List limitations, Declaration & Example

Linked List Types
 -Singly Linked List
 -Doubly Linked List
 -Singly Circular Linked List
 -Doubly Circular Linked List

Stack
Queue


Multithreading, Process & Synchronization
-Multithreading
-Threads properties & Features
-Thread APIs
-Thread Synchronization issues
-Mutex
-Fork and Process
-Zombie & Orphan processes
-Process Vs Threads

File Management & Signal Handling
Files in C
 -What is a File?
 -Why Files are needed?
 -File Operations
 -Modes of Files
-Signal Handlers in C

4Multi files, Makefile, Socket Programming, Debugging & Agile Scrum

Multi files in C
Compilation of Multifiles
Makefile
Makefile Example
Example code walkthrough


Socket Programming in C
 -Socket in C
  -Socket Creation
  -Initialization of server
  -Bind & Listen
  -Accept & Communication
  -Connect & Close
 - Connection flow
  -Example code

Debugging using GDB
 -GDB Introduction
 -Using GDB
 -Breakpoint and Delete
 -GDB commands
 -Crash debugging

Agile Scrum
 -SDLC Introduction
 -Waterfall Model
 -Agile Methodology

 SCRUM
  -Scrum
  -Scrum Team
  -Scrum Workflow
  -Burn Down Chart
 
 Development of MAC Scheduler example using Agile 
 
 


Projects Overview

Project 1

Highlights

A project based on basic telecom platform to create a framework which will be used as platform in telecom software to perform basic calculations with basic functionalities.

Key Highlights:

  • Understanding the common platform to be used in telecom software
  • Support all the basic operations and validate the input.
  • Operations to support [Add, Multiply, Increment, Modulus, Right/left shift, power, AND, OR, Count no of bits
  • there should be a function to keep track of the KPIs with last executed operation and total no of operations performed and print with choice. [Used as KPI purpose]

Deliverables:

  • Inputs required:
  • 1. Enter an operation: choice 1 for addition, 2 for right shift and so on...
  • 2. Input: 1 (Addition)
  • 3. Enter two values: 5 8

 

  • Output:
  • Output: 13
  • KPI:
    • Last operation performed is Addition
    • Total no of operations = 1
    • [Go back to step 1 in Inputs required]

 

 

Project 2

Highlights

The project is in C to simulate RLC PDU Decoder with two main functionality of Data generation and PDU decode. Data generator function will take input buffer infinitely from user as a hex dump and send to other function (PDU Decoder) to decode the data

Key Highlights:

  • For Input, create a static buffer of 2D char array and store all the test cases. 
  • PDU Decoder function will decode the PDU and display the content. 
  • Put a switch of every byte decoded and based on the value.
  • Print the actual meaning of that field.

Deliverables:

Inputs required:

Test CASES:

88 06 06 20 06 03 41 39 40 5A D9 80 18 3A 

OUTPUT:

D/C:1 Data PDU

RF:0 AMD PDU

P:0 Polling not Requested

FI:01 First byte of the Data field corresponds to the first byte of a RLC SDU

      Last byte of the Data field does not correspond to the last byte of a RLC SDU.

E:0 Data field follows from the octet following the fixed part of the header

Sequence Number: 6

<<<<<<<<<<<< DECODE SUCCESSFUL !! >>>>>>>>>>>>

Press Enter to decode next PDU from input:

Project 3

Highlights

The Project includes 2 different processes and binaries where one is used to generate data from input buffer and other to decode and print the data.

Key Highlights:

  • Data generator process will take input buffer infinitely from user as a hex dump(static 2D char array defined buffer) and send to other process (PDU Decoder) over socket to decode the data.
  • PDU Decoder process will decode the PDU and display the content and free the buffer.
  • Make the project as robust as you can. 
  • For example: if the decoder occurs some invalid content, then display the error. It should not decode incorrectly.
  • Note: 1. No need to display the actual data in the MAC SDU.
    • 2. Consider Release9 MAC PDU

Deliverables:

  • Inputs required:
  • Test CASES:
  • 06 03 45 00 00 3C

 

OutPUT:

AT DATA GENERATOR:

*****************************************************************

*                                                                                        *

*                                                                                        *

*        WELCOME TO THE LTE MAC PDU DECODER   *

*                                                                                        *

*                                                                                        *

*****************************************************************

 

<<<<<<<<<<<<<<<<<<<<< DATA GENERATOR STARTED >>>>>>>>>>>>>>>>>>>>>>>

 

------------- Buffer generation from the input:--------------

 

------------- Buffer Generated, Now Sending to Decoder -------------



Press Enter to Send Genearetd data to Decoder !!

*****************************************************************

*                                                                                         *

*                                                                                         *

*         WELCOME TO THE LTE MAC PDU DECODER   *

*                                                                                         *

*                                                                                         *

*****************************************************************

 

<<<<<<<<<<<<<<<<<<<<< PDU DECODER STARTED >>>>>>>>>>>>>>>>>>>>>>>

 

-|-|-|-|-|-|-|-MAC Decoder listening-|-|-|-|-|-|-|-

 

Received data from Data generator

Now Calling the decoder

 

<<<<<<<<<<<<<<<<<<<<<<<<<<<< DECODED DATA >>>>>>>>>>>>>>>>>>>>>>>>>>>>>

 

R1:0 Reserved

R2:0 Reserved

E:0 Either a MAC SDU, a MAC control element or padding starts at the next byte

LCID:3 Data for LCID 3

MAC PDU/CE: 45 0 0 3c 

 

<<<<<<<<<<<< DECODE SUCCESSFUL !! >>>>>>>

Project 4

Highlights

A project to simulate LTE MAC Scheduler where main function is responsible for creating two threads named: ‘Cell_Manager’ & ‘MAC_Scheduler’. 

Key Highlights:

Cell_Manager Functionality: 

keypress based Menu:

  • Bring up the cell
  • Bring down the cell
  • Display "CELL IS UP PERFORM FOLLOWING" after cell bringup
  • Attach UE[Add to the UE list and Active UE list]
  • Release UE[Remove from all the lists]
    • Update BO for a particular UE based on UE-ID input
  • Display BO of all UEs
  • Display the Active UE list

Action:

  • Assign with C-RNTI
  • Creates UE Context with a structure with UE-ID, Crnti and RemBO
  • Provides C-RNTI to the UEs [301, 302, 303...]
  • Adds the UE to the Active list [linked list]
  • Also adds UE to the UE list[A list contains all the active and inactive UEs]
  • Updating Buffer Occupancy of a UE based on UE-ID
  • Displaying all the active UEs if requested
  • Display available BOs of all UEs if requested
  • Releases the UE and removes the UE from all the lists

MAC_Scheduler Functionality:

  • First time it will be called after 30 seconds as it will hold to attach few UEs manually in the beginning
  • Then, Called after every 10 secs to do scheduling
  • Pick the next UE from Active list (This list contains UE with BO > 0)
  • Remaining RB to be assumed = 10 and each RB can schedule 1000 Bytes
  • Remove the BOs which is already scheduled and update remaining BO in both the list(UE list & Active UE list)
  • Display remaining BOs of that particular UE after every time getting scheduled.
  • Remove a UE from Active list if it's BO becomes 0
  • Scheduling has to happen in Round Robin fashion where each of the next UE to be scheduled from the list

General:

  • Use multithreading
  • Use Multifiles and separate header files
  • Use Makefile for compilation
  • Use the proper synchronization methods to access the list by different threads to avoid crash
  • Database:
    • A central database will hold the UE context which is used by both the threads based on Mutex for reading and writing purposes.
    • UE-Context {UE-ID; C-RNTI; Remaining BO; Link to next node}
    • Active UE list [UEs with BO>0, a single linked list]

 

  • UE list [All the UEs attached, a single linked list]

 

Deliverables:

********************************************************                              *                                                                                                                       *

*            WELCOME TO THE LTE MAC SCHEDULER                                   *

*                                                                                                                       *

********************************************************

Please Enter Your Name to Start: 

 

Enter the input

 

Press 0 to Bring up the Cell

 

Press 1 to attach a UE

Press 2 to release the UE

Press 3 to update the BO

Press 4 to display the BO of a UE

Press 5 to display all the UEs attached

Press 6 to display the Active UE List

Press 7 to bring down the cell

 


WHO IS THIS COURSE FOR ?


  • You can take this course to apply for any entry level or experienced level LTE development positions. It will give you the overview of the real LTE system and development skills along with strong debugging skill.
  • Any individual who wants to pursue a carrier in Telecom industry and also any experienced who wants to further build their Telecom programming skill to develop and debug LTE/5G projects and take this course and can apply in any wireless communication industry.

SOFTWARE COVERED

Virtual box

VirtualBox is a powerful x86 and AMD64/Intel64 virtualization product for enterprise as well as home use. Not only is VirtualBox an extremely feature-rich, high-performance product for enterprise customers, it is also the only professional solution that is freely available as Open Source Software under the terms of the GNU. This has been used to run Ubuntu OS as a virtual machine as part of the program.

Ubuntu 20.04

Ubuntu is a Linux distribution open-source software operating system. A default installation of Ubuntu contains a wide range of software. This program is based on Ubuntu 20.04 LTS version. Ubuntu 20.04 LTS, codenamed Focal Fossa, is the latest long-term support release and was released on 23 April 2020.

GCC

The GNU Compiler Collection(GCC) includes front ends for C, C++. It is an optimized compiler that is used to compile all the C code and the projects involved in this program.

GDB

GDB, the GNU Project debugger used to debug C programs. It allows users to see what is going on `inside' another program while it executes or what another program was doing when it crashed. It has features like putting breakpoints, printing the value of a variable, stepping inside a function etc.


Flexible Course Fees

Choose the plan that’s right for you

Basic

2 Months Access

$39.81

Per month for 3 months

  • Access Duration : 2 months
  • Mode of Delivery : Online
  • Project Portfolio : Available
  • Certification : Available
  • Email Support : Available
  • Forum Support : Available
Premium

Lifetime Access

$92.89

Per month for 3 months

  • Access Duration : Lifetime
  • Mode of Delivery : Online
  • Project Portfolio : Available
  • Certification : Available
  • Individual Video Support : 12/Month
  • Group Video Support : 12/Month
  • Email Support : Available
  • Forum Support : Available
  • Telephone Support : Available
  • Dedicated Support Engineer : Available

COURSE FEE

Get an edge over your peers by investing in your future.

6 month 0% EMI
Total Course Fee is Rs. 30,000.
Check your 0% EMI Eligibility

GET A CHANCE TO WIN A 10% SCHOLARSHIP FOR THIS COURSE

Take Scholarship Test

Frequently Asked Questions

1Who can take your course?

You can take this course to apply for any entry level or experienced level LTE development positions. It will give you an overview of the real LTE system and development skills along with strong debugging skills. Any individual who wants to pursue a career in Telecom industry and also any experienced who wants to further build their Telecom programming skill to develop and debug LTE/5G projects and take this course and can apply in any wireless communication industry.

2What is included in your course?

This course will introduce Telecom (LTE/5G) programming in C. This specialization is a mix of theory and practice. This course develops strong programming skills for learners who want to develop telecom industry level projects and solve complex telecom problems by writing computer programs, optimizing and debugging them. Through the course, you will learn to develop algorithms, Data Structures, bug fixing, debugging in a systematic way. We will have a video lecture to introduce the concept of programming with various online demos. The video will switch between the presentation slides and the actual coding process. After that we will have weekly assignments as mini projects to ensure that the students are able to practice what they learned from the presentation.

3What will the student gain from your course?

This course is mainly designed to:

  • Develop and debug industry level telecom projects based on LTE and 5G.
  • Create awareness on typical programming errors while developing complex modules.
  • Tips to avoid these programming errors
  • Various tricks to tune your modules for better performance and to develop various development and debugging skills

4What software skills are you teaching and how well are these tools used in the industry?

By the end of this course, you will understand the Telecom programming fundamentals in C, and make yourself more competent and marketable for entry level LTE/5G development positions. You will truly understand the core language that most modern telecom projects are based on.

If you have previously used the C programming language, then this course will deepen your understanding of it and give you a feel of doing telecom-based industry level coding. If you have never used it, no problem, you will see that it also includes the fundamentals of C at the beginning of the course and eventually it will help you become a more efficient Telecom C developer.

5What is the real world application for the tools and techniques will you teach in this course?

This course is designed to create strong programming skills which are used in the development and debugging of industry level telecom projects. This will help in solving complex and deep issues which occur in real time LTE/5G projects and stacks. This course also helps in building the technique to optimize the code and make them efficient to run on a real platform/hardware.

6How is this course going to help me get a job?

There are 4 projects that have been included in this module, 3 minors and 1 major. The projects have been designed based on the real telecom (LTE/5G) industry standard projects. The minor projects are to be completed at the end of every week and the major project at the end of the course. You'll need to successfully finish the projects to complete the Specialization. This will prepare you to pursue a career in Telecom software development or other Networking/computational fields. By the end of this course, you will understand the basic and the real LTE system development skills along with strong debugging skills and make yourself more marketable for entry level LTE development positions.


SKILL LYNC WORKS TO GET YOU A JOB

See all

Certification

  • Top 5% of the class will get a merit certificate
  • Course completion certificates will be provided to all students
  • Build a professional portfolio
  • Automatically link your technical projects
  • E-verified profile that can be shared on LinkedIn

Testimonials

Companies hire from us

See all

The Skill-Lync Advantage

See all