
Explore how a computer works—from the CPU and RAM to hard disk and operating system—distinguishing programs from data and comparing compiler and interpreter languages.
Explore the fundamentals of C programming, including data types, variables, and operators, and compare programming paradigms from monolithic to modular procedural in practice.
Learn how to craft valid C expressions using precedence and associativity. Apply formulas for area, perimeter, arithmetic progression, and quadratic roots through correct expression syntax.
Master conditional statements and switch cases in C by exploring enums, typedef, relational and logical operators, and practical examples like max of numbers, even/odd checks, and a leap year program.
Learn looping concepts in C using while, do-while, and for loops with practical exercises: print 1-10, multiplication tables, sum of natural numbers, factorial, factors, reverse digits, and Armstrong numbers.
Explore patterns and number problems in C programming, including pyramid patterns, Pascal triangle, strong numbers, prime checks, multiples of three or five, and front-end digit display.
Master array basics in c programming by learning how arrays store multiple elements of the same type in contiguous memory, accessed via zero-based indices and a size defined by subscripts.
Learn the C structure concept: define structs, understand memory layout and size, declare and initialize, and access members with the dot operator through rectangle and card examples.
Explore how pointers enable accessing heap memory, including declaration, initialization, and dereferencing, and learn dynamic memory allocation with malloc and memory management for structures and arrays.
Understand functions as modular units, learn prototypes and declarations, and compare pass by value versus pass by reference, with examples like adding and swapping in C.
Master function parameters in C, including pass by value and pass by reference with pointers and addresses. Explore how arrays and structures can be passed to functions, by reference.
Explore abstract data types, array representation, and capacity concepts; implement append, insert, remove, replace, get, and search operations, including linear and binary search.
Explore time and space complexity, learn to analyze algorithms with big O and order of growth, and compare linear search and binary search to understand logarithmic efficiency.
Learn the basics of strings in C: characters, ASCII codes, arrays of char, end-of-string null terminator, and simple operations such as length, case conversion, and input/output using stdio.
Explore bit manipulation basics with left shift, bitwise and masking, and bitwise or merging, and learn how binary representation and powers of two enable efficient data operations.
Learn three methods to find duplicates in a string, including a hash table counting approach and bit manipulation with ascii offsets, left shifts, and masking, plus time and space analysis.
Explore recursion by defining it, examining base conditions, and tracing function calls, while understanding stack memory, time complexity, and recurrence relations.
Trace recursion with a tree and activation records to visualize calls on the stack, and analyze time and space using recurrence relations and ascending/descending phases.
Demonstrates solving recurrence relations using successive substitution, identifying base conditions, and distinguishing homogeneous from non-homogeneous cases, with three examples and their time complexities.
Learn to solve recurrence relations by forming the characteristic equation and converting to a quadratic. Determine constants A and B from two base conditions, then assess time complexity.
Apply successive substitution to solve three recurrence relations, derive base conditions, and conclude time complexities such as log base two of n and n log base two of n.
Analyze time complexity from recurrence relations and graphs, comparing constant, logarithmic, linear, linear-log, quadratic, and exponential costs to evaluate recursive algorithms.
Explore indirect recursion through step-by-step function calls, activation records, and base conditions, while tracing prints and analyzing time complexity with log base two.
Learn to solve recurrence relations for indirect and nested recursion with successive substitution and tracing in the C programming context, and understand why nested recursion is unstable and discouraged.
Explore tree recursion in C programming by tracing a function that prints values and recurses twice with n-1, examining base conditions, stack frames, and exponential time complexity.
Learn to compute the sum of natural numbers with recursion, including the base case sum(0)=0 and descending calls. Compare recursive, looping, and formula approaches, analyzing time and space complexity.
Explore factorial in C via recursion, using base case 0! = 1 and N! = N multiplied by (N minus 1)!, then compare with a loop.
Explore computing m^n via recursion with base case n=0 and recurrence n-1, multiplying by m. Compare recursive and loop methods and apply divide-and-conquer exponentiation for logarithmic time.
Explore recursion to implement the Taylor series for e^x, building powers and factorials with a base case and summing terms up to n to approximate e^x.
Explore an optimized recursive approach to Taylor series in C, using static variables to reuse powers and factorials, reducing time complexity from the previous method.
Explore recursive evaluation of the Taylor series for e^x, then apply optimization method 2 to reduce multiplications and time complexity, comparing three approaches and highlighting constant space and overall efficiency.
Explore the fibonacci series and its recursive implementation in c, starting from 0 and 1, deriving the fib formula F(n)=F(n-1)+F(n-2) with base cases, and analyzing time complexity and potential optimizations.
the lecture shows optimizing fibonacci series by replacing excessive recursion with memorisation and dynamic programming, and introduces benitz formula as a fast, space-efficient shortcut.
C programming is a general-purpose, procedural, imperative computer programming language developed in 1972 by Dennis M. Ritchie at the Bell Telephone Laboratories to develop the UNIX operating system. C is the most widely used computer language. It keeps fluctuating at number one scale of popularity along with Java programming language, which is also equally popular and most widely used among modern software programmers.