Introduction to C Programming

Course Outline Outline
Reading Material
PowerPoint Slides intro.pptx
DayLabSharing
1
  • Overview of C Programming
  • Data Types and Variables
  • Operators and Expressions
  • Control Flow Statements
  • Functions
  • Arrays
  • Pointers
  • Structures
  • Input/Output
  • Preprocessor Directives
  • Introduction to Data Types
  • Primitive Data Types
  • Declaring Variables
  • Naming Variables
  • Assigning Values to Variables
  • Understanding Variable Scope
  • Working with Strings
  • Working with Arrays
  • Working with Structures
  • Working with Pointers
2
  • Introduction to Operators
  • Arithmetic Operators
  • Relational Operators
  • Logical Operators
  • Bitwise Operators
  • Assignment Operators
  • Increment and Decrement Operators
  • Conditional Operators
  • Precedence of Operators
  • Type Conversion in Expressions
  • Evaluating Expressions
  • Operator Precedence and Associativity
  • Expressions and Statements
  • Writing Simple C Programs using Operators and Expressions
  • Understanding the if-else Statement
  • Working with the switch Statement
  • Using the for Loop
  • Exploring the while and do-while Loops
  • Working with the break and continue Statements
  • Understanding the goto Statement
  • Working with Logical Operators
  • Using Conditional Operators
  • Writing Nested Control Flow Statements
  • Debugging Control Flow Statements
  • Understanding the Basics of Functions
  • Writing and Calling Functions
  • Passing Arguments to Functions
  • Returning Values from Functions
  • Scope of Variables in Functions
  • Recursive Functions
  • Function Pointers
  • Preprocessor Directives for Functions
3
  • Introduction to Arrays
  • Declaring and Initializing Arrays
  • Accessing Array Elements
  • Array Operations
  • Multi-dimensional Arrays
  • Array Sorting
  • Array Searching
  • Array Manipulation
  • Array Pointers
  • Array Applications
  • What is a Pointer?
  • Memory Allocation and Pointers
  • Pointer Arithmetic
  • Pointers and Arrays
  • Pointers and Strings
  • Pointers and Structures
  • Pointers and Functions
  • Dynamic Memory Allocation
  • Pointer to Pointer
  • Pointers and Linked Lists
  • Overview of Structures and Unions
  • Declaring and Initializing Structures and Unions
  • Accessing Structure and Union Members
  • Nesting Structures and Unions
  • Pointers to Structures and Unions
  • Array of Structures and Unions
  • Bit Fields in Structures and Unions
  • Unions vs Structures
  • Applications of Structures and Unions
  • Understanding Input/Output Streams
  • Working with Files
  • Reading and Writing Text Files
  • Working with Binary Files
  • Understanding Standard Input/Output Streams
  • Working with Formatted Input/Output
  • Understanding Error Handling
  • Working with Command Line Arguments
  • Understanding File System Operations
  • Working with Directories
4
  • Overview of Dynamic Memory Allocation
  • Allocating Memory with malloc()
  • Releasing Memory with free()
  • Working with Pointers and Dynamic Memory Allocation
  • Memory Leaks and How to Avoid Them
  • Dynamic Arrays and Structures
  • Memory Fragmentation and How to Avoid It
  • Dynamic Memory Allocation in Multithreaded Applications
  • Dynamic Memory Allocation Performance Considerations
  • Best Practices for Dynamic Memory Allocation
  • What is a Preprocessor Directive?
  • Understanding the #include Directive
  • Exploring the #define Directive
  • Working with the #ifdef Directive
  • Utilizing the #pragma Directive
  • Using the #error Directive
  • Exploring the #undef Directive
  • Working with the #ifndef Directive
  • Understanding the #line Directive
  • Utilizing the #warning Directive
  • Understanding Error Messages
  • Debugging Techniques
  • Exception Handling
  • Error Prevention Strategies
  • Common Error Types
  • Error Logging
  • Error Recovery
  • Error Handling Best Practices
  • Error Handling in C
  • Multi-Threading
  • Network Programming
  • Advanced Debugging Techniques
  • Advanced Compiler Optimization
  • Advanced Data Structures
  • Advanced Algorithms
  • Advanced Memory Management
  • Advanced Linked Lists
  • Advanced Sorting Algorithms
  • Advanced Search Algorithms
  • Advanced Graph Algorithms
  • Advanced String Manipulation
  • Advanced Recursion

Recommanded Books
TitleC How to Program (9th Ed)
ISBN978-0-137-39839-3
AuthorDeitel Paul, Deitel Harvey
Year2023
Publisher Deitel
TitleModern C for Absolute Beginners: A Friendly Introduction to the C Programming Language
ISBN979-8-868-80223-2
AuthorSlobodan Dmitrović
Year2024
Publisher Apress
TitleProgramming In C: A Step-by-Step Guide to Programming in C Master the Fundamentals and Unlock Your Coding Potential Today
ISBNB0CW1G2CMR
AuthorT. Kishor
Year2024
Publisher Independently Published
TitleModern C Programming: Including Standards C99, C11, C17, C23
ISBN978-3-031-45360-1
AuthorGazi, Orhan
Year2024
Publisher Springer
TitleLearn C Programming: A beginner’s guide to learning the most powerful and general-purpose programming language with ease
ISBN978-1-801-07845-0
AuthorJeff Szuhay
Year2022
Publisher Packt Publishing
TitleLet Us C: Authentic guide to C programming language
ISBN978-9-355-51276-5
AuthorYashavant Kanetkar
Year2022
Publisher BPB Publications
TitleFluent C: Principles, Practices, and Patterns
ISBN978-1-492-09733-4
AuthorChristopher Preschern
Year2022
Publisher O'Reilly Media
TitlePointers in C Programming: A Modern Approach to Memory Management, Recursive Data Structures, Strings, and Arrays
ISBN978-1-484-26926-8
AuthorThomas Mailund
Year2021
Publisher Apress
TitlePractical C Programming: Solutions for modern C developers to create efficient and well-structured programs
ISBN978-1-838-64110-8
AuthorB. M. Harwani
Year2020
Publisher Packt
TitleEffective C: An Introduction to Professional C Programming
ISBN978-1-718-50105-8
AuthorRobert C. Seacord
Year2020
Publisher No Starch Press, Inc.
TitleC in a Nutshell The Definitive Reference
ISBN978-1-491-90475-6
AuthorPeter Prinz, Tony Crawford
Year2016
Publisher O’Reilly Media
TitleThe C programming language
ISBN978-0-131-10362-7
AuthorKernighan, Brian W.;Ritchie, Dennis M
Year2016
Publisher Prentice Hall
TitleC Programming Language: A Step by Step Beginner's Guide to Learn C Programming in 7 Days
ISBN978-1-534-67970-2
AuthorDarrel L. Graham
Year2016
Publisher Createspace Independent Publishing Platform
Title21st Century C: C Tips from the New School
ISBN978-1-491-90389-6
AuthorBen Klemens
Year2015
Publisher O'Reilly
TitleC in a Nutshell: A Desktop Quick Reference
ISBN978-0-596-00697-6
AuthorPeter Prinz, Tony Crawford
Year2008
Publisher O'Reilly Media
TitleC Programming: A Modern Approach
ISBN978-0-393-97950-3
AuthorK. N. King
Year2008
Publisher W. W. Norton & Company
TitlePractical C programming
ISBN978-1-565-92306-5
AuthorSteve Oualline
Year1997
Publisher Nutshell handbooks
TitleExpert C Programming: Deep C Secrets
ISBN978-0-131-77429-2
AuthorPeter van der Linden
Year1994
Publisher Prentice Hall
TitleHands-On Network Programming with C: Learn socket programming in C and write secure and optimized network code
ISBN978-1-789-34986-3
AuthorLewis Van Winkle
Year2020
Publisher Packt