CSCI 344 Programming Languages


This section of the course (Spring 2015) meets Monday, Wednesday, and Friday from 1:10PM-2:00PM in Ritter Hall 119.

General Description

This course looks at programming languages as objects of study in of themselves. There are three main topics in the course, which are interwoven with one another to a certain extent. We begin with a substantial amount of theoretical material on languages in the abstract sense, context-free grammars, automata, and parsing. We then focus in on language design and implementation: types, bindings, scopes, mechanisms for program flow, etc. Finally, we look carefully at some programming paradigms that you do not generally encounter in your other undergraduate courses: functional programming (via LISP) and logic programming (via Prolog). Tying in with the earlier topics, we explore the theoretical underpinnings of these paradigms (lambda calculus and first-order predicate calculus, respectively), and also issues related to their implementations.

Here is the course schedule where I will place announcements of exams, quizzes, homework assignments, and other date-sensitive material.

The course prerequisite is a passing grade in CSCI 290 (Object-Oriented Software Design).

Textbook Information

There is no textbook for the course, making attendance at lecture all the more important.

Homework and Exams

I will give approximately eight in-class quizzes (roughly one every two weeks) throughout the semester; dates TBA, depending on our progress through the course material. The quizzes are usually true/false, multiple choice, and some short answer, and only take about 10 minutes at the beginning of class. I'll drop your lowest quiz score, but I will not allow you to make up quizzes that you miss because of absence or if you arrive late for class. Together the quizzes make up 50% of your final grade.

You will also be asked to do a semester software project related to some topic we cover in the course, accounting for 25% of your final grade. I'll give you some ideas as we approach the middle of the semester. Since we cover a lot of different things, this is a good opportunity for you to explore some particular topic in greater depth.

Last but not least, there is a final exam scheduled for Monday, May 11th from 12:00-1:50PM; it is comprehensive and is worth 25% of your final grade.

Students are expected to be honest in their academic work. The University reserves the right to penalize any student whose academic conduct at any time is, in its judgment, detrimental to the University. Such conduct shall include cases of plagiarism, collusion, cheating, giving or receiving or offering or soliciting information in examinations, or the use of previously prepared material in examinations or quizzes. Violations should be reported to your course instructor, who will investigate and adjudicate them according to the policy on academic honesty of the College of Arts and Sciences. If the charges are found to be true, the student may be liable for academic or disciplinary probation, suspension, or expulsion by the University. Students should review the College of Arts and Sciences policy on Academic Honesty.

In recognition that people learn in a variety of ways and that learning is influenced by multiple factors (e.g., prior experience, study skills, learning disability), resources to support student success are available on campus. Students who think they might benefit from these resources can find out more about:

Students who believe that, due to a disability, they could benefit from academic accommodations are encouraged to contact Disability Services at 314-977-8885 or visit the Student Success Center. Confidentiality will be observed in all inquiries. Course instructors support student accommodation requests when an approved letter from Disability Services has been received and when students discuss these accommodations with the instructor after receipt of the approved letter.