>>Past Courses

UG-Course – LANGUAGE PROCESSORS

1. Course Description

The study of basics of compiler construction, parsing, intermediate code generation and code optimization.

3 lectures, 1 practical slot (2 hrs), per week.
Credit scheme -  (L-T-P-C: 3-0-2-8)

2. Required Background or Pre-requisite: CSL 307 : Theory of Computation

3.  Course Objectives

To inform students about different parsing techniques, techniques to generate intermediate code and different optimization techniques.

4. Course Outcomes
The student should be able to analyze issues associated with the implementation of higher-level programming languages.

This course introduces students how a compiler translates the higher level language into machine language.

Students should know in detail algorithms used in creating a correct and optimized translation.

Students should be able to build a working compiler of their own.

The students will also appreciate the need of understandable error reports, accurate and reliable object code, and strict adherence to industry standards.

Understanding of compiler optimization techniques would enable students to write reasonably efficient programs.

5.  Detailed Description of the Course

  •  Introduction to compilers, compilers and translators, phases and passes of a typical compiler    , Dealing with ambiguity of the grammar.       (1 Week)
  •  Syntax specification of programming languages, Design of top-down parser, Recursive Decent and Predictive parsing, LL(1) parsing (2 Weeks)
  •  Bottom up parsing technique, Operator Precedence Parsing, LR parsing algorithm, Design of SLR, LALR, CLR parsers.                 (2 Weeks)
  •  Study of syntax directed definitions and syntax directed translation schemes. Using syntax directed translation schemes for translation of expressions, controls structures, declarations, procedure calls.  (3 Weeks)
  •  Storage allocation and  run time storage administration, symbol table management, Error detection and recovery, error recovery in LR parsing, error recovery in LL parsing, Automatic error recovery in YACC.  (1 Week)
  •  Introduction to Important code optimization techniques, loop optimization, control flow analysis, data flow analysis, setting up data flow equations to compute reaching definitions, available expressions, Live variables for doing constant folding, code hoisting          (3Weeks)
  • Problems in code generation, simple code generator code generation from DAG, Peephole optimization       (2 Weeks)

Typical Laboratory Experiments: Based on usage of Lex and Yacc. Recognizing a language, translating a language, generating intermediate code.

6. Text books and/or other required material

“Principles of Compiler Design” : Aho A. V., Ullman J.D, Narosa Publishing House.

“Principles and practice of compiler writing” : Aho, Sethi,  Ullman, Addison Wesley

“Crafting a compiler” : Fischer and LeBlanc, Addison Wesley

7.    Class/Laboratory Schedule

Lectures : 3 1-hr lectures per week
Lab: One 2-hr session per week

8.  Contribution of Course to Professional Component

Lecture: Students learn about different parsing techniques, techniques to generate intermediate code and different optimization techniques.

Lab: Students learn to implement techniques used in working compilers.

9.    Evaluation of Students

The instructor uses the following methods: 2 sessional exams, end-semester exam and several lab projects, one-on-one discussions during office hours.


 

PG-Course – BIO-INFORMATICS

1. Course Description

The study of computer applications for Biology. This course also talks about different algorithms that are designed for solving biological problems.

3 lectures (3 hrs) per week.
Credit scheme -  (L-T-P-C: 3-0-0-6)

2.   Required Background or Pre-requisite: CSL 313 – Analysis of Algorithms

3.  Course Objectives

This course introduces students to the basic computational methods and algorithms that can be used to understand the cell on a molecular level and biological system at a macro level.

4. Course Outcomes
Students will know algorithms and programming techniques like dynamic programming, hashing, and suffix trees.

The course focuses on computational approaches to: genetic and physical mapping; genome sequencing, assembly, and annotation; protein structure and folding; and molecular dynamics.

This course will help students develop multidisciplinary approach to the systematic analysis and modeling of complex biological phenomena.

Serving as an introduction to computational and systems biology, this course emphasizes the fundamentals of nucleic acid and protein sequence analysis, structural analysis, and the analysis of complex biological systems.

Students are also exposed to currently emerging research areas in the fields of computational and systems biology.

5. Detailed Description of the Course

  •  Basics of biology                  (1 Week)
  •  Sequences:  Problem statement, Edit distance and substitution matrices, Global and local alignments, Spliced alignment, Space-efficient sequence alignment, Multiple alignment             (3 Weeks)
  • Structures: Protein alignment, Protein structure prediction     (1 Week)
  •  Phylogenetic trees: Large parsimony and small parsimony problems, Probabilistic approaches, Grammar-based approaches        (1 Weeks)
  •  Overview of Gene Control, Working of Genetic Switches, Introductory Systems Biology, The biochemical paradigm, genetic paradigm and the systems paradigm     (2 Weeks)
  •  Building an Organism Starting From a Single Cell -Quorum Sensing – Programmed Population Control by Cell-Cell Communication and Regulated Killing; Gene regulation at a single cell level- Transcription Networks -coherent Feed Forward Loop (FFL) and delay gate -The incoherent FFL -Temporal order, Signaling networks and neuron circuits -Aspects of multi-stability in gene networks. (3 Weeks)
  • Modeling biological systems, Hidden Markov models         (2 Weeks)
  •  Miscellaneous topics: Pathways and networks, Microarrays, Biomedical images, Genetic Algorithms and applications           (2 weeks)

6. Text books and/or other required material:

“An Introduction to Bioinformatics Algorithms” by Jones, Pevzner. MIT Press.

“Algorithms on Strings, Trees and Sequences” by Gusfield. Cambridge University Press.

“An Introduction to Systems Biology: Design Principles of Biological Circuits” by Alon. Chapman & Hall/CRC Press.

7.   Class Schedule
Lectures : 3 1-hr lectures per week

8. Contribution of Course to Professional Component

Lecture: Students learn about computational methods and algorithms in bioinformatics and systems biology. They are also exposed to current emerging research areas in these fields.

9.  Evaluation of Students

The instructor uses the following methods: 2 sessional exams, end-semester exam, class test and assignments, one-on-one discussions during office hours.