Blaise Pascal (1623-1662)

CS 323 Programming Languages

The purpose of this course is:

- To increase your a capacity to express ideas using a programming language

- To allow you to choose an appropriate programming language for a design task

- To give you the ability to quickly learn new languages

- To learn new and very different programming languages including Perl, FORTRAN, C#, Scheme, and Prolog.

In the beginning of the course, you will learn the history and evaluation of programming languages. As the course progresses, you will learn about important language characteristics including: names, bindings, types, scope, data types, subprograms, abstract data types, and encapsulation. You will explore these characteristics using two unfamiliar languages: Perl and FORTRAN. In the seond half of the course you will re-explore object-oriented programming with a new language: C#. You will also learn about Functional Programming through the language Scheme and about Logic Programming using PROLOG.

 

Textbooks:

Online References

   Perl             [web][download][documentation]
   FORTRAN [web][download][documentation I, II]

Syllabus (tentative):

Evaluation and History (Sebesta 1 & 2)
   Class Notes
   Book Notes (1,2)

   
Subprograms (Sebesta 9, 10)
   Class Notes
   Book Notes (9,10)
   

Names, Bindings, Type Checking, Scope (Sebesta 5)
   Class Notes
   Book Notes

Abstract Data Types and Encapsulation (Sebesta 11)
   Class Notes
   Book Notes
Data Types (Sebesta 6)
   Class Notes
   Book Notes
   Big Endian/Little Endian Integers
   Two's Complement Integers
   Problems with Floating Point Arithmetic
   IEEE Floating Point Standard
   How to Convert to IEEE Floating Point
   Binary file containing 42, 4200, and 42000

Object-Oriented Programming & C#.NET (Sebesta 12)
   Class Notes
   Book Notes

   How To Create A Simple C#.NET Application
   SequenceNumber.cs File
   C# Hello World Application
   How To WinZip A C# Program

   C#.NET Documentation in Visual Studio
   C# and .NET Documentation Online

   EXAMPLES
      Stack Class (basic class definition)
      Logger Shell(singleton pattern, class methods/members)
      Logger Implemented(singleton pattern, class methods/members)
      Basic Types and Wrapper Classes
      Shape,Rectangle,Square,Circle (incomplete)
      Shape,Rectangle,Square,Circle (complete)
      Exception Handling
      File I/O
      Garbage Collection
      Vampire Images
      Vampire Simulator (visual programming)

Expressions and Assignments (Sebesta 7)
   Class Notes
   Book Notes
   

Functional Programming (Sebesta 15)
   Class Notes
   Book Notes
   SCHEME
      Dr Scheme Installation
      Dr Scheme Documentation
      Maze Definition File
      Complete Maze Program
      Complete NxN Queens Program

Control Flow (Sebesta 8)
   Class Notes
   Book Notes
Logic Programming (Sebesta 16)
   Class Notes
   Book Notes
   PROLOG
      Installation
      Installation (TEMPORARY)
      Installation Notes/Users Guide/Reference Manual
      Getting Started
      family.pl

 

Course Logistics:
Lectures are held T,Th 1:00-2:15 in Stanger 308.

You can track me down other times by looking at my schedule.

The Lab - Stanger 308:

Technically, you don't need to use the lab because you can install all of the programming languages used in the course on your personal computer.. However, working up in the lab on these programming assignments is a great way to meet other people in the course and ask me questions if I'm around. The lab is open from 8AM to 12AM during the week. During some of that time the lab is used as a classroom. You can find the schedule for the lab here. Also, the lab is occasionally reserved for a special meeting (this is rare). During the weekends and holidays the lab is normally closed but you can still gain access.

If Stanger 308 is occupied, you should also check out Stanger 101: The Computer Science Library. The machines in Stanger 101 have the same software and configuration as the machines in Stanger 308.

If you arrive at Stanger and the lab is closed, you can call campus police at x5555 and tell them that you are taking this course and that you are on a list of students allowed access to the lab.

Grading Policy:
Your grade will be based on the following evaluations:

EvaluationWeight (RAW) DueMean (Raw)StdDev (Raw)

Homeworks & Quizzes

50%   
    Homework 0   09/05/07    
    Homework 1   09/21/07    
    Homework 2   10/06/07    
    Homework 3   10/15/07    
    Homework 4   10/24/07    
    Homework 5   11/02/07    
    Homework 6   11/09/07    
    Homework 7   11/20/07    
    Homework 8   11/30/07    
    Homework 9   12/11/07   

Final Project

30%   

    Proposal

(20) 09/28/07    

    Written - Model for Report

(50) 11/16/07    

    Presentation
    How to give a BAD talk

(30) 11/16/07    

Final Exam 12/14/07 @ 1:30

20%      
TOTAL100%     

Click here to find out how to compute your grade for the course.

Homework will be turned in at the beginning of class on the day they are due. Late homeworks will not be accepted. This policy is firm because homework solutions will be handed out on the due day.

Exams are to be taken at the specified date and time. If you miss the exam, you will receive a 0.

Sometimes things happen. If there are circumstances that prevent you from meeting your obligations for this course, you need to talk to me to make arrangements IN ADVANCE.

Getting Help:

Instructor: Bob Dugan
officeStanger 206
office hours

W,F 2:15-4:00
Stanger 206 or
Stanger 308

office phone508-565-1682
e-mailbdugan@stonehill.edu
aol imdrbobdugan