pretty 4100 logo
Logo courtesy

California State University Stanislaus

CS 4100-01: Programming Languages (WP)

Fall 2020

M W F 1:00 pm - 1:50 pm, Zoom and other software

Instructor: Dr. Megan Thomas

[F'20 Online Information]       [Basic Information]       [Announcements]       [Calendar/Assignments]     [Links]

Welcome to CS 4100, Programming Languages

Course Description

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 tradeoffs 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 tradeoffs through a series of 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, and you will need to have passed the University Writing Proficiency Screening Test before enrolling.

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

Announcements and Upcoming Events

12/10/2020 If you missed the CR/NC deadline and still want that option, just email me. I'll do grade changes to CR/NC, upon request, until... oh, Aug 2021.
11/28/2020 Of possible interest: "Episode 434: Steven Skiena on Preparing for the Data Structures and Algorithm Job Interview" of the Software Engineering Radio podcast. (10 Nov 2020)
11/20/2020 Expecting 3 reviews from each student, requiring at least 2 good reviews. (Due today / Friday.)
Extra Credit for good reviews over and above the 2-3 good reviews required. For extra credit, submit the extra reviews by the Wednesday after Thanksgiving Break.
Don't forget to work on Assignment 3.
Pick papers for extra reviews as you please. The list of "who you are assigned to review" also includes how many reviews each student has received so far. (Picking an available paper with zero reviews would be nice.)
11/18/2020 Writing advice I've been accumulating based on what I see in paper drafts
11/4/2020 "The Highest Paying IT Jobs For 2021: Robert Half", 19 Oct 2020,
11/1/2020 The Midterm Quiz will be available on Tuesday, until Wednesday, 11/4 11:59 pm.
10/28/2020 Practice Quiz 2 will be available until Friday, 10/30 11:50 pm.
As the draft pages for the Mini-Peer Review are due on Monday, I want you to focus on polishing that over the weekend. The not-practice quiz will not be available until Monday at the earliest.
10/28/2020 Here is the midterm.
A blank MSWord (DOCX) document is here and a blank MSWord (DOC) document is here if you want to use them.
When you are done with the midterm, upload your work to the CS Homework site.
(Password for midterm and blank document is the same as the lecture slide password.)
10/20/2020 "10 surprising hot spots for software developer jobs in the US" by TechRepublic (27 Aug 2020)
"8 tips to land a startup job straight out of college: an exclusive interview with Greylock" by (8 Oct 2020)
10/7/2020 One paragraph has been added to the final project description, to make more clear a requirement some students get confused about. The new paragraph says:
"Added 2020 October 7: Note that no final paper version will be accepted unless the student participated completely in the Peer Review process. (Submitted a complete draft on the assigned date, and provided constructive feedback to classmates on their paper drafts.)"
9/22/2020 "Students Need to Know What Success in Computing Looks Like, Starting from Realistic Expectations" , Blogs@ACM, 12 Sept 2020.
"The top tech jobs in 2020 and the skills you must have to secure them", Ladders, 16 Sept 2020.
"How to succeed in your first 90 days of a new job when you start remote", The Enterprisers Project, 10 Sept 2020.
9/22/2020 At least once in the days between 9/22 and 10/6, write an entry in your Assignment 1 journal that responds to this prompt:
Write about one strength that you have.

Suggestions for possible strengths you could write about:
I am a good team member.
I learn from my mistakes.
I am an effective leader.
I am able to do meaningful research.
I am always learning how to be a better student.
I help move projects forward.
I am skilled at public speaking.
I am empathetic towards others.
I am a source of good energy.
I follow through on my commitments.
I am dependable.
I am self-aware.
I have overcome hardship.
I help other people when I can.
I advocate for others.
I take care of my health.
I keep going, at least most of the time!I am creative.
I can adapt to change.
I have hobbies.
(Most of list courtesy K. Oehme, Florida State U)
9/15/2020 Open to any / all STEM students on campus -- The Commons Connection: (Zoom link was emailed to you)
9/13/2020 Google is offering technical writing classes to its employees this Fall, and has put some of the course material online so others can benefit. "Technical Writing One" and "Technical Writing Two" both contain good advice about the style of writing CS 4100 focuses on.
9/4/2020 Chapter 2 (Fortran) starts soon. Chapters 0 - 2 available in Canvas. See 'Files.'
9/4/2020 "Developers: These are the programming languages that pay the most",, 3 Sept 2020.
8/28/2020 Office hours will be via Zoom. The Zoom link is available in an announcement in our class Canvas LMS site. The office hours available will be kept up to date on my main web page.
8/9/2020 "Tips for Succeeding in This and Other Online Courses" courtesy of the CS department at U. of Nebraska-Lincoln
8/8/2020 Curious about what an interview for a software engineering job might involve? Listen to: "Episode 412: Sam Gavis-Hughson on Technical Interviews", 10 June 2020, IEEE Software Engineering Radio
8/24/2020 Welcome to CS 4100!

Fall 2020 Online Information

Canvas Learning Management System, where some class activities, quizzes, and final paper submission to will be done.

Zoom class link information

Recordings of Zoom classes

Document scanning apps for smartphones that past students have recommended: CamScanner, Genius Scan, Adobe Scan. (Note that the professor doesn't care if the apps leave watermarks on your scans, as long as the documents are readable.)

"Tips for Succeeding in This and Other Online Courses" courtesy of the CS department at U. of Nebraska-Lincoln

Basic Information

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

Instructor: Dr. Megan Thomas
Office: Demergasso-Bava Hall 279

Web Page:

Best way to contact Dr. Thomas:   Email  Please put "CS4100" in the subject line of the email.

Prerequisite: Completion of the Writing Proficiency Screening Test with a passing score, and CS 3100.

Warning: I reserve the right to make changes to the syllabus at any time during the term by announcing them in class and on my web page.

Grading and Policies

Final grades will be based on projects and assignments, a term project and exams. A plus and minus grading scale wll 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 entirely 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

Projects and Assignments:  Homework will usually require you to organize you thoughts about some aspect of the material we are studying, and to write a carefully crafted and thoughtful paper. Some parts of your assignments will be used only for class discussion and not turned in, but usually they will be graded. In aggregate, all homework you turn in will comprise 30% of you final grade. Some of the questions will require problem solving or programming skills, but programming segments or other technical language will generally be in service of some larger point supported by prose arguments. Essays must be prepared on a word processor. Late assignments will be accepted unless you are notified otherwise, but will suffer a grading penalty dependent on the degree of lateness.

Term Project:  In addition to these assignments, you will be required to write a term project. Specific requirements and a timetable will be distributed early in the term. 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 earlier writing activities as well as the final product and will, in aggregate, count as 30% of your final course grade.

Submission of Projects and Assignments: All projects and assignments (unless otherwise stated) are to be turned as follows:
1. A hard copy is to be turned in at the beginning of class on the due date.
2. An electronic copy is to be uploaded to the CSHomework System ( by midnight on the due date.

Exams: There will be two exams given during the course of the semester, approximately in the sixth and the last weeks of the semester. The exact time of the exams will be announced a week in advance of each exam. Each exam will account for 20% of your final grade.
Grade Summary:
Projects and Assignments
Midterm Exam 15%
Term Project 30%
Final Exam 20%
Participation 5%
Total 100%

(The above four paragraphs borrowed liberally from Dr. Ray Zarling's CS 4100 course description, 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.


Regular class attendance is expected; attendance for certain activities will be required. Students are responsible for all announcements and in-class discussion.

Cell Phone Policy

If you attempt to use your cell phone or leave it on during an exam, you will be considered to have finished your test, and I will collect your exam at that time. Exceptions may be made only if you discuss your situation with me prior to the start of that day's class.

Audio / Video Recordings

Video recordings of class meetings will be made available by the instructor, as links. Be aware that, while Zoom will attempt to automatically caption the lectures, homonyms confuse the software that creates the captions.

The recordings are only for use of students in Fall 2020 CS 4100, and should not be shared with anyone outside the class.

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

Phone: Writing Center: (209) 667-3465


Services and Support at CSU Stanislaus

Student Health Center
Health Center Building / 209-667-3396 /

Medical care, health education, disease prevention, laboratory testing, physicals, women's and reproductive health, flu shots, immunizations.

Disability Resource Services
Library Annex 24 / 209-667-3159 /

Supports students and arranges accommodations for students with disabilities, including disabilities related to learning, vision, mobility, hearing, autism, or chronic or temporary health factors.

Psychological Counseling Services
Student Services Annex 1 / 209-667-3381 /

Confidential individual personal counseling and group/wellness workshops to help students deal with stress, anxiety, depression, grief, relationships.

Diversity Center
Library Annex 6 and 7 / 209-667-3511 /

Workshops, student space, reading nook, complimentary coffee and tea, social justice library, conference room space.

Undocumented Student Services
Library Annex 6 / 209-667-3519 /

Walk-in advising, workshops, legal services, DACA renewal, scholarships, peer support, family and community engagement.

Academic Success Center
MSR 210 / 209-667-3700 /

Drop-in advising for general education, university requirements, undeclared majors, academic probation, and California Promise.

Learning Commons
Library Annex 14 / 209-667-3642 /

Tutoring (walk-in and regular appointments), supplemental instruction, WPST, writing center.

Career and Professional Development
MSR 230 / 209-667-3661 /

Career coaching, workshops, resume building, business attire, and more.

Web Sites for Paper Sources, and Interesting Articles

Paper Topic Ideas, Sources

Computer Science & Information Systems from the CSU Stanislaus Library

Lecture Extra Information


(The contents of this web page are borrowed liberally from Dr. Melanie Martin's CS 4100 course description, with permission.)