Contemporary Programming Languages is an experimental course offered by the Computer Science Department. It was first taught in Spring 2016. Students will learn the basics of several modern programming languages including Python, JavaScript, and Go through intensive programming projects.


This course aims to:

  • Familiarize students with modern programming languages, programming constructs, and the tools commonly used to develop software in those languages.
  • Help students develop programming skill in different languages, which will serve as a foundation for developing applications in a wide range of domains.
  • Build critical thinking skills by requiring students to solve problems with unfamiliar programming constructs and paradigms.

Intended Audience & Prerequisites

This course targets freshman and sophomore level students in computer science, but upperclassmen in computer science and other disciplines may benefit as well.


  • Grade of “B” or better in CS 1570 - Intro to Programming
  • Grade of “B” or better in CS 1580 - Intro to Programming Lab


Office and Office Hours

  • Office Hours
    • Mondays from 9:30AM - 11:00AM in CS 317
    • Wednesdays from 9:30AM - 11:00AM in CS 317


Email Mike or use the Google Calendar appointment tool to make an appointment to meet outside of class. He is glad to help!

Once the instructor and student(s) agree on a time, then the instructor will decide on a meeting location and inform the student(s).

Unscheduled Visits

During office hours, you’re more than welcome to drop by with questions. No appointment is necessary. That’s what office hours are for.

Outside of office ours, it’s better to schedule an appointment. Although your instructor is frequently available to help, it works out better when you’ve agreed on a time to meet.


Lectures take place as follows:

  • Section B: T/R - 12:30PM to 1:45PM - Room 207, Computer Science Building

The topics covered in lectures through the semester are as follows:

  • ~1 lectures on Introductory Content
  • ~8 lectures on Python
  • ~8 lectures on JavaScript
  • ~8 lectures on Go
  • ~2 lectures on Elm
  • ~2 lectures on Julia

As this is an experimental course, this schedule is subject to change at the discretion of the instructor.

Course Policies


This is an experimental course. By nature, things (including (but not limited to) the intended schedule, topics, and assignments) may need to be adjusted during the course of the semester. The instructor will do his best to inform students of changes as early as reasonably possible (per his judgment).


Email is the preferred method of communication. Students should email the instructor if they have questions or concerns related to the course. Students should also check their email at least once a day for emails from the instructor.

The instructor checks his email regularly during normal business hours (CST). Do not expect a response to emails sent outside of normal business hours until the next business day.


  • Attendance is not required, however it is strongly recommended.
  • If a student misses class, it is their responsibility to find out what they missed and learn the material that was covered; it is not the instructor’s responsibility.


  • There will be up to four, in-class tests throughout the semester.
  • All tests will be worth the same number of points.

The date and time of tests will be announced roughly one week prior to the test in class.

Makeups & Extensions

  • Student may not take tests early. Ever.
  • Students may not make-up a test unless they have an acceptable and verifiable reason.
  • The decision to permit a make-up test or approve an alternative test time is ultimately at the discretion of the instructor.


  • There will be up to 11 homework assignments throughout the semester.
  • Homework assignments will be announced in class along with their submission deadlines.
  • Homework assignment specifications will be posted online.
  • Students are encouraged to start homework assignments early to allow time for the instructor to address questions and concerns.
  • As described below, cheating will not be tolerated on any assessment (homework or test) in this course. Unless specified otherwise, homework assignments are to be completed individually. Students are free to ask questions of others and learn from friends, but they may not copy answers, ideas, and/or code. If there is any question or concern as to whether something would be considered cheating, students should contact the instructor prior to doing that thing.1

All code must be properly commented/documented. This will be included as part of every assignment specification, but it’s so important that it is being mentioned here as well.

Submission Mechanism

Students will use Git and GitLab to submit homework assignments for this course. As such, students will be required to make accounts on in order for the instructor to assign homework repositories. Students must push commits with their submissions to their remote homework repository on GitLab before the assignment deadline. Homework assignment specifications will describe submission procedures in more detail.

Students should not ask IT for assistance with git or GitLab. If a student has an issue, they should contact their instructor first.

Submission Deadlines

The submission deadline of homework assignments will not be changed for individual students.

Unless specified otherwise, the penalties for late submissions are as follows:

  • First two late submissions:
    • 20% penalty if submitted within (00, 24) hours of the submission deadline
    • 40% penalty if submitted within [24, 48) hours of the submission deadline
    • No credit thereafter
  • Subsequent late submissions:
    • No credit

Reading between the lines: a student may submit up to two assignments after the original deadline.


Final Grades

A student’s final grade in the course will be the weighted sum of their test average and assignment average. The following weights will be used in the calculation:

  • Tests: 40%
  • Assignments: 60%

Final letter grades will be based on a straight scale using the calculated final grade value. In interval notation, the scale is:

  • A = [90, 100]
  • B = [80, 90)
  • C = [70, 80)
  • D = [60, 70)
  • F = [0, 60)

S&Tconnect / Early Alert System

The purpose of the S&Tconnect Early Alert System (see the S&Tconnect tab in Canvas) is to improve the overall academic success of students by improving communication among students, instructors and advisors; reducing the time required for students to be informed of their academic status; and informing students of actions necessary by them in order to meet the academic requirements in their courses.


If you have a documented disability and anticipate needing accommodations in this course, you are strongly encouraged to meet with the instructor as early as possible in the semester. You will need to request that the Disability Support Services staff send a letter to the instructor verifying your disability and specifying the accommodation you will need before the instructor can arrange your accommodation. Disability Support Services is located in 203 Norwood Hall, their phone number is 573-341-6655, and their E-mail is You can also initiate the accommodation process at

Student Honor Code & Academic Integrity

Every student enrolled in this course is expected to be familiar with both the Student Honor Code (written by Student Council) and Missouri S&T’s Student Academic Regulations, including the section on Conduct of Students which on page 23 of the June 2016 revision, defines several forms of Academic Dishonesty such as cheating, plagiarism, and sabotage. Incidences of Academic Dishonesty will typically result in zero grades for the respective course components, notification of the student’s advisor, the student’s department chair, and the campus undergraduate studies office, and further academic sanctions may be imposed as well in accordance with the regulations. Note that those who allow others to copy their work are just as guilty of plagiarism and will be treated in the same manner.

Classroom Egress Map

Student should familiarize themselves with the classroom egress map posted here.

Title IX

Missouri University of Science and Technology is committed to the safety and well-being of all members of its community. US Federal Law Title IX states that no member of the university community shall, on the basis of sex, be excluded from participation in, or be denied benefits of, or be subjected to discrimination under any education program or activity. Furthermore, in accordance with Title IX guidelines from the US Office of Civil Rights, Missouri S&T requires that all faculty and staff members report, to the Missouri S&T Title IX Coordinator, any notice of sexual harassment, abuse, and/or violence (including personal relational abuse, relational/domestic violence, and stalking) disclosed through communication including but not limited to direct conversation, email, social media, classroom papers and homework exercises.

Missouri S&T’s Title IX Coordinator is interim chief diversity officer Neil Outar. Contact him (; (573) 341-6038; Temporary Facility A-1200 N. Pine Street) to report Title IX violations. To learn more about Title IX resources and reporting options (confidential and non-confidential) available to Missouri S&T students, staff, and faculty, please visit

Modifications to this syllabus can be seen on the History of Syllabus page of this website.

  1. Rule of thumb: if you think it might be considered cheating, it probably is. Don’t do it.