The purpose of this course is to introduce to students to the field of programming using C language. The students will be able to enhance their analyzing and problem-solving skills and use the same for writing programs in C.


At the end of this course, the students should be able to:CLO:1. Display basic knowledge of the tools used especially Visual Studio to develop computer programs.CLO:2. Write pseudo code and debug logical errors in C programsCLO:3. Perform small scale C programs using acquired skills, design algorithms and draw flow charts to represent the problem.


Introduction to Computers – Two Lectures

  • Basic Blocks
  • Bits & Bytes Concepts
  • Types of Memories

Number Systems – Two Lectures

  • Binary, Decimal and Hexadecimal Conversions
  • Signed and Unsigned Numbers
  • Number Representations and Ranges
  • ASCII Codes
  • Strings, Integers and Real Numbers

Computer Architecture Basics – Two Lectures

  • Processor, Registers, Memory and ALU
  • Memory
    • Memory Management & Manipulation
    • Program vs. Data Memory
  • Stack vs. Queue

Programming Basics – Two Lectures

  • Types of Programming Languages
  • Programming Errors
  • Program Execution Steps
  • Compiler
    • Interpreter
    • Linker
  • Assembler

Algorithms & Problem Solving – Four Lectures

  • Algorithms
    • Conditional Structures
    • Recursive Structures
  • Flow Diagrams
  • How to Approach Problem Solving

Introduction to C Language and Programming Environment – Four Lectures

  • Data Types
    • Variable Types
    • Variable Scope (Local vs. Global Variables)
  • Basic I / O, Constants, Variables, Arithmetic Operators , Escape Sequence
  • Introduction to Visual C++ environment
  • Relational Operators, Logical Operators and Expressions
    • Logical, Bitwise and Unary Operators
    • Typecasting
  • Precedence
  • Commenting

Control Structures I (selection) – Two Lectures

  • Selection: if statements
  • Switch statements

Control Structures II (selection) – Two Lectures

  • while, for, do-while loops
  • Nested control structures.

User-Defined Functions & Header Files – Two Lectures

  • Definition, Arguments, Returning a value
  • Scope rules
  • Call by value, Call by reference
  • Inline Functions
  • Macros
  • Header Files

Arrays and Strings – Two Lectures

  • Declaration, Initialization, Accessing and processing one-Dimensional Array
  • 1-D Array Applications
  • Searching, Multidimensional Arrays
  • User-Defined Simple Data Types, Namespaces, and string Type
  • Enumeration Type, Namespaces, and string operations

Pointers – Two Lectures

Declaring, Dereferencing, Initializing Pointer variables

  • Functions and Pointers
  • Pointer Expressions and Arithmetic

Structures Two Lectures


  • Accessing, Assignment, Comparison
  • I/O, Arrays versus Structs, Structs in Arrays

Input/Output Streams – Two Lectures

  • I/O streams
  • Output formatting