Logo courtesy Wordle.net
[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, CRN.com |
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 Thinknum.com (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: https://www.csustan.edu/STEM-success/stem-study-spaces (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", ZDNet.com, 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! |
Canvas Learning Management System, where some class activities, quizzes, and final paper submission to Turnitin.com will be done.
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
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
Email: mthomas@cs.csustan.edu
Web Page: www.cs.csustan.edu/~mthomas
Best way to contact Dr. Thomas:
Email mthomas@cs.csustan.edu 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.
Projects and Assignments |
30% |
Midterm Exam | 15% |
Term Project | 30% |
Final Exam | 20% |
Participation | 5% |
Total | 100% |
The recordings are only for use of students in Fall 2020 CS 4100, and should not be shared with anyone outside the class.
The Writing Center website is located at http://www.csustan.edu/writingcenter/
Phone: Writing Center: (209) 667-3465
Email: writingcenter@csustan.edu
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.)