CECS 424-1,2    Programming Languages
Syllabus     Spring 2008

Dr. Art Gittleman  ECS 534 (310)985-1530  artg@csulb.edu

Office Hours: MW 9:30-10:00, 3:30-4:00, 6:30-7:00

Course Hours:   Sem  Code 1515      MW 7:00-7:50 ECS 302 
                            Lab   Code 4320      MW 8:00-9:15 ECS 411 

Grading:   Midterm  exam                                 Mon. March 24                                    100 points
                   Final exam                                        Wednesday, May 21, 7:15-9:15          100 points
                   Twenty computer assignments                                                                     200 points 
                        Turn in hard copy and tests.

I give no make-up exams without a written medical excuse or the equivalent.  Late projects are not encouraged, and receive at least a 20% deduction.

Text:  There is no hard-copy text.  We will use web resources including books, language specifications, and articles. 
           See http://www.cecs.csulb.edu/~artg/424 for links to references and to the Ruby, C# and Erlang 
           examples that will be discussed in class.  This site has a link to a question and answer page.  Ask any subject-matter 
           question here so the whole class will see the answer.  Posting is anonymous.  
          
Labs:  The course Web site has 20 computer assignments.  Due dates are below.  Students may work together (no more than 
            three) if work is done during lab time where I can observe the interaction.  The idea is that two heads are better than 
            one, if two heads are actually being used.   Students who work ahead or finish everything at home should work by 
            themselves because obviously they would only be giving answers which is not the goal here.  We have two goals: pass 
            the class and learn valuable programming language concepts. The way to learn is by doing -- thus 20 assignments.  The
            way to pass the class is to ask a lot of questions and brainstorm with others which doing the assignments.

Topics:  A comparative programming languages course is a core requirement of virtually all CS programs.  The idea is to 
              explore programming language concepts more deeply than is possible in lower-level courses.  We will compare Ruby 
              and C# two very different languages each of great current interest. Ruby is dynamically typed with powerful features.  
              C# 3.0 supports language integrated query.  We will also look at Erlang which has built-in support for concurrency, 
              distribution, and fault tolerance. See the Web site for more background for these choices. 
  
Due Dates:  1, 2-6;  2, 2-11;   3, 2-13;  4, 2-18;  5, 2-20;  6, 2-25;  7, 2-27;  8, 3-3;  9, 3-5;  10, 3-10;  11. 3-12;
                   12, 4-7;  13, 4-9;  14, 4-14; 15, 4-16; 16, 4-21; 17, 4-23; 18, 4-28; 19, 4-30;  20, 5-5