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.

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.

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.

Key Topics

  • Memory Read
    BA-01

    Memory Read operation involves retrieving data from memory locations. It is a fundamental operation in microprocessor-based systems.

  • Memory Write
    BA-02

    Memory Write operation involves storing data in memory locations. It is a crucial operation in microprocessor-based systems.

  • I/O Read
    BA-03

    I/O Read operation involves retrieving data from input/output devices. It enables the microprocessor to interact with the external environment.

  • I/O Write
    BA-04

    I/O Write operation involves sending data to input/output devices. It enables the microprocessor to interact with the external environment.

  • Direct Memory Access
    BA-05

    Direct Memory Access (DMA) is a technique that allows peripheral devices to access system memory directly, reducing the microprocessor's workload.

  • Interrupt
    BA-06

    An interrupt is a signal to the microprocessor that an event has occurred, requiring immediate attention. It enables the microprocessor to handle asynchronous events.

  • Types of Interrupts
    BA-07

    There are different types of interrupts, including maskable and non-maskable interrupts, which vary in their priority and handling by the microprocessor.

  • Interrupt Masking
    BA-08

    Interrupt Masking is a technique that enables the microprocessor to temporarily ignore or mask interrupts, allowing it to focus on high-priority tasks.

  • Non-Overlapping Lists
    BA-09

    Non-overlapping lists are used in some retrieval models to improve the efficiency of retrieval by reducing the number of documents to be ranked.

  • Proximal Nodes Mode
    BA-10

    The proximal nodes mode is a retrieval model that uses the proximity of terms in a document to improve the retrieval of relevant documents.

  • Performing CDB and PDB Flashback
    BA-11

    Understanding flashback technology, including performing flashback on Container Database (CDB) and Pluggable Database (PDB).

  • Escape Sequences in C
    BA-12

    Using escape sequences in C programming to represent special characters.

  • Preprocessor Directives
    BA-13

    Introduction to preprocessor directives in C, including #include, #define, and #ifdef.

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. 

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.

  • String Handling
    AR-9

    Working with strings in C programming, including operations and functions.

Key Topics

  • Introduction to AWT and Swing
    US-1

    This topic introduces the concept of AWT, compares AWT with Swing, and covers Java Applets, Applet Life Cycle, Swing Class Hierarchy, and Component and Containers.

  • Layout Management
    US-2

    This topic covers various layout management techniques including No Layout, Flow layout, Border Layout, Grid Layout, Gridbag Layout, and Group Layout.

  • GUI Controls
    US-3

    This topic explores various GUI controls such as Text Fields, Password Fields, Text Areas, Scroll Pane, Labels, Check Boxes, Radio Buttons, Borders, Combo Boxes, and Sliders.

  • Menu and Toolbar Management
    US-4

    This topic covers menu and toolbar management including Menu, Menu Item, Icons in Menu Items, Check Box and Radio Buttons in Menu Items, Pop-up Menus, Keyboard Mnemonics and Accelerators, Enabling and Disabling Menu Items, and Toolbars.

  • Option Dialogs and Frames
    US-5

    This topic discusses option dialogs, creating dialogs, File Choosers, Color Choosers, Internal Frames, Frames, Tables, Trees, and Tables.

  • Dialog Boxes
    US-6

    Creating and customizing dialog boxes, including option dialogs, file choosers, and color choosers.

  • Components Organizers
    US-7

    Organizing components using Split Panes, Tabbed Panes, Desktop Panes, Internal Frames, and cascading and tiling.

  • Advance Swing Components
    US-8

    Exploring advanced Swing components including List, Trees, Tables, and Progress Bars.

  • Macros
    US-9

    This topic covers the concept of macros in C programming, including how to define and use macros to simplify code.

  • Storage Class
    US-10

    This topic explains the concept of storage class in C programming, including the different types of storage classes and their use cases.

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.

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.

  • Cookies
    ST-8

    Using Cookies to store and manage user data on the client-side in ASP.NET Core applications.

  • Query Strings
    ST-9

    Using Query Strings to pass data between pages and manage state in ASP.NET Core applications.

  • Hidden Fields
    ST-10

    Using Hidden Fields to store and manage data on the client-side in ASP.NET Core applications.

  • Poetic Devices
    ST-11

    Introducing poetic devices and their application in business communication, including how to use figurative language effectively.

  • Structure vs Union
    ST-12

    Structure vs union, differences and similarities between structures and unions in C programming.

Key Topics

  • Introduction to DBMS
    DA-01

    Introduction to Database Management Systems (DBMS), including its definition, importance, and evolution. This topic covers the basics of DBMS and its role in managing data.

  • Database Models
    DA-02

    Database models refer to the conceptual representation of data organization and structure. This topic covers different database models such as hierarchical, network, and relational models.

  • SQL
    DA-03

    Structured Query Language (SQL) is a standard language for managing relational databases. This topic covers the basics of SQL, including data definition, data manipulation, and data control languages.

  • Database Design and Data Security
    DA-04

    Database design involves designing an efficient and secure database system. This topic covers database design principles, data security threats, and security measures to protect databases.

  • Data Warehouse
    DA-05

    A data warehouse is a centralized repository that stores data from various sources. This topic covers the concept of data warehousing, its architecture, and its applications.

  • Data Mining
    DA-06

    Data mining involves extracting useful patterns and knowledge from large datasets. This topic covers data mining techniques, including data preprocessing, pattern evaluation, and knowledge representation.

  • Database Administrator
    DA-07

    A database administrator (DBA) is responsible for designing, implementing, and maintaining a database system. This topic covers the roles and responsibilities of a DBA, including database performance tuning and troubleshooting.

  • Tuning SQL
    DA-08

    Optimizing SQL statements for improved performance. This topic covers techniques for rewriting and tuning SQL code.

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

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.