C Programming - Syllabus
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.1This topic covers the process of analyzing a problem to identify requirements, designing a program, coding, testing, and maintaining software.
-
Algorithms and Flowcharts
PR-1.2This topic introduces algorithms and flowcharts, including symbols, processing statements, condition checks, and direction of flow.
-
Coding, Compilation, and Execution
PR-1.3This 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.4This topic provides an overview of the history and development of the C programming language.
-
Structure of a C Program
PR-1.5This topic covers the structure of a C program, including preprocessor directives, header files, and library files.
-
Debugging, Testing, and Documentation
PR-1.6This topic explains the process of debugging, testing, and documenting a program, including compiler, linker, and run-time errors.
Key Topics
-
E-payment System
EL-1Overview of electronic payment systems, including their types and applications in e-commerce.
-
Online Credit Card Transaction
EL-2The process and security measures involved in online credit card transactions.
-
Online Stored Value Payment System
EL-3A payment system that stores value electronically, allowing users to make payments online.
-
Digital and Mobile Wallet
EL-4Electronic wallets that store payment information and allow users to make transactions online or through mobile devices.
-
Smart Cards
EL-5A type of card that stores and processes data, often used for secure online transactions.
-
Social/Mobile Peer-to-Peer Payment Systems
EL-6Payment systems that enable individuals to send and receive payments through social media or mobile devices.
-
Digital Cash/e-cash
EL-7A digital equivalent of physical cash, allowing for anonymous and secure online transactions.
-
E-Checks
EL-8An electronic version of traditional checks, used for online transactions.
-
Virtual Currency
EL-9A digital currency that exists only in electronic form, often used for online transactions.
-
Electronic Billing Presentment and Payment (EBPP) System
EL-10A system that enables customers to receive and pay bills electronically.
-
Auctioning in E-commerce
EL-11Types of auctions used in e-commerce, including English, Dutch, Vickery, and Double auctions.
Key Topics
-
Introduction to E-commerce
IN-1Overview of E-commerce and its significance in the digital age.
-
E-business vs E-commerce
IN-2Understanding the differences between E-business and E-commerce.
-
Features of E-commerce
IN-3Key characteristics and benefits of E-commerce.
-
Pure vs Partial E-commerce
IN-4Types of E-commerce models and their applications.
-
History of E-commerce
IN-5Evolution and development of E-commerce over time.
Key Topics
-
Content-Based Recommendation Systems
OP-10Understanding how content-based recommendation systems work, including feature-based and knowledge-based systems.
-
Use of Recommendation Systems in E-commerce
OP-11Understanding how recommendation systems can be applied in e-commerce to improve customer experience, increase sales, and enhance customer loyalty.
-
Arithmetic Operators
OP-01Arithmetic 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-02Relational 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-03Logical 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-04Assignment operators are used to assign a value to a variable. They are used to store values in variables for later use.
-
Ternary Operators
OP-05Ternary operators are used to make decisions and assign values based on a condition. They are a shorthand for if-else statements.
-
Bitwise Operators
OP-06Bitwise operators are used to perform operations on binary numbers. They are used to manipulate individual bits of a number.
-
Increment or Decrement Operators
OP-07Increment 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-08Conditional operators are used to make decisions based on conditions. They are used to control the flow of a program.
-
Special Operators
OP-09Special 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-1The 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-2The internship evaluation consists of three phases: Proposal Submission, Mid-Term Submission, and Final Submission.
-
Provision of Supervision
CO-3A regular faculty member of the college is assigned as a supervisor to supervise the students throughout the internship period.
-
Provision of Mentorship
CO-4A regular employee of the intern providing organization is assigned as a mentor to guide the students throughout the internship period.
-
Evaluation Scheme
CO-5The evaluation scheme consists of Proposal Defense, Midterm, and Final Defense, with a total of 200 marks.
Key Topics
-
Architectural Styles
AR-1This topic covers different architectural styles used in designing distributed systems, including their characteristics and trade-offs.
-
Middleware Organization
AR-2This topic explores the organization and design of middleware in distributed systems, including its role in enabling communication and coordination between components.
-
System Architecture
AR-3This topic delves into the overall system architecture of distributed systems, including the relationships and interactions between components and subsystems.
-
Example Architectures
AR-4This 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-5This topic introduces character arrays and strings in C programming, including their declaration and manipulation.
-
Reading and Writing Strings
AR-6This topic explains how to read and write strings in C programming.
-
Null Character
AR-7This topic covers the null character in C programming, including its role in string termination.
-
String Library Functions
AR-8This 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-1Definition, domain, and range of functions. Understanding the concept of functions and their representations.
-
Graphs of Functions
FU-2Understanding the graphical representation of functions, including the vertical line test and piecewise defined functions.
-
Types of Functions
FU-3Introduction to common functions including linear, power, polynomial, and rational functions.
-
Combining Functions
FU-4Shifting and scaling graphs, sums, differences, products, and quotients of functions, and composite functions.
-
Graphing with Technology
FU-5Using calculators and computers to plot graphs of functions.
-
Exponential Functions
FU-6Definition, exponential behavior, and exponential growth and decay.
-
Inverse Functions and Logarithms
FU-7Understanding inverse functions and logarithms.
-
Rate of Change and Tangent to Curves
FU-8Understanding the rate of change and tangent to curves.
-
Graphs of Functions
FU-9This 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-1Understanding state management in stateless HTTP protocol and its implications on ASP.NET Core application development.
-
Server-side Strategies
ST-2Exploring server-side strategies for state management in ASP.NET Core applications, including Session State, TempData, and Using HttpContext.
-
Session State
ST-3Using Session State to store and manage user data in ASP.NET Core applications.
-
TempData
ST-4Using TempData to store and manage temporary data in ASP.NET Core applications.
-
Using HttpContext
ST-5Using HttpContext to access and manage HTTP request and response data in ASP.NET Core applications.
-
Cache
ST-6Using Cache to store and manage frequently accessed data in ASP.NET Core applications.
-
Client-side Strategies
ST-7Exploring client-side strategies for state management in ASP.NET Core applications, including Cookies, Query Strings, and Hidden Fields.
Key Topics
-
Introduction to Pointers
PO-01Introduction to pointers in C programming, including their importance and basic concepts.
-
Address of (&) and Dereference (*) Operators
PO-02Understanding the use of & and * operators in C programming, including their syntax and examples.
-
Declaring Pointers
PO-03How to declare pointers in C programming, including syntax and best practices.
-
Chain of Pointers
PO-04Understanding the concept of chain of pointers in C programming, including examples and use cases.
-
Pointer Arithmetic
PO-05Performing arithmetic operations on pointers in C programming, including increment, decrement, and more.
-
Pointers and Arrays
PO-06Understanding the relationship between pointers and arrays in C programming, including examples and applications.
-
Pointers and Character Strings
PO-07Working with character strings using pointers in C programming, including examples and best practices.
-
Array of Pointers
PO-08Declaring and working with arrays of pointers in C programming, including examples and use cases.
-
Pointers as Function Arguments
PO-09Passing pointers as arguments to functions in C programming, including syntax and examples.
-
Functions Returning Pointers
PO-10Returning pointers from functions in C programming, including syntax and best practices.
-
Pointers and Structures
PO-11Working with structures using pointers in C programming, including examples and applications.
-
Dynamic Memory Allocation
PO-12Dynamic memory allocation using pointers in C programming, including malloc, calloc, and free functions.
Key Topics
-
File Concept
FI-1Understanding the concept of a file and its importance in C programming.
-
File Operations
FI-2Opening, closing, naming, and basic operations on files in C.
-
File Input/Output
FI-3Reading data from and writing data to a file in C, including functions such as fgetc(), fputc(), fprintf(), and fscanf().
-
Random Access in Files
FI-4Using functions ftell(), fseek(), and rewind() to access and manipulate file pointers in C.
-
Error Handling in Files
FI-5Detecting and handling errors in file operations using feof() and ferror() functions in C.
Key Topics
-
Introduction to E-commerce
IN-1Overview of E-commerce and its significance in the digital age.
-
E-business vs E-commerce
IN-2Understanding the differences between E-business and E-commerce.
-
Features of E-commerce
IN-3Key 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.