CSE M226 – Programming Languages

CSE M266: Programming Languages

Credits: 4 hours/Week


Instructor: Rokan Uddin Faruqui. email: rufaruqui AT cu.ac.bd 
Classes begin on Januar 2, 2018 at 11:30am in ITB Room # 312
Class Schedule: Sunday  11:30 - 01:30 pm, Tuesday 11:30 - 01:30 pm

Course Outline

Lectures Topics Readings Resources /Slides
L0- Introduction and Course outline
  •  Introduction
  • Programming Language spectrum
(PLP) Chapter 1.1, 1.2   L_intro
L1- Introduction
  •  Reasons for studying Programming Languages
  • Compilations and Interpretations
  • An overview of Compilations
(PLP) Chapter 1.3, 1.3, 1.5

(CPL) – 1.1 


L2- Evolution of the Major Programming Languages

  • Evolution of the Major Programming Languages
  • A Brief, Incomplete, and Mostly Wrong History of

    Programming Languages1

(CPL) – Chapter 2  L_02

L3: Introduction to Ruby and OOP

  • Basic features
  •  Features interesting for this course
 Ruby for Beginners


L4: Ruby

  •  Blocks
  • Iterators

  • Operators
  • String Interpolation

  • Top-level object

  • Using Libraries

  • Modules
 See – Ruby for beginners  Ruby for Beginners


L5: Ruby

  • Regular Expressions
  • Yield
  • Inheritance, Modules, Mixins

PRuby – Chapter 5  Ruby for Beginners 


L6: Ruby

  • Duck Typing

PRuby – Chapter 23  L_06

L7: Ruby

  • Meta Programming
PRuby – Chapter 24  L_07

L8: Ruby

  • Meta Programming and Reflections
PRuby – Chapter 24 and 25 L_09 


L9: Functional Programming

  •  Introduction to Functional Languages

L9: Functional Programming

  •  Lambda Calculus and The Basics of Scala

L10: Functional Programming

    •  Programming Paradigms, Elements of Programming, Conditionals and Value Definitions, Blocks and Lexical Scope




L11: Functional Programming

    •  Higher Order Functions
    • Tail Recursion
    • Currying


    1. Creating and Running Your Scala Application

Text Books

  1. Scala By example — http://www.cs.umd.edu/class/fall2014/cmsc433-0101/lectures/ScalaByExample.pdf
  2. Michael L. Scott, Programming Language Pragmatics (PLP), 4th Ed. Morgan Kaufmann, 2015
  3. Robert Harper, Practical Foundations for Programming Languages (PFPL), 2nd Ed. Cambridge University Press, 2016.
  4. Robert W. Sebesta Concepts in Programming Languages (CPL),  11th Ed., Cambridge University Press, 2015.
  5. Dave Thomas, Chad Fowler, Andy Hunt Programming Ruby 1.9 &
    2.0 (PRuby), 
     3rd Ed., The Pragmatic Bookshelf, 2009.

Course Formats

# of Class test  2, 1 Group Presentation, 1 Course project.

Group Formation: –closed–
Please fillup the following form to create a group and choose your topic. Make sure your topic is unique, Click here  to see what has been already selected by other students: