MC logo
CSc 404 Syllabus
[^] CSc 404 Home Page
CSc 404
Spring, 2018
3 Credits
Programming Language Structures
Instructor: Tom Bennet
Office: 302 MCC
Phone: 601-925-3815
Email: bennet@mc.edu
Text: Programming Languages: Principles and Paradigms, by Allen B Tucker & Robert Noonan, ISBN 987-0-07-286609-4
Web Page: http://sandbox.mc.edu/~bennet/cs404

An introduction to the principles of programming language design and implementation, syntax, data types, scope, data abstractions, concurrency and Object-Oriented Programming. Prerequisite: CSC 216

This course is fundamental to the understanding of programming languages. By studying the history, development, design and implementation of programming languages, the student gains an understanding of how and why the languages we use contain the features they contain, and omit the features they omit.

The course will examine formal methods for describing programming language syntax and semantics, and the methods used to translate languages and support them at run time.

Instruction will be through lecture, class discussion, programming projects, and problem-solving.


This class is a mixed undergraduate/graduate section. For graduate students, an additional 100-point graduate project is required. For both classes, grades are assigned based on the percentage of points earned.
Points Undergrad Graduate (+50 pts)
Activity Points
Programming Projects and Homework 250
Regular exams (3 @ 100) 300
Comprehensive Final Exam 200

Points Percent Grade
675 - 750 90%- 100% A
600 - 674 80%- 89% B
525 - 599 70%- 79% C
450 - 524 60%- 69% D
0 - 449 0%- 59% F
Points Percent Grade
720 - 800 90%- 100% A
640 - 719 80%- 89% B
560 - 639 70%- 79% C
480 - 559 60%- 69% D
0 - 479 0%- 59% F
The semester point total may vary due to unforeseen circumstances. Any variance will be small. Final grades will be based on these same percentages of the actual total.

There will be several programming assignments of varying difficulty, three regular exams, and a comprehensive final exam, according to this schedule. The final exam will on Friday April 27, at 12:00. The last day to drop this course is Friday, March 23, 2018.

Graduate students must perform an additional project. The graduate report may be a library research paper, or present the results of the student's own work. The topic must be approved by the instructor. A research paper must be at least 4 pages single-spaced, using reasonable fonts and margins. It must have at least 8 references. A programming project should be accompanied by a short paper (one page is usually sufficient) describing what it does and how to run it. Some possible topics include:

Any projects must be approved ahead of time, even if it seems to fit one of the above examples.

Programming Projects

As part of our study of programming languages, we will have several small projects using three important languages which are “off the beaten path.” Software to process these languages will be available in the labs, and (in most cases) for free download on the web. These projects are given to emphasize concepts in the course, as well as to expand the student's horizons beyond the usual way of doing things in the procedural languages.

Each project will be small. Each language will have one very simple project to give experience running the language processor, and at least one more project which emphasizes interesting features of the language.

Projects should be handed in on time, and late projects are charged 10 points for each day late. However, each student has five free late days which may be spent on any programming project in any combination. Free late days are not transferable, and expire at start of the final exam.


Mississippi College class attendance policies as described on pp. 46 and 47 of the college catalog will be enforced. Absences may be excused for illness or other appropriate cause. Exams missed due to circumstances beyond the student's control may be made up at a mutually agreeable time and place. Adequate documentation of the cause of an absence may be required.

Academic Honesty

Mississippi College regulations regarding the integrity of academic work will be enforced. The computer science group has established the following addendum:

In a computer science class individual effort is expected. Student misconduct not only includes cheating on tests, but also extends to copying or collaborating on programming assignments, projects, lab work or research unless otherwise specified by the instructor. Using other people's accounts to do your work or having others do your work is prohibited. Close proximity in lab does not mean collaboration is permitted. NOTE: Discussing logical solutions to problems is acceptable, exchange of code, pseudocode, designs, or procuring solutions from the Web, other texts, the Internet or other resources on or off campus is not acceptable.

First offense: grade of 0 for all parties involved unless the guilty party can be determined. Second offense: grade of F in the course.