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 

L_01

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

L_03

L4: Ruby

  •  Blocks
  • Iterators

  • Operators
  • String Interpolation

  • Top-level object

  • Using Libraries

  • Modules
 See – Ruby for beginners  Ruby for Beginners

L_04

L5: Ruby

  • Regular Expressions
  • Yield
  • Inheritance, Modules, Mixins

PRuby – Chapter 5  Ruby for Beginners 

L_05

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 

L_08

L9: Functional Programming

  •  Introduction to Functional Languages
L_10

L9: Functional Programming

  •  Lambda Calculus and The Basics of Scala
 L_11

L10: Functional Programming

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

conditionals_definitions

Elements_of_Programming

Programming_Paradigm

L11: Functional Programming

    •  Higher Order Functions
    • Tail Recursion
    • Currying
tailRecursion
HigherOrderFunction
currying.pdf

Tutorials

    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:

Advertisements