CSci 450-01: Organization of Programming Languages
CSci 503-01: Fundamental Concepts in Languages
Fall 2014 Syllabus


Locations

The Fall 2014 class meets in 106 Weir Hall at 9:00 a.m. to 9:50 a.m. on Mondays, Wednesdays, and Fridays. (Because of class size, CSci 503 may meet at a different time.)

The class is taught by Prof. Conrad Cunningham, whose office is in 203 Weir Hall. Prof. Cunningham's voice telephone number is (662) 915-5358 and fax number is (662) 915-5623. His WWW home page is http://www.cs.olemiss.edu/~hcc/ and his email address is hcc AT cs DOT olemiss DOT edu. The official office hours for this class are 1:00 p.m. until 2:30 p.m. on Mondays and Wednesdays and by appointment at other times.

The WWW home page for this class is http://www.cs.olemiss.edu/~hcc/csci450/.

The final examination for this class is scheduled for Wednesday, 10 December at 8:00 a.m.

Student Disabilities Services Statement

"It is the responsibility of any student with a disability who requests a reasonable accommodation to contact the Office of Disability Services (915-7128). Contact will then be made by that office through the student to the instructor of this class. The instructor will then be happy to work with the student so that a reasonable accommodation of any disability can be made."

Course Descriptions from Catalog

CSci 450: Organization of Programming Languages: History and concepts of programming languages; run-time behavior; formal aspects; language definition; data types and structures; control; and data flow, compilation and interpretation.

CSci 503: Fundamental Concepts in Languages: An intensive study of the fundamental concepts of programming languages and the associated software system structures. Computer science graduate students only.

-- Which course should I take?

CSci 450, Organization of Programming Languages, is a core undergraduate course required for BSCS and BA students. Undergraduate students should enroll in CSci 450 instead of CSci 503. CSci 503 is restricted to graduate students.

CSci 503, Fundamental Concepts in Languages, is a transition course designed for students with undergraduate degrees in related fields who wish to study computer science at the graduate level but who need to strengthen their backgrounds in programming language paradigms and organization. Enrollment in this courses is limited to computer science graduate students who have been admitted in conditional, qualifying, or nondegree standing. Qualifying and nondegree students must have the permission of both the Department and the Graduate School to enroll. Credit for this course cannot be applied to MS or PhD degrees in computer science.

Graduate students in other fields should not enroll in this class. (We do not currently have the capacity to handle additional students.)

Prerequisites

CSci 450: CSci 211 and 223 with minimum grades of C-
CSci 503: Computer Science graduate students only

Course Outcomes/Objectives (under development)

Upon successful completion of this course, students will be able to:

  1. understand the fundamental principles underlying various programming language features
  2. understand and apply ideas from different programming paradigms such as functional, imperative, modular, object-oriented, and logic
  3. design and implement simple programming languages

Source Materials

Programming language concepts
Functional programming using Haskell
Multiparadigm programming using Lua
Logic programming using Prolog

Course Topics (under development)

  1. History of programming languages
  2. Programming paradigms
  3. Functional programming using Haskell
  4. Basic concepts of language design and implementation
  5. Dynamic imperative programming using Lua
  6. Modular programming
  7. Prototype-based object-oriented programming using Lua
  8. (insufficient time Fall 2014) Logic programming using Prolog

Professional Conduct

As a student in CSci 450/503, you are expected to conduct yourself in a professional manner according to the Honor Code of the School of Engineering, the Information Technology (IT) Appropriate Use Policy, the M Book, and any other relevant policies.

Limited Collaboration Policy. Unless otherwise indicated, any homework assignment or programming exercise given in this class will be an individual assignment. The work you submit is to reflect the knowledge, understanding, and skill that you have attained as an individual. However, the instructor does want to encourage the development of a community of scholars who are actively engaged in discussion of the ideas related to this course. With this in mind, you are allowed to discuss solutions of the homework and programming problems with other students if done so according to the following guidelines:

Grading

Assignments and Projects

Examinations


UP to CSci 450/503 root document?


Copyright © 2014, H. Conrad Cunningham
Last modified: Sat Jan 10 16:40:34 CST 2015