C Programming - Syllabus

Course Overview and Structure

Embark on a profound academic exploration as you delve into the C Programming course (C) within the distinguished Tribhuvan university's BCA department. Aligned with the BCA Curriculum, this course (CACS151) seamlessly merges theoretical frameworks with practical sessions, ensuring a comprehensive understanding of the subject. Rigorous assessment based on a 60 + 20 + 20 marks system, coupled with a challenging passing threshold of , propels students to strive for excellence, fostering a deeper grasp of the course content.

This 4 credit-hour journey unfolds as a holistic learning experience, bridging theory and application. Beyond theoretical comprehension, students actively engage in practical sessions, acquiring valuable skills for real-world scenarios. Immerse yourself in this well-structured course, where each element, from the course description to interactive sessions, is meticulously crafted to shape a well-rounded and insightful academic experience.


Course Description

This course includes both theoretical as well as practical concept of programming. Practical skill of programming are provided using C language which includes basic concept of C, operators and expressions, basic input/output function, control structures, array & string, function, pointer, structure and union, file handling and graphics in C.

Course Objectives

The general objectives of this course are to provide fundamental concepts of programming. language, programming technique and program development using C programming language.

Units

Key Topics

  • Introduction to Programming Language
    PR-01

    This topic introduces the concept of programming languages, their importance, and brief history. It sets the foundation for understanding the basics of programming.

  • Types of Programming Language
    PR-02

    This topic covers the different types of programming languages, including procedural, object-oriented, functional, and scripting languages. It explains the characteristics and uses of each type.

  • Language Processor
    PR-03

    This topic explains the role of a language processor, including compilers, interpreters, and assemblers. It discusses how they translate source code into machine code.

  • Program Errors
    PR-04

    This topic discusses the different types of program errors, including syntax, runtime, and logical errors. It explains how to identify, debug, and fix errors.

  • Features of Good Program
    PR-05

    This topic outlines the characteristics of a good program, including readability, maintainability, efficiency, and reliability. It provides guidelines for writing good programs.

  • Different Programming Paradigm
    PR-06

    This topic explores different programming paradigms, including procedural, object-oriented, functional, and declarative programming. It explains the principles and applications of each paradigm.

  • Software Development Life Cycle
    PR-07

    This topic covers the stages involved in the software development life cycle, including planning, analysis, design, implementation, testing, and maintenance. It explains the importance of each stage.

  • System Design Tools
    PR-08

    This topic introduces various system design tools, including flowcharts, data flow diagrams, and UML diagrams. It explains how to use these tools to design and develop software systems.

Introduction to Programming Technique, Top down & Bottom up Approach, Cohesion and Coupling, Structured Programming, Deterministic and Non-deterministic Technique, Iterative and Recursive Logic, Modular Designing & Programming.

Input/Output Operation, Formatted  I/O (scanf, printf), Unformatted I/O (getchputch, getche, getchar-putchar and gets-puts)

Introduction, History, Features, Advantages and Disadvantages, Structure of C program, C Preprocessor and Header Files, Library Function, Character Set, Comments, Tokens and its types, Data types, Escape Sequences, Prepocessors Directives.

Arithmetic Operator, Relational Operator, Logical Operator, Assignment Operator, Increment/decrement Operator, Conditional Operator, Bitwise Operator, Comma Operator, Size of Operator, Operator Precedence and Associativity, Expressions and its Evaluation, Type Casting in Expression, Program Statement. 

Introduction, Types of Control Structure(Branching: if, if else, if elseif and switch case, Looping: while, do while and for and Jumping: goto, break and continue),Nested Control Structure.

Introduction, Declaration, Initialization, One Dimentional Array, Multi Dimentional Array, Sorting(Bubble, Selection) Searching Sequential, String Handling.

Introduction, Components, Function Parameters, Library function vs. Users Defined Function, Recursion, Passing Array to Function, Passing String to Function, Accessing a Function(Call By Value & Call By Reference), Macros, Storage Class.

 Introduction, The Adress(&) and Indirection(*) Operators, Declaration & Initialization, Pointer to Pointer, Pointer Expressions, Pointer Arithmetic, Passing Pointer to a Function, Pointer and Array, Array of Pointer, Pointer and String, Dynamic Memory Allocation.

Introduction, Declaration, Initialization, Nested Structure, Array of Structure, Array within Structure, Passing Structure & Array Structure to function, Structure & Pointer, Bit Fields, Union and Its Importance, Structure vs. Union.

Introduction, Types of File, Opening & Closing Data File, Read & Write Function, Writing & Reading Data To and From Data File, Updating Data File, Random Accessing Files, Printing a File.

Intialization, Graphical Mode, Graphical Functions.

Lab works

Laboratory Works 

Laboratory works should he done covering all the topics listed above and a small project work should be carried out using the concept learnt in this c 'use only. Project should be assigned on individual basis.