CS4100 Programming Languages

Fall, 2021

Instructor: Dr. Tom Carter
    Office: DBH 287a
    Phone: 667-3175
    e-mail: tcarter@csustan.edu or tom@cs.csustan.edu

Office Hours:   by email, or Zoom by Appointment.

Best way to contact Dr. Carter:  Email tcarter@csustan.edu .   Please put "CS4100" in the subject line of the email.                  

Text:   We will be using

     Principles of Programming Languages: Design, Evaluation, and Implementation (Third Ed.)   by Bruce J. MacLennan

     This book is out of print, but the author has made it available online.  I am making it available within Canvas.  You can also look here:             http://web.eecs.utk.edu/~bmaclenn/POPL/index.html

Course Introduction:

This course will introduce you to the principles of the design, evaluation, and implementation of computer programming languages. As such it is not a crash course to teach you to program in a half dozen new dialects, although you will find learning new languages easier as a result of this study. Our emphasis will be on the kinds of features languages might have, how they influence a programmer's thought process, and how they may be implemented on a computer.

At this level of study, we will find that complex trade-offs between language principles coupled with a variety of differing goals often can lead designers to radically different design decisions. There seems to be no single "right" way to design a programming language, no single language that is "right" for all applications. You will be asked to explore some of these trade-offs through writing assignments in which your thought process and ability to balance fairly many aspects of complex issues will often be more important than the conclusions you reach. Because of this subject matter and pedagogical approach, this course meets the University graduation requirement for Writing Proficiency.

(The above paragraphs are from Dr. Ray Zarling's CS 4100 course description, with permission.) 

Prerequisite: Completion of the "Golden 4" lower division GE courses (A1, A2, A3, B4) and successful completion of CS 3100.

Course modality:  Given the times we live in (e.g., COVID pandemic), I am setting this class up to accommodate students in various ways (face-to-face, virtual synchronous, and virtual asynchronous).  During the first part of the semester (currently planned up to Oct. 1), we will meet synchronously through Zoom (I will send links for each Zoom session before each class).  I will be recording these Zoom sessions, so that students can asynchronously access them as needed.  After Oct. 1, I plan to have regular class meetings in person on campus, but I also plan to allow Zoom access to class sessions for virtual synchronous access, and record the sessions for virtual asynchronous access.  Aspects of this process will be new to me and to students, so we will need to be flexible and willing to explore and experiment.

Warning: I reserve the right to make changes to the syllabus as needed during the term.  Any changes will be announced in class.

Grading and Policies

Final grades will be based on writing projects and assignments, specifically including a significant term paper.  We may also have brief (announced) quizzes and a mid-term exam.  We will discuss this more in class. A plus and minus grading scale will be used to assign final grades. Except for designated collaborative activities in connection with the project, all writing and other work you present for credit must be your own, or developed on your own in consultation with the course instructor or other Department faculty. Penalties for representing other people's work as your own will range from No Credit on an assignment through failure of the course and possible University disciplinary action. Over the course of the term we will discuss these issues in more detail, but it is your responsibility to seek clarification and understand the parameters involved. Your work may be electronically checked for plagiarism using Turnitin.com.

Baseline Requirements:

There are certain components of this course that are required to receive a passing grade:
1. A topic proposal with appropriate references and required format, that is approved by instructor before the topic presentations.
2. An oral presentation of your topic and providing feedback to other students on their presentations.
3. Participation in the paper peer review process.
4. Turning in a final version of your paper that meets the following criteria:
    a. At least 2000 words in length (target is 2500 words),
    b. References in appropriate format (see, for example, https://dal.ca.libguides.com/c.php?g=257109&p=1717772 ).
    c. All references are peer reviewed (generally, journal articles or conference proceedings), published books, or primary sources. (No wikipedia, blogs, stackoverflow, etc., although these may be useful starting points for further exploration)
5. Participation in all class activities relating to plagiarism.

Please note that completion of these activities does not guarantee a passing grade in the course, but failure to complete them eliminates the possibility of passing the course. 

Writing and Coding Assignments:  To help you prepare for class discussions, you will submit a brief response to each reading, to be submitted through  Canvas  each week. For some sections, I may give you more explicit directions for your responses to the readings. I will discuss this more in class.


I also plan for some problem solving or programming exercises, to help clarify specific aspects of general programming language principles, or to expand on characteristics of particular languages.  More detail on this will be provided in class.

Term Project:  In addition to these assignments, you will be required to write a term project. Specific requirements and a timetable will be updated in class, and, as appropriate, in Canvas. The project will take the place of a final exam, and the final draft of the project will be due at the time normally scheduled for the final. It will not be accepted after that time. The project grade will be based upon prewriting activities as well as the final product and will in aggregate count as approximately half of your final course grade.

Submission of Projects and Assignments: All projects and assignments will be turned electronically through Canvas. 

Exams: I plan for one mid-term exam during the semester, possibly supplemented by brief quizzes. The exact day of the exam/quizzes will be announced in class in advance. The exam will be about 20% of your final grade.

Grade Summary:

Writing and Coding Assignments


Midterm Exam and Quizzes


Term Project





(The above borrowed liberally from Dr. Ray Zarling's CS 4100, with permission.)

Academic Honesty: The work you do for this course will be your own, unless otherwise specified. You are not to submit other people's work and represent it as your own. I consider academic honesty to be at the core of the University's activities in education and research. Academic honesty is expected at all times in this course.

Turnitin. com:
 In this course I may utilize turnitin.com, an automated system which instructors can use to quickly and easily compare each student's assignment with millions of web sites, as well as an enormous database of student papers that grows with each submission. After the assignment is processed, as instructor, I receive a report from turnitin.com that states if and how another author’s work was used in the assignment.  For a more detailed look at this process visit http://www.turnitin.com.  

University Recording Policy: Audio or video recording (or any other form of recording) of classes is not permitted unless expressly allowed by the faculty member as indicated in the course syllabus or as a special accommodation for students who are currently registered with the Disability Resource Services Program and are approved for this accommodation. Recordings allowed as special accommodations are for the personal use of the DRS-approved student, and may only be distributed to other persons who have been approved by the DRS program. Faculty may require the student sign an Audio/Video Recording Agreement, which they may keep for their records.


For this course, I will permit recording, strictly for personal use, or for sharing with other members of the class.  Such a recording may not be made available to anyone else, or used for any purpose beyond this class.

University Disability Services:  CSU Stanislaus respects all forms of diversity. By university commitment and by law, students with disabilities are entitled to participate in academic activities and to be tested in a manner that accurately assesses their knowledge and skills. They also may qualify for reasonable accommodations that ensure equal access to lectures, labs, films, and other class-related activities.   Please see the instructor if you need accommodations for a registered disability.  Students can contact the Disability Resource Services office for additional information.  The Disability Resource Services website can be accessed at http://www.csustan.edu/DRS/ 
Phone: (209) 667-3159

University Writing Center: The Writing Center offers free individual and small group tutoring to students from all disciplines and at all levels of proficiency. Dedicated to encouraging dialogue among writers and helping students become successful writers, the Writing Center provides a supportive, judgment-free atmosphere in which tutors share strategies and experiences at each stage of the writing process. Graduate and undergraduate tutors are evolving writers who, through experience and training, continue to develop their abilities as tutors and writers.

The Writing Center website is located at http://www.csustan.edu/writingcenter/ 

Phone:  Writing Center: (209) 667-3465

Email: writingcenter@csustan.edu