Data Structures and Algorithms - Syllabus
Embark on a profound academic exploration as you delve into the Data Structures and Algorithms course (DSA) within the distinguished Tribhuvan university's CSIT department. Aligned with the 2074 Syllabus, this course (CSC206) 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 includes the basic foundations in of data structures and algorithms. This course
covers concepts of various data structures like stack, queue, list, tree and graph. Additionally,
the course includes idea of sorting and searching.
Course Objectives:
- To introduce data abstraction and data representation in memory
- To describe, design and use of elementary data structures such as stack, queue, linked list, tree and graph
- To discuss decomposition of complex programming problems into manageable sub problems
- To introduce algorithms and their complexity
Units
Key Topics
-
.NET and ASP.NET Frameworks
IN-001Overview of .NET and ASP.NET frameworks including .NET, .NET Core, Mono, ASP.NET Web Forms, ASP.NET MVC, ASP.NET Web API, and ASP.NET Core.
-
.NET Architecture and Design Principles
IN-002Fundamentals of .NET architecture and design principles that guide the development of .NET applications.
-
Compilation and Execution of .NET Applications
IN-003How .NET applications are compiled and executed, including the roles of CLI, MSIL, and CLR.
-
.NET Core in Detail
IN-004In-depth exploration of .NET Core, including its features, benefits, and use cases.
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.
Key Topics
-
Query Processing
QU-1Concept of query processing, including the steps involved in processing a query and the role of the query processor.
-
Query Trees and Heuristics
QU-2Query trees and heuristics for query optimization, including the use of query trees to represent queries and heuristics to guide optimization.
-
Query Execution Plans
QU-3Choice of query execution plans, including the factors that influence the choice of plan and the importance of plan selection.
-
Cost-Based Optimization
QU-4Cost-based optimization, including the use of cost estimates to guide optimization and the role of cost-based optimization in query processing.
-
Measurement of Queueing System Performance
QU-5This topic covers the metrics and methods used to measure the performance of queuing systems, including efficiency, effectiveness, and quality of service.
-
Networks of Queuing Systems
QU-6This topic explores the concept of networks of queuing systems, with a focus on computer systems and their applications.
Key Topics
-
Relational Database Design Using ER-to-Relational Mapping
RE-1Learn how to design relational databases using ER-to-relational mapping, including mapping of regular entities, weak entities, relationship types, multivalued attributes, and N-ary relationships.
-
Informal Design Guidelines for Relational Schemas
RE-2Understand informal design guidelines for relational schemas, including semantics of attributes in relations, redundant information in tuples and update anomalies, NULL values in tuples, and generation of spurious tuples.
-
Functional Dependencies
RE-3Study functional dependencies, including definition, inference rules, Armstrong's axioms, attribute closure, equivalence of functional dependencies, and minimal sets of functional dependencies.
-
Normal Forms Based on Primary Keys
RE-4Explore normal forms based on primary keys, including First Normal Form, Second Normal Form, Third Normal Form, and their general definitions.
-
Boyce-Codd Normal Form
RE-5Learn about Boyce-Codd Normal Form, a higher normal form that ensures a relational schema is in a good structure.
-
Multivalued Dependency and Fourth Normal Form
RE-6Understand multivalued dependency and Fourth Normal Form, which eliminates multivalued dependencies in a relational schema.
-
Properties of Relational Decomposition
RE-7Study properties of relational decomposition, including attribute preservation, dependency preservation, and loss-less/non-additive join.
-
Applications of Recursion
RE-8This topic explores the various applications of recursion in problem-solving, including tree traversals and dynamic programming.
-
Efficiency of Recursion
RE-9This topic discusses the efficiency of recursive algorithms, including time and space complexity analysis.
Key Topics
-
History of Linux
LI-1Overview of the development and evolution of the Linux operating system.
-
Kernel Modules
LI-2Understanding kernel modules, their types, and their role in extending Linux kernel functionality.
-
Process Management
LI-3Managing processes in Linux, including process creation, synchronization, and termination.
-
Scheduling
LI-4Linux scheduling algorithms and their role in allocating system resources to processes.
Key Topics
-
Errors in Numerical Calculations
SO-1This topic covers the sources of errors in numerical calculations, propagation of errors, and a review of Taylor's Theorem.
-
Trial and Error Method
SO-2This topic explains the trial and error method for solving non-linear equations, including its convergence.
-
Half-Interval Method
SO-3This topic covers the half-interval method for solving non-linear equations, including its convergence.
-
Newton's Method
SO-4This topic explains Newton's method for solving non-linear equations, including its convergence and application to calculating multiple roots.
Key Topics
-
Challenges and Approach of E-government Security
SE-1This topic covers the challenges faced by e-government in terms of security and the approaches to address them. It explores the importance of security in e-government and the ways to mitigate risks.
-
Security Management Model
SE-2This topic introduces a security management model for e-government, outlining the key components and processes involved in ensuring the security of e-government systems.
-
E-Government Security Architecture
SE-3This topic delves into the architecture of e-government security, including the design and implementation of secure systems and infrastructure for e-government services.
-
Security Standards
SE-4This topic covers the security standards and guidelines for e-government, including international standards and best practices for ensuring the security of e-government systems and data.
-
Data Transaction Security
SE-5Security measures for protecting data during transactions in e-commerce.
Key Topics
-
Introduction to Transaction Processing
TR-1This topic introduces the concept of transaction processing, highlighting the differences between single user and multi-user systems, read/write operations, and the need for concurrency control to avoid problems such as lost update, temporary update, incorrect summary, and unrepeatable read.
-
Transaction and System Concepts
TR-2This topic covers the fundamental concepts of transactions, including transaction states, system log, and commit point of transaction.
-
Desirable Properties of Transactions
TR-3This topic discusses the desirable properties of transactions, namely atomicity, consistency, isolation, and durability (ACID).
-
Schedules and Concurrency Control
TR-4This topic explores schedules, conflicting operations, and characterizing schedules based on recoverability and serializability, including serial, non-serial, and conflict serializable schedules.
-
Concurrency Control Techniques
TR-5This topic introduces concurrency control techniques, including two-phase locking and timestamp ordering.
Lab works
Laboratory Works:
After completing this course, students should have practical knowledge of data structures,
algorithms, and ADTs. The laboratory work includes.
- Writing programs with dynamic memory allocation and de-allocation.
- Writing programs to implement stack operations.
- Writing programs using stack to convert infix expression to postfix/prefix expression and to evaluate postfix/prefix expression.
- Writing programs to implement queue operations for linear, circular, and priority queue.
- Writing recursive programs to implement factorial, Fibonacci sequence, GCD, and Towerof Hanoi algorithms.
- Writing programs to implement list using array and linked list.
- Writing programs for linked list implementation of stack and queue.
- Writing programs to implement sorting, searching and hashing algorithms.
- Writing programs to implement Binary Search Trees and AVL Tress.
- Writing programs to implement searching, spanning tree and shortest path.