CS 21

Course Policies and Administration

Table of Contents

Course web site:

http://www.cs.tufts.edu/cs/21/

Course Staff

  Office Email Office Hours
Instructor Mark Sheldon Joyce Cummings Center Room 440C msheldon@cs.tufts.edu See www.cs.tufts.edu/~msheldon and by appt.
Graduate TA Brennan Miller-Klugman See/use Piazza
Undergraduate TAs Liam Strand
Neil Powers

Piazza Forum

We have a course forum at Piazza for class discussion. This is your forum. Use it to communicate with each other and the course staff. Just remember the cautions below. Send questions related to course material there rather than to the course staff via email: the next person who checks the site and knows the answer can respond. If you have any problems or feedback for the Piazza developers, email team@piazza.com.

There is a link to our class class page on the course calendar on the first day of class. Check the forum at least once a day: Important information and announcements will be sent there, including assignment clarifications and schedule changes.

TA Liason/Ombudsperson

The TA ombudsperson (AKA TA liaison) is here to help mediate conflicts that arise involving TAs. Specifically, the TA ombudsperson/liaison will help with the following situations: If you are involved in or aware of such an issue, please contact Mark Sheldon at ta-ombudsperson@cs.tufts.edu If you are one of Mark's students or TAs and are not comfortable discussing the issue with him, please contact Prof. Megan Monroe.

Accommodations for students with disabilities

Tufts University values the diversity of our students, staff, and faculty; recognizing the important contribution each student makes to our unique community. Tufts is committed to providing equal access and support to all qualified students through the provision of reasonable accommodations so that each student may fully participate in the Tufts experience. If you have a disability that requires reasonable accommodations, please contact the StAAR Center (formerly Student Accessibility Services) at StaarCenter@tufts.edu or 617-627-4539 to make an appointment with an accessibility representative to determine appropriate accommodations. Please be aware that accommodations cannot be enacted retroactively; all accommodation notes must be provided to the instructor within one week of the note being written to guarantee consideration.

If you have an accommodations letter, email me a PDF so I can keep track of your needs. If you have concerns, you may come see an instructor during their regular office hours. If you cannot come to office hours, then please schedule an appointment. We want to be sure that your needs are met.

Academic support at the StAAR Center

The StAAR Center (formerly the Academic Resource Center and Student Accessibility Services) offers a variety of resources to all students (both undergraduate and graduate) in the Schools of Arts and Science, Engineering, the SMFA and Fletcher; services are free to all enrolled students. Students may make an appointment to work on any writing-related project or assignment, attend subject tutoring in a variety of disciplines, or meet with an academic coach to hone fundamental academic skills like time management or overcoming procrastination. Students can make an appointment for any of these services by visiting tutorfinder.studentservices.tufts.edu or by visiting the StAAR Center web site.

Textbooks

You must do readings! You will have a difficult time if you don't have some good resources.

For the shared memory threads and Python-based things, we will use only lecture material and other material I will make available.

For Actor-based programming in Erlang, I can recommend any of the following books. I will list readings from the first one (Cessarini and Thompson), and we may take some exercises from it, but I will make any exercises available by other means. You are welcome to read about the same topics in any of these books. If you find another resource, please share on Piazza.

All three are available online via Tisch Library and from O'Reilly. I have looked them up at Tisch and provided the “permalinks.”

Courtesy of one of your fellow students, we have a PDF of Cesarini and Thompson. I am sharing this with the class through a link that should require an EECS login. Please do not distribute this book. I feel that letting you have the PDF will be more convenient than having to use the on-line UI provided by Tisch, but I don't want to be party to distributing the text to those who do not have legal access to it. Do not share or store in a public place. Here it is: Erlang Programming, Cesarini and Thompson, 2009.

Grading

Your final grade will be based on a weighted sum of the following factors:

There will be two exams: one after the native concurrent programming unit and one after the shared memory threads unit. There will not be a final exam: just a final project and presentation.

I'm not sure what the weights are. The project is probably about 40–50%, problem sets probably about 20–25%; exams/quizzes are probably about 20–25%; puzzles and presentations are probably about 5–10%.

Software/Platforms

You do not need your own computer to do the work in this course. The department computers have everything you need. That said, you are encouraged to install the software on your computer or any other device you like! See the course reference page for more information about installing the software on your computer.

Still, do be aware that, to evaluate your work, we'll run your programs in the environment on the department servers. If you work on another computer or with other tools, it is your responsibility to ensure the code works in the course environment.

We are using Python 3, not Python 2.7. I think even Macs now come with Python 3. If not, you can install with homebrew. The department servers run Python 3 now, and that is where we'll test your code.

Erlang code will be tested on the department servers, which are running version 26 as of Spring 2024. I suspect version 25 will be fine, but do make it a point to test on the servers before submitting work. Alert us if you need a specific version for your projects. Be aware that on-line tutorials or reference books may use other versions, too. Mostly the difference is that the newer versions have som useful tools that are not available in older versions. Also, multiple versions can be a problem if you are doing something distributed (on multiple Erlang nodes and/or computers).

Consult the course reference page for other helpful information.

Collaboration and Academic Honesty

All of us should read the Tufts policy on academic misconduct located on the student affairs office website: students.tufts.edu/student-affairs/student-code-conduct/iv-policies-regarding-student-behavior.

Some critical guidance:

Some work you do is to further your understanding. Some work will be used to evaluate your understanding (this work is graded). You may work with other students to further your understanding. Work submitted for evaluation is, unless otherwise stated, to be your work alone. You are bound by the basic principles of academic honesty and integrity.

It is never acceptable to present someone else's work as if it were your own. It violates the basic principle of academic honesty. All work you hand in is to be yours and yours alone, unless there is specific instruction to the contrary. Strangely, some people think using an AI tool is ok, even though it is still not you. While you may use an AI tool as you would any external resource (e. g., to learn about some facility or other), work done by an AI agent is also not your work. If you use an AI tool, you must describe how and document what is your work, just as you would cite anotherh person. In the case of an AI chatbot, please provide prompts you used and any other information you feel is relevant to helping us determine what you understand and what you did yourself.

While you are working on a homework assignment, you may collaborate with other students by talking about the problem or your solution in a natural language (e.g., English), but you may not use any formal language, and especially not program code: high-level discussion is good, but each student must do an individual write-up. In other words, you should not be looking at other people's code (or problem set solutions), and you should not show your programs to another student.

You are encouraged to use the online forum to discuss course-related work, but the same rules apply: discussions should be in English and should not include code that is part of a homework solution.

When you turn in an assignment, you must list all other students with whom you collaborated. If you get significant help from any of the course staff, including a TA, you should acknowledge that, too. Ditto for an AI tool. Academic honesty requires it. If you are not sure what constitutes collaboration or significant help, err on the side of caution. Giving others credit is good, and they will appreciate it, too.

You may consult public literature (books, articles, the web, etc.) for hints, techniques, and even solutions. However, you must reference any sources that contribute to your solution.

Assignments, exams, solutions and even notebooks from previous terms' versions of this course are not considered to be part of the public literature. You must refrain from looking at any solutions from previous versions of the course (unless that information is distributed this semester).

Mark A. Sheldon (msheldon@cs.tufts.edu)
Last Modified