Administrative details of CS115/MAS115
None, in terms of prior classes. But what is required is a desire to learn more about the socio-technological world you will live in.
Students cannot get credit for both CS115 and either CS110 or CS114, due to considerable overlap of material with these two courses.
Lectures and Labs
Each week there are two 70-minute lectures that will introduce the main content of the course and one 70-minute lab with exercises to reinforce the lecture material and to develop general programming, testing and debugging skills.
In labs you will be working either with a partner, or individually. In
general, be aware that labs contain more tasks than can reasonably be
done in the available class time.
At the end of the day of your lab, each student is required to submit
whatever lab work they have worked on until then. These submissions
will be part of the student's participation grade (see "Grading
Policy" further down.)
Please verify that you are registered to the CS115-MAS115-SP18 google group. This group has several
purposes. We will use it to make class announcements, such as
corrections to assignments and clarifications of material discussed in
class. We encourage you to post questions or comments that are of
interest to students in the course. Please do not post significant
messages on the group! The instructors and TAs will read messages
posted in the group on a regular basis and post answers to questions
found there. If you know the answer to a classmate's question, feel
free to post a reply yourself. The course group is also a good place
to find people to join a study group. You should plan on reading group
messages on a regular basis.
We will be using a variety of books and resources. The good news is that you are not required to buy any material, though you may want to do so if you would rather read from paper instead of online. The material we will be using are:
Material from other CS courses
CS115/MAS115 was designed by including some of the material that were previously taught in two other courses, CS110 and CS114. Occasionally, we may also
reference material from other CS classes in this course if they are relevant to the current topic.
Class participation, Reading material, Quizes and Assignments: You are required to study the reading material assigned for each lecture before you come to class. There will also be weekly reflections on your readings and class discussions; there will also be regular assignments that will test a deeper understanging of the material.
Exams: There will be a take-home midterm exam and an in-class final (see the schedule).
Final Project: A paper demonstrating your deeper understanding of the material will be due at the end of the semester. Here is the tentative description of the final project.
The dates of the assignments, reflections, exam and final project are listed on the schedule.
Please let the instructors know within the first two weeks of classes if you have a scheduling conflict, after that they will not be flexible except for emergencies.
Your final grade for the course will be computed as a weighted average of several components. One of them is class participation that includes attending
lectures, attending labs, doing the work, and actively participating in discussions.
The relative weight of each component is shown below:
Final Project: 20%
Midterm Exam (take-home): 10%
Final Exam (in-class): 25%
Reflections and Class Participation: 20%
This course complies with the Wellesley College grading policy. While
that policy asks faculty to hold each 100- and 200-level course with
10 or more students to an average of no higher than 3.33, it does not
require faculty to grade on a "curve." There is no arbitrary limit on
the number of A's, B's, C's etc., and every student will be assigned
the grade they earn and deserve according to the grading standards of
Late Assignment Policy
You will have 3 late passes for the assignments. One pass corresponds to 24h.
If you are using a late pass, you do not need to contact the instructors.
If have used all your passes, you are required to contact your instructor, before the assignment is due, to ensure
that you have a plan for completing it. If solutions to an assignment are distributed
before you have turned in, you are bound by the Honor Code not to examine them.
Late passes cannot be used on reflections, exams, or the final project.
How to succeed in the course
Prepare to spend at least 10 hours every week.
Attend all lectures, quit all social media while in class.
Attend all labs, quit all social media while in class.
Read the assigned material and slides BEFORE class.
Read assignment description immediately, start thinking about it ASAP, not 1-2 days before it is due!
Start assignments early, be prepared to make mistakes.
Programming is a skill: The best programmer has made every mistake in the books!
Programming is hard: Do not blame yourself for your mistakes; just give yourself more time!
Here is overview on our collaboration policy, and it is followed by a more detailed explanation below:
Assignments: Rotating pairs of students
Project: Teams of 2-3 students
Exams: Absolutely no collaboration
Collaboration on Assignments
We believe that collaboration fosters a healthy and enjoyable educational environment. For this reason, we encourage you to talk with other students about the course material and to form study groups.
Programming assignments in this course can be challenging. Also teamwork is the norm in the CS industry. Given the above, some of the assignment work is required to be done with a partner, while some is required to be done individually. In each assignment tasks will be clearly marked as either "individual" or "pair-programming". The two team members must work closely together on the pair-programming tasks, and turn in a single hard copy of work they did together.
Pair-programming tasks are subject to the following ground rules:
The work must be a true collaboration in which each member of the team will carry her own weight. It is not acceptable for two team members to split the work between them and work independently.
- The fact that team members have to program together means that you need to carefully consider a potential partner's schedule before forming a team. You cannot be an effective team if you cannot find large chunks of time to spend at a computer together!
- Working with different partners is a good way to build community in the class. We strongly recommend that you pair up with several other students during the semester.
Please check this document about the basics of pair-programming.
In general, teams are allowed to discuss assignment tasks with other
teams and exchange ideas about how to solve them. However, there is a
thin line between collaboration and plagiarizing the work of
Each team or individual student must compose their own solution to
Discussing strategies and approaches with classmates and
receiving general debugging advice from them is acceptable and
encouraged. However you (and your partner) are required to write and
debug all of your code. Furthermore, you should never look at another
student's code. For example, it is OK to borrow code from the
textbook, from materials discussed in class, and from other sources as
long as you give proper credit. However, it is unacceptable and
constitutes a violation of the Honor Code (1) to write a program
together with someone not part of your team and turn in two copies of
the same program, (2) to copy code written by your classmates, (3) to
read another student's or team's code or (4) to view assignments,
exams and solutions from previous terms of the course. In keeping with the
standards of the scientific community, you must give credit where
credit is due. If you make use of an idea that was developed by (or
jointly with) others, please reference them appropriately in your
work. It is unacceptable for students to work together but not to
acknowledge each other in their write-ups.