1 SyllabusGeneral


This pages contains general syllabus components for all of my classes.
Individual class pages specify particular details for each class.

1.1 Class communication procedures (actually read and follow these)

For any class-related communications, do NOT email, do NOT use Canvas messaging, and do NOT send me a Zoom invite;
if you do, I will kindly send you a link to this section of the syllabus,
reminding you to use the following methods (or help you get them working).

Instead, for all class-related queries, please only either:

  1. ask during office hours, or after class, or

  2. use the Zulip synchronous chat system, where you can either:

If you have random, non-class questions about computer science, etc.,
then feel free to email, chat, ask in person,
write a letter, send a carrier pigeon, a secret cipher, or whatever :)

1.2 Course websites

1.3 Office hours and programming help

How do I get help in this class?

1.3.1 What to ask in your questions?

What kind of questions might you ask?
What do I type?
Why do I type that?
Why does it work that way?
How does this principle work?
Why does this principle work this way?

What should you be asking in office hours?
The first question above is not a good question…
Our goal is not to teach you typing, or “Karaoke coding”…
If you are asking questions that merely amount to:
“what do I type or do to fix my code?”,
then you should think about the problem with more curiosity.
Your goal should be to obtain at a deeper understanding,
by asking questions that inform the mental model you should be building!

1.3.2 Who

The professor and class helpers:

1.3.2.1 Instructor

Please feel free to attend the professor’s office hours,
either during scheduled times or by appointment.
If you are having trouble, this can be very helpful!
If you can not make office hours times due to a consistent time conflict,
I will make every attempt to find a time to meet with you.

Pro-tip:
We are really happy to help.
Hint: Do your programming assignments early,
and come to get assistance early :)

1.3.2.1.1 Instructor’s office hours

All office hours start the second week of class,
and do NOT occur on the same schedule during finals week.

Where:
CS building, 2nd floor lounge and Linux lab, room 212/213.
If I’m not there, then check my office, CS322.

When:
Monday, Wednesday, 4:00pm-5:00pm
Friday, 2:00-2:50pm (some days 4:00pm-5:00pm, but not all)

If you can not make office hours times due to a consistent time conflict,
we will make every attempt to find a time to meet with you.

1.3.2.2 Student helpers

See the detailed class-specific syllabus to see details for this option.
Student helpers may include:
LEAD, SSC tutors, paid graders, graduate teaching assistants, and more!

1.3.3 Class forum

https://cs****.zulipchat.com (where **** is your course catalog number)
There is also an invite link posted in Canvas.
Use your @umsystem email to register an account with each course instance.
Zulip is a better-designed alternative slack/discord/teams/etc,
which is optimized for programming teams, and supports coding projects well.

1.3.3.1 Why do we use Zulip (and A/V provider Jitsi)?

This is a common question:

Our goal is to optimize the help and community for students (we have your goals at heart).
Thus, myself and my graders/GTAs, have experimented with many of the common team communication platforms,
including: Discord, Slack, Teams, Rocketchat, Mattermost, GroupMe, etc.
Zulip is clearly better designed for getting help and actually coordinating on content,
rather than engaging in big streams of whining banter, where actual answers get lost in the drivel,
and so questions get asked again and again…
Zulip is just a great product for team cooperation and communication,
and there is good reason that the core python developers themselves use it as their communication platform.
It has a good privacy policy, is cross platform (most all platforms, including mobile), and open source.
It has true topic threading, efficient chat, direct messages, group chats,
code highlighting, file share, audio-video spin-off, etc.
https://zulip.com/why-zulip/
https://zulip.com/features/
Syllabus/zulip.png

The two main contenders people use at MST in CS are:

Discord
I have nothing against discord, and still use it for some things (I even visit the CS discord),
it’s just not as well-designed for content-based discussions and collaborations as Zulip.
There is a department discord: https://discord.gg/f5KPWfw
You can join this, and there will likely be help channels for your course there.
But, it’s less likely to get you substantial help than the course’s Zulip chat.
Discord has both single public rooms, and direct messages, but does not have true threading,
and thus tends to make it difficult to find already-answered questions,
as well as tending toward meaningless banter, skipped questions, off-topic discussions, etc.
It is cross-platform.
But, it is closed source, and the privacy policy is questionable at best,
more likely a bit predatory.
Discord has recently added audio chat spin-off.
These platforms have been used for cheating in the past,
and we do monitor them, to make sure it’s not going on now.

Canvas
Canvas forums do threading, which is nicer than one big chat room,
but the post-based discussion forums are clunky and slow.
Canvas does chat, but it’s one single stream, and has no direct 1v1 or small group chat.
University hosted, open source.
No reasonable audio-video spin-off option.

https://www.discourse.org/
Discourse is pretty nice too, but not quite as seamless, quick, and efficient as Zulip,
and a slightly different model, more targeted at public-facing organizations.

1.4 Class/teaching evaluation and improvement

Please let me know what you like about the class and how it can be improved!
I usually do mid-semester feedback (in upper level classes), and use that feedback.

1.4.1 Educational goals

“As gold which one cannot spend will make no person rich, so knowledge which one cannot apply will make no person wise.”
- Samuel Johnson.

As this quote suggests, my primary goal in courses is practical,
to provide you familiarity with theory and methods commonly employed,
both in many real-world applications, and also those which are used for more advanced methods.
My secondary goal is to practice actually implementing these methods,
both to assist understanding, and also to increase retention.

1.5 Overall grading

Weighting calculation
Weighting between grade categories is available on Canvas.
Weighting percentages for each category may change slightly toward the end of the semester,
depending on student performance.
I occasionally try to re-weight to improve grand average scores.

Grade computation
Your final grade = percent of possible points.
Your letter grade = standard S&T letter-percentile mapping:

Grade ranges
A: [90.00 - 100] %
B: [80.00 - 90) %
C: [70.00 - 80) %
D: [60.00 - 70) %
F: < 60 %

Rounding
Though I would often like to, grades can not be fairly rounded for one person, without giving everyone a bonus.
For example, if you have a 79.4, that is a C, unless the whole class has an opportunity for such a bonus.
If >50% of the class fills out CET evaluations,
then I will round all decimal precision up, e.g., 79.1 becomes 80 / B.

1.6 Lecture notes and code

I always post full lecture notes and code!
My lecture notes are in wiki-book format.
If some code or data I distribute it’s bundled,
then you can unpack it: $tar -xf mycode.tar.gz

1.7 Attendance and discussion questions

We “take attendance” via:

  1. Required daily web-quizzes using a classroom response system (CRS)

  2. We will also use stochastic sampling methods in class to take attendance, and learn names.
    I use a random name sampling program to sample someone from the roster, and then ask a question (only for bonus points).

Missing classes will greatly diminish your chances for getting a good grade in this class.
If you miss more than 5 classes, then we reserve the right to drop you from the class.

1.7.1 Inclement weather

Save snow days… #savesnowdays
https://www.youtube.com/watch?v=-FBwZtuJtMw

1.8 Late work, makeup, missing class

If you have an unavoidable S&T-acceptable documented reason
(i.e., death in the family, illness, etc) for missing in-class events,
then please talk to the professor to discuss potential re-scheduling or accommodation.
Note that this does NOT include optional parties, such as:
vacations with family, weekend trips, weddings (voluntary parties), etc.
Exceptionally few companies excuse for such things;
when your vacation time is out, that’s it, if you don’t show, you’re fired!
Late work is not generally accepted, barring emergencies or checking with me first;
it would be wise to plan ahead!

If your excused absence pertains to particular Cahoot assignment,
then please use Canvas to comment on that particular Cahoot assignment,
such that I may exclude the points from your average.

1.9 Need-based end-of-semester grade change requests

Q: Student:
“The semester is almost over, and i didn’t do most of the work, or show up to class usually, but I really need a good grade, so can’t you make an exception, it’s important to me, and I’m having a hard time, and I have anxiety about doing work, and I tried to start the work, but I just never started the work, and never did any of it, but i wanted 2. it would be fair to give only me an exception, even though everyone else didn’t get that opportunity. really it would!! plzzz???”

A: Professor:
The university academic regulations define the action you are requesting me to perform as “Capricious grading”.
To fulfill such a request would contradict the academic regulations of the university itself,
and I can NOT comply without violating the terms of the university academic regulations.
All instructors at the university are REQUIRED to apply the same grading and deadline criteria to ALL students in a class,
and are REQUIRED to adhere to their announced grading and deadline criteria.
University policy requires that grades be assigned based on academic PERFORMANCE in the class, not based on effort or need.
As a child, you may have been praised for effort.
For a child, praising effort is often sensible.
As an adult, you are evaluated on objectively demonstrable performance.
In other words, you fairly deserve the grade that reflects the quality of the work you actually performed,
before the actually posted deadlines.
See: https://registrar.mst.edu/academicregs/undergraduategrades/

Q: Student:
All the grades are in, and I only have a grade of 12, how can I pass this class?

A: Professor:
It must be disappointing that your strategy of not coming to class, not doing the work, and not studying didn’t work out like you hoped.
If you would like to pass this class, you can either:

  1. Go to https://joess.mst.edu ->
    Select the next semester this class is offered ->
    search for this class, enroll, and make plans to actually study, show up to class,
    and do the prescribed work before the prescribed deadlines.

or

  1. Invent a time machine, go back in time, and then show up to class, study, and do your work…

1.10 Quizzes / Daily questions

Published experimental studies in the fields of research in cognitive psychology and education have shown that:
frequent (rather than sparse) recall, is both more effective for learning, retention, and synthesis,
and also encourages frequent smaller bouts of studying, rather than cramming.
Thus, we have daily quizzes.
These are administered using a clicker-like system.
To avoid having to pay for a clicker,
we use Canvas quiz questions with a custom application we wrote in-house:
ClassroomCode.html
The goal of these is to create incentives for the following actions:
Showing up to class!
Regular distributed studying and reading rather than batched cramming;
the easy daily questions are on pre-class reading material being lectured that day.
Staying awake in class…
Reduced-stress assessment of your understanding of material: less painful grading
You are expected to have a web-capable device in class
(Android phone/tablet, iPhone/iPad, laptop, CLC computer, ChromeBook, Pinebook, etc.).
This is a fair expectation for the following reasons:
Most students have a smart-phone or laptop.
Many classes already require students to pay for (or worse, rent…) a clicker (45+ USD).
Anyone can obtain a web-capable Android smartphone (a.k.a. WiFi-capable prepaid “burner”),
for around $20 USD at local stores such as Kroger, Walmart, and most gas stations,
without a service plan (you merely need WiFi, which is free on campus).

1.10.1 Quiz grading

Our free web-based classroom response system (CRS) questions will be treated as daily quizzes.
Grades are assigned based on correctness of responses given within the time-limit.
If you miss class, you will miss the points for that day.
I will usually drop some of these questions, in case the system had bugs, your finger slipped,
you missed class for excused reasons or not, etc.
There are several ways to do well on these quizzes:
1. Come to class.
2. Do the reading on the topic to be lecture, BEFORE CLASS.
3. Come prepared with your web-capable device.

1.11 Technical and programming assignments

You should expect around 1 significant technical assignment every 1.5-2 weeks

See details on your expected programming sandbox environment:
WorkingEnvironment.html

See details on how to obtain assignments, submit, and receive feedback:
ClassroomCode.html

See details on programming standards and grading here:
ProgrammingStandards.html

1.12 Academic honesty

You should intend to learn, to better yourself,
to train skills, knowledge, memory, and technical abilities!
Cheating in class is like paying someone else to go to the gym and exercise for you…
In this academic gym, I the instructor, am your trainer,
but you have to show up and work hard.
Aquiring knowledge and skills takes effort, dedication, and sacrifice,
that you perform yourself.
I can only show you how, and I hope to ascertain via in-class assessments,
whether your efforts were sincere and persistent, and thus effective.
Syllabus/brain-training.png
Write all your work in your own words, and write your own code.
Do not copy-paste (plagiarize) from any source.
If you are not sure, err on the side of caution, and do your work independently.
Occasional infrequent help from a friend when your are really stuck may be reasonable,
though if that “help” is frequent enough that your collaboration results in almost identical code,
it was too much collaboration for an assignment intended to be independent work
(which all are unless explicitly assigned as group work).
Cheating includes attempting to hard-code outputs to “fool” the auto-grader.
Syllabus/cheating.jpg
If you are found to be engaging in any form of academic dishonesty,
then the most severe penalties permitted by the university will be enacted.
Incidences will typically result in grades of 0 for the respective course components,
as well as notification of the student’s advisor, the student’s department chair,
and the campus undergraduate studies office.
Further academic sanctions may be imposed as well in accordance with university regulations
(http://academicsupport.mst.edu/academicintegrity/).
Those who allow others to copy their work are also committing plagiarism,
and will be subjected to the same procedures.

The Honor Code can be found at this link: http://stuco.mst.edu/honor-code/.
Page 30 of the Student Academic Regulations handbook describes the student standard of conduct,
relative to the University of Missouri System’s Collected Rules and Regulations section 200.010,
and offers descriptions of academic dishonesty including cheating, plagiarism or sabotage:
(http://registrar.mst.edu/academicregs/index.html).
Also see: http://academicsupport.mst.edu/academicintegrity/studentresources-ai

We check your assignments against each other with software that is VERY good at detecting cheating,
using similarities and differences between any text files, including your source files.
These methods are difficult to trick.
Please do not try to copy-paste, share sources directly,
or write all your code in a group or pair for individual assignments;
you will not like the consequences!

Attempting to deceive attendance checking procedures is considered academic dishonesty,
for ALL parties involved.
For example, do not give someone copies of your code,
or submit someone else’s pre-lab or lab assignment for them,
because they are not attending class,
or answer someone else’s daily CRS questions.

Important note:
For efficiency, I may cheat-check all your submitted assignments in only two batches all semester:

  1. The first check will occur just before the last drop date,
    about halfway through the semester, for the first half of your assignments.

  2. The second check will occur during final exams week,
    before grades are due, but after all your your assignments are turned in.
    This includes checks against previous semesters if needed.

1.13 University-wide statements

It is vitally important that our classroom environment promote the respectful exchange of ideas. This entails being sensitive to the views and beliefs expressed during discussions whether in class or online. Please speak with the instructor before audio-recording or video-recording any class activity. It is a violation of University of Missouri policy to post, upload, or distribute such recordings without instructor authorization and the permission of others who are recorded. Do NOT record class activities yourself.

Further, classroom recording creates issues with:
student privacy, silencing discussion, dis-incentivizing attendance, calling of names (FERPA issues), etc.
https://www.reddit.com/r/Professors/comments/trvsdk/why_are_some_professors_so_against_recording/

1.13.2 Artificial Intelligence

Unauthorized use of artificially generated content violates University Student Academic Standards without consent of the instructor. For more resources visit:
https://teaching.missouri.edu/blog/teaching-time-ai

1.13.3 Infectious disease hygiene procedures when on campus

Be considerate to your community,
it will likely come back to you at some point;
that’s what diseases do…
Not everyone is healthy,
and even healthy individuals may have family members who are not.
If you are sick, then stay home,
or wash your hands, and wear your mask when on campus.
This is not how you wear a mask:
Syllabus/mask.png
https://www.nytimes.com/2020/04/08/well/live/coronavirus-face-mask-mistakes.html

1.13.4 Learning Enhancement Across Disciplines (LEAD)

http://lead.mst.edu provides optional (not required) tutoring in a wide range of courses for students who wish to increase their understanding, improve their skills, and validate their mastery of concepts and content in order to achieve their full potential. LEAD assistance starts no later than the third week of classes. Check out the online schedule at http://lead.mst.edu. Some courses have collaborative LEAD learning centers (bottom half of schedule) and/or Individualized LEAD tutoring (top half of the schedule). For more information, contact the Academic Support office at 341-7276 or email lead@mst.edu.

1.13.5 Student Success Center

SSC was developed as a campus-wide initiative to foster a sense of responsibility and self-directedness to all S&T students by providing peer mentors, caring staff, and approachable faculty and administrators who are student centered and supportive of student success. The Student Success Center in Toomey Hall was designed for students to visit and feel comfortable about utilizing the campus resources available. Visit the SSC at 198 Toomey Hall; 573-341-7596; success@mst.edu; Facebook:  https://www.facebook.com/SandTssc; web: http://studentsuccess.mst.edu/

1.13.6 Well-Being and UCARE

Any of us may experience strained relationships, increased anxiety, feeling down, alcohol/drug misuse, decreased motivation, challenges with housing and food insecurity, etc. When your mental well-being is negatively impacted, you may struggle academically and personally. If you feel overwhelmed or need support, please make use of S&T’s confidential mental health services at no charge. For a quick guide to campus resources that address specific issues please visit our Well-Being Referral Guide, available as a website at https://minerwellness.mst.edu/well-being-referral-guide/. If you are concerned about a friend or would like to consult with a Care Manager, please make a UCARE referral for support and assistance. https://stuaff.mst.edu/ucare/.

1.13.7 Accessibility and Accommodations

If you have a documented disability and would like accommodations in this course, please facilitate providing documentation to the professor as early as possible in the semester. Disability Support Services staff will need to send a letter to the professor specifying the accommodation you will need. It is the university’s goal that learning experiences be as accessible as possible. If you anticipate or experience physical or academic barriers based on disability, please contact Student Disability Services at (573) 341-6655, sdsmst@mst.edu, visit http://dss.mst.edu/ for information, or go to mineraccess.mst.edu to initiate the accommodation process. Please be aware that any accessible tables and chairs in this room should remain available for students who find that standard classroom seating is not usable.

1.13.8 Nondiscrimination, Equity, and Title IX

See https://equity.mst.edu/

Missouri University of Science and Technology is committed to the safety and well-being of all members of its community, and to creating an environment free from discrimination and harassment.

The University does not discriminate on the basis of race, color, national origin, ancestry, religion, sex, pregnancy, sexual orientation, gender identity, gender expression, age, disability, protected veteran status, and any other status protected by applicable state or federal law. As used in this policy, the word “sex” is also inclusive of the term “gender.”

Additionally, 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. Violations of this law include sexual harassment, sexual assault, dating/domestic violence, and stalking.

In accordance with The Collected Rules and Regulations University of Missouri, Missouri S&T requires that all faculty and staff members report, to the Missouri S&T Equity Officer, any notice of discrimination disclosed through communication including but not limited to direct conversation, email, social media, classroom papers and homework exercises.

Missouri S&T’s Equity Officer and Title IX Coordinator is Chief Diversity Officer Neil Outar. Contact him (naoutar@mst.edu; (573) 341-6038; 203 Centennial Hall) to report violations of the university’s nondiscrimination polices, including Title IX. To learn more about resources and reporting options (confidential and non-confidential) available to Missouri S&T students, staff, and faculty, please visit http://titleix.mst.edu.

1.13.9 Classroom Egress Maps

For all in-person instruction, faculty should explain where the classroom emergency exits are located. Classroom egress maps are posted at: http://designconstruction.mst.edu/floorplan/