|
CSC301/ CPE425/SC433 : Programming Languages Sem. : Aug 2008 - Nov. 2008 (current) Venue (for Aug 08 sem):
LT2A: Mon 12.30-1330 noon, Tues 12.30-13.30 noon, Fri 1530-1730 pm |
Tut 2 and Tut 3 contain Long pseudo-codes: hence you can find its copy here. Tut 4
|
CSC106/ SC 109 : Discrete Mathematics Sem. : Aug. 2008
- Nov. 2008 (also Aug 2006-Nov 2006, Jan 2006 - Apr. 2006,
July 05-Nov 05, Jan 2005 - Apr. 2005) |
This
subject introduces the basic concepts of
logic, set theory, functions, relations
and graph theory. The main focus is on understanding the
concepts in formal
terms and theoretical results. It also attempts to introduce various proof
techniques.
|
CSC404/ CPE408 : Compiler Techniques (old course code SC405) Sem. : Jan 2008 - Apr. 2008 Venue: LT8: Tues 1.30-2.30pm; LT19A: Wed 11.30-1230 noon; LT19A: Fri 10.30-1230 noon Sample questions on Compiler Techniques, Optimizing Compilers, MIPS Instruction Set |
Plan of the lectures
( with links to video lectures )
COURSE REVIEW (old: Apr 2007) SLIDES
Topic 0: Course Introduction
Topic 0.1 : Course Introduction (~37 slides) L1: 08 Jan 2008: Tues 13.30-1430 noon
Topic 0.2 : Bird's Eye-view (~45 slides / 29 main slides) L2: 09 Jan 2008: Wed 11.30-1230 noon also part in: L3 & L4: Friday, 11th Jan 1008 : 1030 am - 1230 noon L8: Friday, 18th Jan 2008 : 1140-1230 noon
Topic 1: Lexical Analysis
Topic 1.1 : Lexical Analysis : Introduction (~25 slides) L3 & L4: Friday, 11th Jan 1008 : 1030 am - 1230 noon
Topic 1.2 : Formal Languages & Automata (~40 slides) L5: 15 Jan 2008: Tues 13.30-1430 (slides 1-22) L6: 16 Jan 2008: Wed 11.30-1230 (slides 23-40 + Topic 1.3: slides 1-19
Topic 1.3 : Deterministic Finite Automata (DFA) & Regular Languages (RL) (~69 slides) L7: Friday, 18th Jan 2008 : 1030-1135 noon: slides 20-67 (L8 is tut 1) L9: Tuesday, 22nd Jan 2008 : 1330-1430 noon: slides 65-69 + Topic 1.4: Slides 1-49 L12: Friday, 25th Jan 2008 : 1135-1230 noon:
Topic 1.4 : Nondeterministic Finite Automata (NFA), Equivalence of DFA and NFAs (~133 slides) L9: Tuesday, 22nd Jan 2008 : 1330-1430 noon: Slides 1-49 L10: Wednesday, 23rd Jan 2008 : 1130-1230 noon: slides 50-85 L11: Friday, 25th Jan 2008 : 1030-1130 noon: slides 86-127 + Topic 1.5: Slides1-10 (L12 is tut 2; topic: DFA)
Topic 1.5 : Regular Languages (RLs) and Regular Expressions (~57 slides) L11: Friday, 25th Jan 2008 : 1030-1130 noon: slides 86-127 + Topic 1.5: Slides1-10 (L12 is tut 2; topic: DFA) L13: Tuesday, 29th Jan 2008 : 1330-1430 a/n: slides 11-25 L14: Wednesday, 30th Jan 2008 : 1130-1230 noon: slides 25-57 & Topic 1.6: slides 1-4.
Topic 1.6 : DFA Minimization (~37 slides)
L14:
Wednesday, 30th Jan 2008 : 1130-1230 noon: Topic 1.5: slides 25-57 &
Topic 1.6: slides 1-4.
L15:
Friday, 01st Feb 2008 : 1030-1245 noon: Topic 1.6: slides 5-37
(End of topic 1.6).
(Tut 3:)
L16: Friday, 01st Feb. 2008:
1200-1330 noon
Topic 2: Syntax Analysis
Topic 2.1 : Grammars – Introduction, (~52 slides) L17:Tuesday, 05th Feb 2008:1330-1430 a/n:Topic 2.1: slides 1-36 L18: Wednesday, 06th Feb 2008: 1130-1230 noon: Slides 37-52 (end of Topic 2.1) no link received (not recorded?)
Topic 2.2 : Derivation Trees, Ambiguity and Parsing (~75 slides) L19:Tuesday, 12th Feb 2008:1330-1430 a/n:Topic 2.2: slides 1-40. L20:Wednesday, 13th Feb 2008:1130-1230 noon:Topic 2.2: slides 41-78. (End of topic 2.2).
Topic 2.3 :Top-down Parsing (~53 slides) L21:Friday, 15th Feb 2008:1030-1130 noon:Topic 2.3: slides 1-22. L22:Friday, 15th Feb 2008:1130-1230 noon, L23:Tuesday, 19th Feb 2008:1330-1430 : Topic 2.3: slides 22-45. L24:Wednesday, 20th Feb 2008:1130-1230 : Topic 2.3: slides 46-53 (End of Topic) + Topic 2.4: Slides1-11.
Topic 2.4 : Bottom-up Parsing, Parser Generators, and LR Parsing (~103 slides) L25:Friday, 22nd Feb 2008:1030-1130 : Topic 2.3: slides 12-39 L26:Friday, 22nd Feb 2008:1135-1230 : Tut 5 solutions: single slide, 6 slides /page)
( L27: Friday, 23rd Feb., 1135 am -1230 noon ) TEST Questions (07 Mar 08)
Topic 3: Semantic Analysis (& related Topics)
Topic 3.1 : Syntax Directed Translation (~70 slides)
Topic 3.2 : Semantic Analysis -I : Scope, and Intro. to Types (~52 slides) Type Systems for Multithreaded Software (research lecture)
Topic 3.3 : Semantic Analysis -II : Types with Environments (~42 slides) Dependent Types for Safe Systems Software (:DEPUTY)
Topic 3.4 : Runtime Organization (~45 slides)
(Tut 7:) L31: Friday, 9th Mar., 1135 am -1230 noon
Topic 4: Back End Synthesis
Topic 4.1 : (Stack Machine Architecture and) Code Generation (~27 slides)
Topic 4.2 : Intermediate Code and Local Optimization (~42 slides)
Topic 4.3 : Global Optimization (~64 slides)
Topic 4.4 : Register Allocation (~37
slides)
Framework for Unrestricted Program Optimization (Microsoft
Research video lecture) by
L35: Friday, 16Mar., 1135 am -1230 noon
Note (dated 19 Jan 2008 :: : the book by David Galles: Modern Compiler Design is now available in NTU Library (3 copies available in red-spot section). Also Second Edition of Aho, Lam, Sethi, Ullman is available (1 copy in red-spot section; 1 copy for general issue).
Copy of lab manual (for Jan08-Apr08 Sem): The lab component would be use of Java-based compiler tools. These tools include topdown parser JavaCC, and constructors for bottom-up parser CUP. The book David Galles, Modern Compiler Design, Addison-Wesley, (2005) would be useful specially for this lab component as it gives step-by-step instructions of the use of (some of) these softwares. (Additional information for older (C-based) tools is on the website http://www.cs.usfca.edu/galles/compilerdesign/cimplementation.pdf ).
|
CSC301/ CPE425/SC433 : Programming Languages Sem. : Aug 2007 - Nov. 2007 (current) Venue (for Aug 07 sem):
LT2A: Mon 12.30-1330 noon, Tues 12.30-13.30 noon, Fri 1530-1730 pm |
Lecture Materials – Organization
PART 1: PLs: Introduction and Specification Simon Peyton-Jones: Towards a Programming Language Nirvana
Topic 0: Programming Languages: Introduction: L1: 06 Aug 2007: Mon 12.30-1330 noon
Topic 0.2 : Bird’s Eye-view (~40 slides) L2: 07 Aug 2007: Tues 12.30-1330 noon ; Also Language Evolution
Topic 1: Programming Languages: Specification (~48 slides) L3: 10 Aug 2007: Fri 15.30-1630 L4: 10 Aug 2007: Fri 16.30-1730 (not recorded)
PART 2: Programming Paradigms Mike Grant, Scott's book: Programming Languages
PART 3: Programming Constructs
Video lectures: (i) Programming Languages: Explanatory Activity: Robert Harper; (ii) Progmg Lg concepts: Functional Pgmg. Logic Pgmg, & Imperative Pgmg thru Abstract State M/cs by Yuri Gurevich, (iii) Abstact Decision Procedure for Satisfiability in Recursive Decision Types: Clark Barrett (New York University)
Sample questions on: Types, Programming in C & C++, Programming in Java, Prolog, Problem solving in ML, Foundations of Programming, Foundations of Computer Science, Further Java, Modula 2, Modula 3, Further Modula 3, Common Lisp, Denotational Semantics Specification and Verification I, Specification and Verification II, Semantics, Natural Language Processing, Topics in Concurrency
|
CSC404/ CPE408 : Compiler Techniques (old course code SC405) Sem. : Jan 2007 - Apr. 2007 Venue: LT20: Tues 1.30-2.30pm; LT19A: Wed 11.30-1230 noon; LT19A: Fri 10.30-1230 noon Sample questions on Compiler Techniques, Optimizing Compilers, MIPS Instruction Set |
Compilers form the most important, as well as most complicated software ever designed. In this course, our emphasis is not so much on "writing yet another compiler for a toy language" but we shall expose you to the body of knowledge developed by Computer Scientists for designing the compilers. This course is one of the "basic" courses in traditional computer science. In the long term career of software engineer, this course should give you an "eye opener" view to exemplary approaches based on theoretical principles for clean software design of complex soft wares, and the design of efficient algorithms. Traditional applications of these techniques (in last two decades or so) are: database interfaces, document preparation and conversion, text analysis of biblical texts, corpora analysis, machine translation, typesetting chemical formulae, and chromosome recognition, etc. Self-extracting search engines, enabling architectures, VoiceXML (useful for the modeling of automated telephone call centers, the so called "talking heads" etc.), are a few applications in the last decade where the concepts in this course have extensively been used.
Plan of the lectures ( with links to video lectures ) COURSE REVIEW SLIDES
Topic 0: Course Introduction
Topic 0.1 : Course Introduction (~30 slides) L1: 09 Jan 07: Tues 13.30-1430 noon
Topic 0.2 : Bird's Eye-view (~44 slides / 29 main slides)
L2: 10 Jan 07:
Wed 11.30-1230 noon
(Tutorial 1:)
L8: Friday, 19th Jan 2007 : 1130-1220 noon
Topic 1: Lexical Analysis
Topic 1.1 : Lexical Analysis : Introduction (~25 slides) L3 & L4: Friday, 12th Jan 1007 : 1030 am - 1230 noon
Topic 1.2 : Formal Languages & Automata (~40 slides)
Topic 1.3 : Deterministic Finite Automata (DFA) & Regular Languages (RL) (~64 slides) L5: 16 Jan 07: Tues 13.30-1430 noon L6: Wednesday, 17th Jan 2007: 1130-1230 noon
Topic 1.4 : Nondeterministic Finite Automata (NFA), Equivalence of DFA and NFAs (~128 slides) L7: Friday, 19th Jan 1007 : 1030 am - 1130 noon (L8 is tut 1) L9: 23 Jan 07: Tues 13.30-1430 noon L10-a: Wednesday, 24th Jan. 2007: 1130 am - 1205 noon
Topic 1.5 : Regular Languages (RLs) and Regular Expressions (~57 slides) L10-b: Wednesday, 24th Jan. 2007: 1205 noon - 1230 noon L11: Friday, 26th Jan 2007; 1030-1130 am
Topic 1.6 : DFA Minimization (~37 slides) L13: 30 Jan 07: Tues 13.30-1430 noon
(Tut 2:)
L12: Friday,
26th January, 2007; 1130 -1230 noon
(Tut 3:)
L16: Friday, 02nd Feb. 2007:
1130-1230 noon
Topic 2: Syntax Analysis
Topic 2.1 : Grammars – Introduction, (~52 slides) (Slides 1 to 36:) L14: Wednesday, 31st Jan. 2007: 1130-1230 noon (Slides 31 to 52:) L15: Friday, 02nd Feb. 2007: 1030-1130 a.m.
Topic 2.2 : Derivation Trees, Ambiguity and Parsing (~75 slides) L17: Tuesday, 06th Feb 2007: 1330-1430 noon L18: Wednesday, 07th Feb 2007: 1130-1330 noon
Topic 2.3 :Top-down Parsing (~53
slides)
L19: Friday, 9th Feb. 2007 :
1030-1130 noon
L21a: Tues 13th
Feb 2007: 1330-1430 noon: First and Follow Computation
L21b: Tues 13th
Feb 2007: 1330-1430 noon: First and Follow Computation
Topic 2.4 : Bottom-up Parsing, Parser Generators, and LR Parsing (~103 slides) L22: Wed. 14th Feb. 2007: 1130-1230 noon L23: Friday, 16 Feb 07: 10.30-1130 a.m. L25: Wednesday, 21st Feb 2007: 1130-1230 noon
(L20 is Tut 4: CFG and Ambiguity: L20: Friday, 9th Feb., 1135 am -1230 noon )
(L24 is Tut 5: on LL Parsing: L24: Friday, 16 Feb 07: 11.30-1230 noon )
( L27 is Tut 6 : on LR Parsing L27: Friday, 23rd Feb., 1135 am -1230 noon )
Topic 3: Semantic Analysis (& related Topics)
Topic 3.1 : Syntax Directed Translation (~70 slides) L26: Friday, 23rd Feb. 2007, 1035 am -1130 noon (L27 is Tut 6 : on LR Parsing L27: Friday, 23rd Feb., 1135 am -1230 noon ) L28: Tuesday, 06th Mar 2007: 1330-1430 noon
Topic 3.2 : Semantic Analysis -I : Scope, and Intro. to Types (~52 slides) L29: Wednesday, 07th Mar 2007: 1130-1330 noon Type Systems for Multithreaded Software (research lecture)
Topic 3.3 : Semantic Analysis -II : Types with Environments (~42 slides) L30: Friday, 09th Mar 2007; 1030-1130 am (L31 is Tut 7) L32: Tuesday, 13th Mar 2007: 1330-1430 noon Dependent Types for Safe Systems Software (:DEPUTY)
Topic 3.4 : Runtime Organization (~45 slides) L32: Tuesday, 13th Mar 2007: 1330-1430 noon L33: Wednesday, 14th Mar 2007: 1130-1330 noon
(Tut 7:) L31: Friday, 9th Mar., 1135 am -1230 noon
Topic 4: Back End Synthesis
Topic 4.1 : (Stack Machine Architecture and) Code Generation (~27 slides) L33: Wednesday, 14th Mar 2007: 1130-1330 noon
Topic 4.2 : Intermediate Code and Local Optimization (~42 slides) L34: Friday, 16th Mar., 1035 am -1130 noon (L35 is Tuts 8,9,10)
Topic 4.3 : Global Optimization (~64 slides)
L36: Tuesday,
20th Mar 2007: 1330-1430 noon
L37: Wednesday,
21th Mar 2007: 1130-1330 noon
Topic 4.4 : Register Allocation (~37
slides)
L38: Friday, 23rd Mar 2007;
1030-1130 am
Framework for Unrestricted Program Optimization (Microsoft
Research video lecture) by
(Tut 8,9 and part of Tut 10 :) L35: Friday, 16Mar., 1135 am -1230 noon
Assignment Submission Due (22 Mar.07, 3.30 pm - submit : (a)
electronic copy (MS Word Doc file version preferred ) through
edventure's "digital drop box" , and, (b) hardcopy of the report
to Computing Lab 2.
Test Scheduled in (Friday, 23rd Mar. 07, 11.30-1230
noon)
Final
Examination (Friday, 27th April 07, 9.00 am)
We shall closely follow, as the text, the famous 'The Red
Dragon Book" : (1) Aho, Sethi, Ullman: Compilers: Principles,
Techniques, and Tools, Prentice Hall, 2003 - Intl paperback
edition. This book covers most of the main concepts
covered above; however, the lecture class notes are not directly
based on any single book.
For Assignment, additional (practice) materials, and information about LEX and YACC the following
two books are useful: (2) Hunter: The essence of Compilers,
Prentice Hall, 1999, and, (3) Bennett, J. P. (Jeremy Peter), Introduction to compiling
techniques : a first course using ANSI C, LEX, and YACC,
McGraw Hill, 1996 (ISBN
007709221X). Note that (2): Hunter gives a set of
problems which serve as a good set of "revision" (also "tutorial")
problems -- and the solutions for all problems are given in that
book itself!
All the the above three books have been arranged in the library-2 of NTU as reference materials for this course.
Sample questions on
Compiler
Techniques,
MIPS
Instruction Set
Optimizing
Compilers,
Natural Language Processing,
|
CSC301/ CPE425/SC433 : Programming Languages Sem. : Aug 2006 - Nov. 2006 ; Jan 07 - Apr 07 Venue (for Jan 07 sem):
LT20: Tues 2.30-3.30 pm, LT19 Thurs 11.30-12.30 noon |
&&&&&&&&&&&********************
link to (audio + text) lectures on ALGORITHMS from Stony Brook Univ (Comp Sci deptt)
link to Microsoft Video library (contains various video lectures: ranging from Engg & Comp Sci Expository to Research level topics)
*********************************************************
My Book
on Discrete Mathematics (published by Pearson - Prentice Hall, Singapore, Aug
2005)
Sample questions on
Discr Math,
Discrete
Math I ,
Discr Math
II,
Mathematics for Computation,
Logic and Proof,
Information
Retrieval,
Information Theory and Coding,
Computational Number Theory
***********************************************************
If I ran a
school, I'd give the average grade to the ones who gave me all the right
answers, for being good parrots. I'd give the top grades to those who made a lot
of mistakes and told me about them, and then told me what they
had learned from them.
|
CSC106/ SC 109 : Discrete Mathematics Sem. : Aug. 2006 -
Nov. 2006 (also Jan 2006 - Apr. 2006,
July 05-Nov 05, Jan 2005 - Apr. 2005) |
This
subject introduces the basic concepts of
logic, set theory, functions, relations
and graph theory. The main focus is on understanding the
concepts in formal
terms and theoretical results. It also attempts to introduce various proof
techniques.
Upon
completion of the subject, the student should be able to:
1.
Achieve a level of
mathematical maturity necessary in formulating valid
logical arguments in elementary mathematical terms, and have little difficulty
in verifying the validity of logical arguments.
2.
Introduced to foundational topics essential to subsequent mastery of
other topics in the Computer Engineering curriculum.
3.
Develop and apply rigors, possibly abstraction as well, in the
development of solutions of problems.
Course
Details
Course Introduction and Place for Discrete Strurctures in Computer Science. (1 lecture)
Propositional Logic (5 lectures) and valid arguments. Predicate Logic (4 lectures): Quantified statements, multiple quantifiers, negations, valid arguments..
Basic
Discrete Structures: Sets
(2 lectures): Basic notations, set
operations, partitions, Cartesian products, power sets. Relations (3
lectures) : n-ary relations and relational Databases; Binary relations;
Reflexive, transitive and Symmetric relations. Equivalences and
Partitions. Posets and Hasse Diagrams.
Proof Techniques: Basic Proof techniques (1 to 1.5 formal lecture + 1 to 2
additional tut/review lectures) (direct proof, indirect proof, proof by
contradiction, and exhaustive proof techniques), proof of quantified statements, and
Inductive
proof
techniques (1 to 1.5 lecture).
Elementary
number theory (1 lecture): Prime
numbers; Modulo arithmetic operations, Eular
Totient function.
Functions (4 lectures): Basic concepts, one-to-one and onto functions, Inverse functions, Pigeon hole Principles, compositions.
Graph theory (8 lectures): Basic notions, degrees, paths, subgraphs, components, representations. Eulerian and Hamiltonian circuits. Graph Isomorphism. Trees : Rooted trees, binary trees
Recursion (4 lectures): Recursively defined sequences, general recursive definitions, solving recurrence relations by iteration, second-order linear homogeneous recurrence relations with constant coefficients.
Text:
(1) Narendra
S. Chaudhari, Discrete Mathematics: A concise Introduction Pearson
Prentice Hall, 2005.
(2) Grimaldi,
R.P. Discrete and Combinatorial Mathematics: An Applied Introduction, Fifth
Edition, Pearson Education (Addison Wesley) 2004.
References: (1) Epp Sussana, Discrete Mathematics with Applications, Third edition, Thomson learning: Brooks/Cole Pub. Co., 2004.
(2) Rosen: Discrete Mathematics and its applications, Fifth Edition Mc Graw Hill, 2003.
|
CPE204: Discrete Mathematics & Algorithms Sem. : July 2005 - Nov. 2005 Tut Venue: TR16 (July 2005)
|
This
subject has two parts. The first part is roughly same as CSC106, but covered at
rapid pace. Second part is introduction to standard topics in algorithms
like analysis of algorithms, big-oh notation, etc. Recursive algorithms
for standard problems like tree traversal, Towers of Hanoi, and Quicksort,
Mergesort. Analysis of sorting and searching techniques (binary search,
hash search).
Sample Questions on:
Data
Structures and Algorithms,
Algorithms,
Complexity,
Advanced
Algorithms,
Algebraic
Manipulation,
Math Methods in computation,
Computational Number Theory
|
Old course taught CSC106/ SC 109 : Discrete Structures & SC304: Database Systems Sem. : July 2004 - Nov. 2004; also Jan. 05-Apr. 05 Lecture Venue: LT8 |
This
subject introduces the basic concepts of logic, set theory, functions, relations
and graph theory. The main focus is on understanding the concepts in formal
terms and theoretical results. It also attempts to introduce various proof
techniques.
|
Old course taught
SC 446 / CE 437N Formal Languages, Automata, and Computability Sem. : Jan. 2004 - Apr. 2004 Lecture Venue: LT10 ; Sample questions on Regular Languages and Automata, Theory of Computation, Mathematics of Computation, Quantum Computing, Natural Language Processing, Math Methods in computation, AI, Topics in AI, Neural Computing, Bioinformatics |
|
|
Old couse Taught
SC 304 / CE 437N Database Systems Sems. : July 2003 - Nov 2003, Jan 2003-Apr 2003, July 2002-Nov 2002, and Jan 2002-Apr 2002 Lecture Venue: LT2A ; Sample questions on Databases, Database Theory, Database Topics, Designing Interactive Applications, Business Studies, E-Commerce, Information Retrieval, Human Computer Interaction (HCI), Concurrency, Concurrent Systems, Concurrent (Distributed) Systems Applications, Distributed Systems, |
|