Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

added syllabus for cst 306 and cst 302 #60

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions i/.vite/deps_temp_a5663e60/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"type": "module"
}
6 changes: 6 additions & 0 deletions src/WikiSyllabus/KTU/2019_Scheme/S6/CSE/CST302/SUMMARY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# CST 302 - CD

#### INDEX

- [Syllabus](./Syllabus.md)

74 changes: 74 additions & 0 deletions src/WikiSyllabus/KTU/2019_Scheme/S6/CSE/CST302/Syllabus.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# CST 302 - COMPILER DESIGN

**Category:** PCC
**Lecture:** 3 | **Tutorial:** 1 | **Practical:** 0 | **Credit:** 4
**Year of Introduction:** 2019

## Syllabus

### Module 1 - Introduction to compilers and lexical analysis
- Analysis of the source program
- Analysis and synthesis phases
- Phases of a compiler
- Compiler writing tools
- Bootstrapping
- Lexical Analysis
- Role of Lexical Analyzer
- Input Buffering
- Specification of Tokens
- Recognition of Tokens

### Module 2 - Introduction to Syntax Analysis
- Role of the Syntax Analyzer
- Syntax error handling
- Review of Context-Free Grammars
- Derivation and Parse Trees
- Eliminating Ambiguity
- Basic parsing approaches
- Eliminating left recursion
- Left factoring
- Top-Down Parsing
- Recursive Descent parsing
- Predictive Parsing
- LL(1) Grammars

### Module 3 - Bottom-Up Parsing
- Handle Pruning
- Shift Reduce parsing
- Operator precedence parsing (Concept only)
- LR parsing
- Constructing SLR, LALR, and canonical LR parsing tables

### Module 4 - Syntax directed translation and Intermediate code generation
- Syntax directed translation
- Syntax directed definitions
- S-attributed definitions
- L-attributed definitions
- Bottom-up evaluation of S-attributed definitions
- Run-Time Environments
- Source Language issues
- Storage organization
- Storage-allocation strategies
- Intermediate Code Generation
- Intermediate languages
- Graphical representations
- Three-Address code
- Quadruples
- Triples

### Module 5 - Code Optimization and Generation
- Code Optimization
- Principal sources of optimization
- Machine dependent and machine independent optimizations
- Local and global optimizations
- Code generation
- Issues in the design of a code generator
- Target Language
- A simple code generator

## Textbooks
1. Aho A.V., Ravi Sethi, and D. Ullman. "Compilers – Principles Techniques and Tools," Addison Wesley, 2006.

## Reference Books
1. D.M.Dhamdhere. "System Programming and Operating Systems," Tata McGraw Hill & Company, 1996.
2. Kenneth C. Louden. "Compiler Construction – Principles and Practice," Cengage Learning Indian Edition, 2006.
2 changes: 1 addition & 1 deletion src/WikiSyllabus/KTU/2019_Scheme/S6/CSE/CST306/SUMMARY.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# CST 306 - AAD

#### INDEX

- [Syllabus](./Syllabus.md)
- [Dynamic Programming](./4_1dynamic_programming.md)
- [Floyd Warshall Algorithm](./4_2floyd_warshall_algorithm.md)
- [Backtracking](./4_3backtracking.md)
Expand Down
38 changes: 38 additions & 0 deletions src/WikiSyllabus/KTU/2019_Scheme/S6/CSE/CST306/Syllabus.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# CST 306 - ALGORITHM ANALYSIS AND DESIGN

**Category:** PCC
**Lecture:** 3 | **Tutorial:** 1 | **Practical:** 0 | **Credit:** 4
**Year of Introduction:** 2019

## Syllabus

### Module-1 (Introduction to Algorithm Analysis)
- Characteristics of Algorithms, Criteria for Analyzing Algorithms, Time and Space Complexity
- Best, Worst and Average Case Complexities, Asymptotic Notations - Big-Oh (O), Big-Omega (Ω), Big-Theta (Θ), Little-oh (o)
- Classifying functions by their asymptotic growth rate
- Time and Space Complexity Calculation of simple algorithms
- Analysis of Recursive Algorithms: Recurrence Equations, Solving Recurrence Equations – Iteration Method, Recursion Tree Method, Substitution method and Master’s Theorem (Proof not required).

### Module-2 (Advanced Data Structures and Graph Algorithms)
- Self Balancing Tree - AVL Trees (Insertion and deletion operations with all rotations in detail, algorithms not expected)
- Disjoint Sets- Disjoint set operations, Union and find algorithms
- DFS and BFS traversals - Analysis, Strongly Connected Components of a Directed graph, Topological Sorting.

### Module-3 (Divide & Conquer and Greedy Strategy)
- The Control Abstraction of Divide and Conquer- 2-way Merge sort, Strassen’s Algorithm for Matrix Multiplication-Analysis
- The Control Abstraction of Greedy Strategy- Fractional Knapsack Problem, Minimum Cost Spanning Tree Computation- Kruskal’s Algorithms - Analysis, Single Source Shortest Path Algorithm - Dijkstra’s Algorithm-Analysis.

### Module-4 (Dynamic Programming, Back Tracking and Branch & Bound)
- The Control Abstraction- The Optimality Principle- Matrix Chain Multiplication-Analysis
- All Pairs Shortest Path Algorithm - Floyd-Warshall Algorithm-Analysis
- Back Tracking – The N Queen’s Problem
- Branch and Bound Algorithm for Travelling Salesman Problem.

### Module-5 (Introduction to Complexity Theory)
- Tractable and Intractable Problems, Complexity Classes – P, NP, NP- Hard and NP-Complete Classes
- NP Completeness proof of Clique Problem and Vertex Cover Problem- Approximation algorithms- Bin Packing, Graph Coloring
- Randomized Algorithms (Definitions of Monte Carlo and Las Vegas algorithms), Randomized version of Quick Sort algorithm with analysis.

## Textbooks
1. T.H.Cormen, C.E.Leiserson, R.L.Rivest, C. Stein, "Introduction to Algorithms, 2nd Edition", Prentice-Hall India (2001).
2. Ellis Horowitz, Sartaj Sahni, Sanguthevar Rajasekaran, "Fundamentals of Computer Algorithms", 2nd Edition, Orient Longman Universities Press (2008).
1 change: 1 addition & 0 deletions src/WikiSyllabus/KTU/2019_Scheme/S6/CSE/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@
#### INDEX

- [CST 306 - AAD](./CST306/SUMMARY.md)
- [CST 302 - CD](./CST302/SUMMARY.md)