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 CSIT department. Aligned with the 2074 Syllabus, this course (CSC110) 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 3 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 covers the concepts of structured programming using C

programming language.


Course Objective: This course is designed to familiarize students to the techniques of programming

in C.


Units

Key Topics

  • Problem Analysis
    PR-1.1

    This topic covers the process of analyzing a problem to identify requirements, designing a program, coding, testing, and maintaining software.

  • Algorithms and Flowcharts
    PR-1.2

    This topic introduces algorithms and flowcharts, including symbols, processing statements, condition checks, and direction of flow.

  • Coding, Compilation, and Execution
    PR-1.3

    This topic explains the process of coding, compiling, and executing a program, including the role of compilers and integrated development environments.

  • History of C
    PR-1.4

    This topic provides an overview of the history and development of the C programming language.

  • Structure of a C Program
    PR-1.5

    This topic covers the structure of a C program, including preprocessor directives, header files, and library files.

  • Debugging, Testing, and Documentation
    PR-1.6

    This topic explains the process of debugging, testing, and documenting a program, including compiler, linker, and run-time errors.

Key Topics

  • E-payment System
    EL-1

    Overview of electronic payment systems, including their types and applications in e-commerce.

  • Online Credit Card Transaction
    EL-2

    The process and security measures involved in online credit card transactions.

  • Online Stored Value Payment System
    EL-3

    A payment system that stores value electronically, allowing users to make payments online.

  • Digital and Mobile Wallet
    EL-4

    Electronic wallets that store payment information and allow users to make transactions online or through mobile devices.

  • Smart Cards
    EL-5

    A type of card that stores and processes data, often used for secure online transactions.

  • Social/Mobile Peer-to-Peer Payment Systems
    EL-6

    Payment systems that enable individuals to send and receive payments through social media or mobile devices.

  • Digital Cash/e-cash
    EL-7

    A digital equivalent of physical cash, allowing for anonymous and secure online transactions.

  • E-Checks
    EL-8

    An electronic version of traditional checks, used for online transactions.

  • Virtual Currency
    EL-9

    A digital currency that exists only in electronic form, often used for online transactions.

  • Electronic Billing Presentment and Payment (EBPP) System
    EL-10

    A system that enables customers to receive and pay bills electronically.

  • Auctioning in E-commerce
    EL-11

    Types of auctions used in e-commerce, including English, Dutch, Vickery, and Double auctions.

Key Topics

  • Introduction to E-commerce
    IN-1

    Overview of E-commerce and its significance in the digital age.

  • E-business vs E-commerce
    IN-2

    Understanding the differences between E-business and E-commerce.

  • Features of E-commerce
    IN-3

    Key characteristics and benefits of E-commerce.

  • Pure vs Partial E-commerce
    IN-4

    Types of E-commerce models and their applications.

  • History of E-commerce
    IN-5

    Evolution and development of E-commerce over time.

Key Topics

  • Content-Based Recommendation Systems
    OP-10

    Understanding how content-based recommendation systems work, including feature-based and knowledge-based systems.

  • Use of Recommendation Systems in E-commerce
    OP-11

    Understanding how recommendation systems can be applied in e-commerce to improve customer experience, increase sales, and enhance customer loyalty.

  • Arithmetic Operators
    OP-01

    Arithmetic operators are used to perform mathematical operations such as addition, subtraction, multiplication, and division. They are used to manipulate numerical values in a program.

  • Relational Operators
    OP-02

    Relational operators are used to compare values and determine their relationship. They are used to make decisions in a program based on conditions.

  • Logical or Boolean Operators
    OP-03

    Logical or Boolean operators are used to combine relational expressions and make decisions based on multiple conditions. They are used to control the flow of a program.

  • Assignment Operators
    OP-04

    Assignment operators are used to assign a value to a variable. They are used to store values in variables for later use.

  • Ternary Operators
    OP-05

    Ternary operators are used to make decisions and assign values based on a condition. They are a shorthand for if-else statements.

  • Bitwise Operators
    OP-06

    Bitwise operators are used to perform operations on binary numbers. They are used to manipulate individual bits of a number.

  • Increment or Decrement Operators
    OP-07

    Increment or decrement operators are used to increase or decrease the value of a variable by 1. They are used to count or iterate in a program.

  • Conditional Operators
    OP-08

    Conditional operators are used to make decisions based on conditions. They are used to control the flow of a program.

  • Special Operators
    OP-09

    Special operators are used to perform specific operations such as getting the size of a variable or separating expressions. They are used to perform unique tasks in a program.

Key Topics

  • Nature of Internship
    CO-1

    The internship work should be relevant to the field of computer science and information technology, with a minimum duration of 180 hours or ten weeks.

  • Phases of Internship
    CO-2

    The internship evaluation consists of three phases: Proposal Submission, Mid-Term Submission, and Final Submission.

  • Provision of Supervision
    CO-3

    A regular faculty member of the college is assigned as a supervisor to supervise the students throughout the internship period.

  • Provision of Mentorship
    CO-4

    A regular employee of the intern providing organization is assigned as a mentor to guide the students throughout the internship period.

  • Evaluation Scheme
    CO-5

    The evaluation scheme consists of Proposal Defense, Midterm, and Final Defense, with a total of 200 marks.

Key Topics

  • Architectural Styles
    AR-1

    This topic covers different architectural styles used in designing distributed systems, including their characteristics and trade-offs.

  • Middleware Organization
    AR-2

    This topic explores the organization and design of middleware in distributed systems, including its role in enabling communication and coordination between components.

  • System Architecture
    AR-3

    This topic delves into the overall system architecture of distributed systems, including the relationships and interactions between components and subsystems.

  • Example Architectures
    AR-4

    This topic provides concrete examples of distributed system architectures, illustrating how different architectural styles and middleware organizations are applied in real-world systems.

  • Character Arrays and Strings
    AR-5

    This topic introduces character arrays and strings in C programming, including their declaration and manipulation.

  • Reading and Writing Strings
    AR-6

    This topic explains how to read and write strings in C programming.

  • Null Character
    AR-7

    This topic covers the null character in C programming, including its role in string termination.

  • String Library Functions
    AR-8

    This topic covers the various string library functions in C programming, including string length, string copy, string concatenation, and string comparison.

Key Topics

  • Introduction to Functions
    FU-1

    Definition, domain, and range of functions. Understanding the concept of functions and their representations.

  • Graphs of Functions
    FU-2

    Understanding the graphical representation of functions, including the vertical line test and piecewise defined functions.

  • Types of Functions
    FU-3

    Introduction to common functions including linear, power, polynomial, and rational functions.

  • Combining Functions
    FU-4

    Shifting and scaling graphs, sums, differences, products, and quotients of functions, and composite functions.

  • Graphing with Technology
    FU-5

    Using calculators and computers to plot graphs of functions.

  • Exponential Functions
    FU-6

    Definition, exponential behavior, and exponential growth and decay.

  • Inverse Functions and Logarithms
    FU-7

    Understanding inverse functions and logarithms.

  • Rate of Change and Tangent to Curves
    FU-8

    Understanding the rate of change and tangent to curves.

  • Graphs of Functions
    FU-9

    This topic explores the different types of graphs of functions, including their shapes, maxima, and minima, and how to analyze them.

Key Topics

  • State Management on Stateless HTTP
    ST-1

    Understanding state management in stateless HTTP protocol and its implications on ASP.NET Core application development.

  • Server-side Strategies
    ST-2

    Exploring server-side strategies for state management in ASP.NET Core applications, including Session State, TempData, and Using HttpContext.

  • Session State
    ST-3

    Using Session State to store and manage user data in ASP.NET Core applications.

  • TempData
    ST-4

    Using TempData to store and manage temporary data in ASP.NET Core applications.

  • Using HttpContext
    ST-5

    Using HttpContext to access and manage HTTP request and response data in ASP.NET Core applications.

  • Cache
    ST-6

    Using Cache to store and manage frequently accessed data in ASP.NET Core applications.

  • Client-side Strategies
    ST-7

    Exploring client-side strategies for state management in ASP.NET Core applications, including Cookies, Query Strings, and Hidden Fields.

Key Topics

  • Introduction to Pointers
    PO-01

    Introduction to pointers in C programming, including their importance and basic concepts.

  • Address of (&) and Dereference (*) Operators
    PO-02

    Understanding the use of & and * operators in C programming, including their syntax and examples.

  • Declaring Pointers
    PO-03

    How to declare pointers in C programming, including syntax and best practices.

  • Chain of Pointers
    PO-04

    Understanding the concept of chain of pointers in C programming, including examples and use cases.

  • Pointer Arithmetic
    PO-05

    Performing arithmetic operations on pointers in C programming, including increment, decrement, and more.

  • Pointers and Arrays
    PO-06

    Understanding the relationship between pointers and arrays in C programming, including examples and applications.

  • Pointers and Character Strings
    PO-07

    Working with character strings using pointers in C programming, including examples and best practices.

  • Array of Pointers
    PO-08

    Declaring and working with arrays of pointers in C programming, including examples and use cases.

  • Pointers as Function Arguments
    PO-09

    Passing pointers as arguments to functions in C programming, including syntax and examples.

  • Functions Returning Pointers
    PO-10

    Returning pointers from functions in C programming, including syntax and best practices.

  • Pointers and Structures
    PO-11

    Working with structures using pointers in C programming, including examples and applications.

  • Dynamic Memory Allocation
    PO-12

    Dynamic memory allocation using pointers in C programming, including malloc, calloc, and free functions.

Key Topics

  • File Concept
    FI-1

    Understanding the concept of a file and its importance in C programming.

  • File Operations
    FI-2

    Opening, closing, naming, and basic operations on files in C.

  • File Input/Output
    FI-3

    Reading data from and writing data to a file in C, including functions such as fgetc(), fputc(), fprintf(), and fscanf().

  • Random Access in Files
    FI-4

    Using functions ftell(), fseek(), and rewind() to access and manipulate file pointers in C.

  • Error Handling in Files
    FI-5

    Detecting and handling errors in file operations using feof() and ferror() functions in C.

Key Topics

  • Introduction to E-commerce
    IN-1

    Overview of E-commerce and its significance in the digital age.

  • E-business vs E-commerce
    IN-2

    Understanding the differences between E-business and E-commerce.

  • Features of E-commerce
    IN-3

    Key characteristics and benefits of E-commerce.

Lab works


Details of Laboratory work in C programming

Laboratory Works: This is the first “programming” course in B.Sc.CSIT. It builds the foundation on

how to write a program using any high level language. Hence, this course requires a lot of

programming practice so that students will be able to develop good logic building and program

developing capability which is essential throughout the B.Sc.CSIT course and thereafter. 20% of the

total marks is assigned from the practical. Some important contents that should be included in lab

exercises are as follows:

Unit 1:----2 Hrs.

Create, compile, debug, run and test simple C programs

Unit 2,3,4:----5 Hrs.

Using different data types available in C, perform arithmetic operations in C, perform

formatted input/output operations, perform character input/output operations.

Using relational operator, logical operator, assignment operator, ternary operator, and other

operators. Evaluation of Expression to check operator precedence and associativity.

Unit 5: ----6 Hrs.

Create decision making programs using control statements like; if, if..else, if..else ladder,

nested if, and switch cases.

Create programs using loops (for, while, do while, nested loops) and realize the differences

between entry controlled and exit controlled loops.

Unit 6:----6 Hrs.

Create, manipulate arrays and matrices (single and multi-dimensional), work with pointers,

dynamically allocate/de-allocate storage space during runtime, manipulate strings (character

arrays) using various string handling functions.

Unit 7:----6 Hrs.

Create user-defined functions with/without parameters or return type, create recursive

functions, use function call by value and call by address, work with automatic, global and

static variables.


Unit 8:----5 Hrs.

Create and use simple structures, array of structures, nested structure. Passing structure and

array of structure to function, concept of pointer to structure

Unit 9:----6 Hrs.

Create programs that addresses pointer arithmetic, pointers and arrays, pointer and character

strings, pointers and functions, pointer and structure, and dynamic memory allocation.

Unit 10:----5 Hrs.

Create files that address random access and input/output operations in file, create files to keep

records and manipulation of records etc.

Unit 11:----4 Hrs.

Create graphics program that address some basic functions of graphics.h header file, e.g.

line(), arc(), circle(), ellipse(), floodfill(), getmaxx(), getmaxy() etc.

Note: Motivate students to create small project work integrating all of the above concepts.