Software Engineering - Syllabus
Embark on a profound academic exploration as you delve into the Software Engineering course () within the distinguished Tribhuvan university's CSIT department. Aligned with the 2065 Syllabus, this course (CSC-351) 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.
Units
Key Topics
-
Introduction to Software Engineering
UN-SE-1Defining software and software engineering, and comparing it with other engineering disciplines.
-
System Engineering
UN-SY-2Understanding systems, their properties, and environment, and modeling systems.
-
Software Process
UN-SP-3Exploring software process models, iterations, specification, design, implementation, validation, and evolution.
-
Project Management
UN-PM-4Introducing project management, including management activities, planning, scheduling, and risk management.
Key Topics
-
Lexical Analysis
UN-2.1The process of breaking the source code into a series of tokens. It involves the specification and recognition of tokens, input buffer, and finite automata relevant to compiler construction.
-
Syntax Analysis
UN-2.2The process of analyzing the syntax of the source code. It involves basic parsing techniques, problem of left recursion, left factoring, ambiguous grammar, top-down parsing, bottom-up parsing, and LR parsing.
-
Semantic Analysis
UN-2.3The process of analyzing the meaning of the source code. It involves static and dynamic checks, typical semantic errors, scoping, type checking, syntax directed definitions, and translation.
Key Topics
-
Symbol Table Design
UN-3.1Function of Symbol Table, Information provided by Symbol Table, Attributes and Data Structures for symbol table
-
Run-time Storage Management
UN-3.2Managing storage during runtime
Key Topics
-
Intermediate Code Generation
UN-4.1This topic covers the generation of intermediate code, including high-level and low-level representations, syntax trees, and three-address code. It also discusses the generation of intermediate code for declarations, assignments, control flow, boolean expressions, and procedure calls.
-
Code Generation
UN-4.2This topic explores the factors affecting code generation, including target language, basic blocks, and flow graphs. It also covers dynamic programming code-generation algorithms.
-
Code Optimization
UN-4.3This topic discusses the need and criteria for code optimization, as well as basic optimization techniques to improve code efficiency.
-
Compiler Case Studies
UN-4.4This topic presents case studies of compilers, including C and C++ compilers, to illustrate the application of compiler design principles.
-
Testing the Backup and Recovery Plan
UN-4.5Validating the effectiveness of a backup and recovery strategy through regular testing and simulation exercises.