C Programming - Syllabus
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-01This 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-02This 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-03This 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-04This 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-05This 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-06This 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-07This 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-08This 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-01This 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-02This 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-03This 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-04This 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-05This 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-06This 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-07This 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-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.
Key Topics
-
Memory Read
BA-01Memory Read operation involves retrieving data from memory locations. It is a fundamental operation in microprocessor-based systems.
-
Memory Write
BA-02Memory Write operation involves storing data in memory locations. It is a crucial operation in microprocessor-based systems.
-
I/O Read
BA-03I/O Read operation involves retrieving data from input/output devices. It enables the microprocessor to interact with the external environment.
-
I/O Write
BA-04I/O Write operation involves sending data to input/output devices. It enables the microprocessor to interact with the external environment.
-
Direct Memory Access
BA-05Direct Memory Access (DMA) is a technique that allows peripheral devices to access system memory directly, reducing the microprocessor's workload.
-
Interrupt
BA-06An 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-07There are different types of interrupts, including maskable and non-maskable interrupts, which vary in their priority and handling by the microprocessor.
-
Interrupt Masking
BA-08Interrupt 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-09Non-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-10The 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-11Understanding flashback technology, including performing flashback on Container Database (CDB) and Pluggable Database (PDB).
-
Escape Sequences in C
BA-12Using escape sequences in C programming to represent special characters.
-
Preprocessor Directives
BA-13Introduction 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-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.
-
String Handling
AR-9Working with strings in C programming, including operations and functions.
Key Topics
-
Introduction to AWT and Swing
US-1This 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-2This topic covers various layout management techniques including No Layout, Flow layout, Border Layout, Grid Layout, Gridbag Layout, and Group Layout.
-
GUI Controls
US-3This 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-4This 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-5This topic discusses option dialogs, creating dialogs, File Choosers, Color Choosers, Internal Frames, Frames, Tables, Trees, and Tables.
-
Dialog Boxes
US-6Creating and customizing dialog boxes, including option dialogs, file choosers, and color choosers.
-
Components Organizers
US-7Organizing components using Split Panes, Tabbed Panes, Desktop Panes, Internal Frames, and cascading and tiling.
-
Advance Swing Components
US-8Exploring advanced Swing components including List, Trees, Tables, and Progress Bars.
-
Macros
US-9This topic covers the concept of macros in C programming, including how to define and use macros to simplify code.
-
Storage Class
US-10This 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-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.
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.
-
Cookies
ST-8Using Cookies to store and manage user data on the client-side in ASP.NET Core applications.
-
Query Strings
ST-9Using Query Strings to pass data between pages and manage state in ASP.NET Core applications.
-
Hidden Fields
ST-10Using Hidden Fields to store and manage data on the client-side in ASP.NET Core applications.
-
Poetic Devices
ST-11Introducing poetic devices and their application in business communication, including how to use figurative language effectively.
-
Structure vs Union
ST-12Structure vs union, differences and similarities between structures and unions in C programming.
Key Topics
-
Introduction to DBMS
DA-01Introduction 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-02Database 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-03Structured 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-04Database 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-05A 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-06Data 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-07A 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-08Optimizing SQL statements for improved performance. This topic covers techniques for rewriting and tuning SQL code.
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
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.