CSc 372 (Comparative Programming Languages) Syllabus Summary
Spring 2017

NOTE: This is only a summary of the class syllabus; see the long version for full details!

General Catalog Information:

Description: Introduction to several major high-level programming languages and their characteristics. Programming projects are required in at least three languages.
Lecture: Mondays, Wednesdays, and Fridays, 2:00 p.m. - 2:50 p.m., BioW 208
Prerequisite(s): Passing grades in either CSc 127B or CSc 227, and CS Major status.
This class requires that you write non-trivial programs in three or more languages. This semester, I anticipate that there will be four: Ruby, Haskell, Prolog, and one of your choosing. There will also be some written homework assignments covering general concepts of programming languages.
Credits: 3
Final Exam: Friday, May 5, 2017, 1:00 p.m. - 3:00 p.m. The final is comprehensive, and will be given on this date at this time. Make your travel plans accordingly.

Class Personnel:

Name Office Email Phone Fax Office Hours
Instructor Lester I. McCann, Ph.D. G-S 819 mccannl@acm.org 621-3498 621-4246 M 10:30-noon, R 1-2:30pm
UG TA Patrick Hickey G-S 856 patrickhickey@email --- 621-4246 T&R 10-noon
UG TA Andrea Padula G-S 856 apadula@email --- 621-4246 M&W 3-4pm, T 2-4pm

Please keep in mind that it is possible to meet us outside of office hours. Contact us to make an appointment.

Information Resources:

Homepage: http://www.cs.arizona.edu/classes/cs372/spring17/
Textbook: Programming Languages -- Principles and Practice (Louden/Lambert), 3rd ed., Cengage, 2012. is the required text. There is a Student Companion Site, but it only has the errata list and an archive of files.
Used copies of this edition of the text are available, as are rentals and an eBook version.

Grades and Grading:

Schedule of Topics and Activities:

A schedule of topics is required by the University. Please be aware that any number of unforeseen circumstances can cause a schedule to become inaccurate. Thus, you should not rely on this schedule. It is your responsibility to pay attention to, and adhere to, changes announced in class, by email, and via the discussion board.

     Week   Class #   Scheduled Topic(s)       Assigned        Due
     ----   -------   ------------------       --------   --------------
       1      1,2      Class Info, 1              H1            --
       2      3,4      1, 2                       --      H1 (Fri, 1/20)
       3      5-7      3, Ruby                    P1            --
       4      8-10     Ruby                       --            --
       5     11-13     4, 5                       H2      P1 (Fri 2/10)
       6     14-16     5, Haskell                 --      H2 (Fri 2/17)
       7     17-19     Haskell, Exam #1 (2/24)    P2            --
       8     20-22     Haskell                    --            --
       9     23-25     6,SNOBOL,Icon(B.Mitchell)  --      P2 (Fri 3/10)
  [ -------------------------- SPRING BREAK! ----------------------------- ]
      10     26-28     6                          H3            --
      11     29-31     6,7                        --      H3 (Fri 3/31)
      12     32-34     Prolog, Exam #2 (4/07)     J1            --
      13     35-37     Prolog                     P3            --
      14     38-40     Prolog, 8                  --      P3 (Fri 4/21)
      15     41-43     9, 10                      --            --
      16     44,45     10                         --      J1 (Wed 5/03)
     Finals    --      Final Exam (Fri 1:00pm)

(The original post-break schedule, for reference:

      10     26-28     6, 7                       H3            --
      11     29-31     7, Prolog                  --      H3 (Fri 3/31)
      12     32-34     Prolog, Exam #2 (4/07)     P3            --
      13     35-37     Prolog, 8                  J1            --
      14     38-40     8, 9                       --      P3 (Fri 4/21)
      15     41-43     9                          --            --
      16     44,45     Catch-Up / Bonus Topics    --      J1 (Wed 5/03)    )

NOTE: This is only a summary of the class syllabus; see the long version for full details!