Programming Language Technologies and Paradigms

Spring 2007

Course Number: CMSC433.

Meeting Times: Tue. Thu. - 9:30AM - 10:45AM (CSIC 1121)

Instructor Information: Atif M Memon (atif AT cs DOT umd DOT edu); Office Hours: Tue. Thu. - 10:45AM - 12:00PM (4115 A. V. Williams Building)

TA Information: Srinivas Kashyap (raaghav AT cs DOT umd DOT edu); Office Hours: Mon. Wed. Fri. - 10:00AM - 12:00PM (4103 A. V. Williams Building)

Catalog Course Description: Programming language technologies (e.g., object-oriented programming), their implementations and use in software design and implementation. Course Summary: This course will examine different programming paradigms -- Object-oriented programming (OOP), logic programming, and functional programming. Due to its popularity, the OOP paradigm will be discussed in detail, focusing on existing and emergining technologies used to implement object-oriented programs. Examples include UML, Design Patterns, Aspect-oriented Programming (AOP), refactoring, JUnit, and JavaDoc. The OOP paradigm can be significantly inefficient in certain domains and applications; some of these applications will be examined and alternative paradigms like logic programming and functional programming will be studied. By the end of this course, students should be familiar with the state-of-the-art in programming paradigms and associated technologies.

The grade of the course will be determined as follows: 25% mid-term, 25% final exam, 50% programming assignments.

Credits: 3

Prerequisites: CMSC330; and permission of department; or CMSC graduate student.

Syllabus, Slides, Notes

This table will be revised as the semester progresses. Note that rows with a color background are tentative and subject to change.
DateTopicSlidesNotes/Assignment
01/25/2007
  • Course Overview
  • intro.pdfPlease download and install TerpOffice Version 5.0
    01/30/2007
  • Discussion of Programming Assignments
  • Assignment 1 Assignment 2 Assignment 3 Start working on all three assignments today.
    02/01/2007
  • Object-oriented Programming
  • No slidesClass discussion. Class forum setup and discussed.
    02/06/2007-02/13/2007
    • Java Review
    java.pdfPlease look at this tutorial.
    02/13/2007-02/15/2007
    • Testing
    testing.pdfPlease look at the demo 433-Junit-Demo.zip
    02/20/2007
    • Discussion
    No slidesDiscussed Assignment 2 and possible solutions.
    02/22/2007
    • Documentation
    doc.pdf...
    02/27/2007
    • Interactive Software Development
    interact.pdfWe also discussed Assignment 3 in detail. Check Assignments 2 and 3 for updates.
    02/27/2007
    • Abstraction
    abstraction.pdf...
    03/01/2007
    • Polymorphism
    polymorphism.pdfWe also discussed Assignment 2.3 in detail.
    03/06/2007
    • Inner Classes and Iterators
    InnerClassesAndIterators.pdf...
    03/08/2007
    • Factory Design Pattern
    FactoryPattern.pdf...
    03/08/2007
    • Abstract Factory Design Pattern
    AbstractFactoryPattern.pdf...
    03/13/2007
    • Singleton Design Pattern
    SingletonPattern.pdf...
    03/13/2007
    • Builder Design Pattern
    BuilderPattern.pdf...
    03/15/2007MID-TERM EXAM......
    03/20/2007SPRING BREAK......
    03/22/2007SPRING BREAK......
    03/27/2007
    • Prototype Design Pattern
    PrototypePattern.pdf...
    03/27/2007
    • Adapter Design Pattern
    AdapterPattern.pdf...
    03/29/2007
    • Bridge Design Pattern
    BridgePattern.pdf...
    03/29/2007
    • Composite Design Pattern
    CompositePattern.pdf...
    04/03/2007
    • Decorator Design Pattern
    DecoratorPattern.pdf...
    04/05/2007
    • Facade Design Pattern
    FacadePattern.pdf...
    04/05/2007
    • Flyweight Design Pattern
    FlyweightPattern.pdf...
    04/10/2007
    • Proxy Design Pattern
    ProxyPattern.pdf...
    04/10/2007
    • ChainOfResponsibility Design Pattern
    ChainOfResponsibilityPattern.pdf...
    04/10/2007
    • Command Design Pattern
    CommandPattern.pdf...
    04/12/2007
    • Interpreter Design Pattern
    InterpreterPattern.pdf...
    04/12/2007
    • Mediator Design Pattern
    MediatorPattern.pdf...
    04/17/2007
    • Memento Design Pattern
    MementoPattern.pdf...
    04/17/2007
    • Observer Design Pattern
    ObserverPattern.pdf...
    04/19/2007
    • State Design Pattern
    StatePattern.pdf...
    04/19/2007
    • Strategy Design Pattern
    StrategyPattern.pdf...
    04/24/2007
    • Template Design Pattern
    TemplatePattern.pdf...
    04/24/2007
    • Visitor Design Pattern
    VisitorPattern.pdf...
    04/26/2007
    • Refactoring
    Refactoring.pdf...
    04/26/2007
    • Functional Programming
    FunctionalProgramming.pdf...
    05/01/2007
    • Logic Programming
    LogicProgramming.pdf...
    05/03/2007
    • Java RMI
    RMI.pdf...
    05/08/2007
    • Threads
    Threads.pdf...
    05/10/2007
    • ...
    ......
    ...FINAL EXAM......