Course Overview
Class Meetings
Textbook and Other Resources
Final Project
Observance of Religious Holidays
Late Assignment Policy
Collaboration Policy
Google Group
Finding Help
Students with Special Needs
Faculty Responsibilities on Disclosures

Course Overview

CS112 is an introduction to computer programming that provides the tools necessary for students to use computers effectively in quantitative work, including work in the natural and physical sciences, biological sciences, medicine, mathematics, psychology, and economics. Students learn to write software to solve problems, visualize and analyze data, perform computer simulations, and implement and test computational models that arise in a wide range of scientific disciplines. The course introduces MATLAB, a powerful and widely used technical computing environment with advanced graphics, visualization and analysis tools, and a rich high-level programming language.

You will learn computer programming skills that are valuable for carrying out tasks such as the following:

  • creating two-dimensional and three-dimensional graphical displays of data
  • performing statistical analyses of data
  • solving equations
  • fitting functions to data
  • implementing models to solve problems
  • performing simulations of physical processes and models
  • processing textual or symbolic data
  • processing one-dimensional signals and two-dimensional images that arise in scientific applications
  • building graphical user interfaces to programs

More broadly, students who complete this course should be able to:

  • Formulate problem solutions in computational terms
  • Identify appropriate strategies for a particular problem and apply those strategies to solve the problem
  • Read, modify, design, implement, test, and debug MATLAB programs to solve computational problems
  • Work collaboratively with partners or small groups to solve computational problems

Why Learn MATLAB?

  • MATLAB's extensive built-in tools for acquiring, analyzing and visualizing many kinds of data make it a useful first language for scientists
  • The simple structure and interactive nature of the MATLAB language facilitates rapid learning of the skills needed to perform interesting and important computational tasks
  • Many programming concepts learned in MATLAB are easily transferable to other languages such as Python, C, and Java
  • The MATLAB programming environment is widely used for a variety of applications in academic, commercial and government institutions

Prerequisites: None. No prior programming experience is expected.
Distribution Credit: Mathematical Modeling
Units: 1.0

Instructors and Tutors

Contact information and office hours for the instructors are provided at the top of this page. Feel free to come to either of us for help. Meetings and seminars sometimes conflict with scheduled office hours, so we will keep you informed each week about changes in our office hours.

Hannah Anderson and Nicole Tan will be the tutors for CS112 this spring. Tentatively, there will be weekly drop-in hours in room SCI L140, on Tuesday and Wednesday evenings from 7:00-9:00, starting the second week of the semester.

Class Meetings

There are two 75-minute lectures each week on Monday/Thursday at 8:30-9:45 in SCI L180. In addition, students must register for and attend a weekly 110-minute laboratory section. There are two laboratory sections on Tuesday to choose from, at 8:30-10:20 and 10:30-12:20 in SCI E101. The lectures will introduce the main content of the course. The lab classes provide hands-on experience with new material through group work and individual programming exercises, and also provide an opportunity to address questions related to assignments and exams.

Textbook and Other Resources

The following required textbook is available at the Wellesley College Bookstore:

Gilat, Amos,
MATLAB: An Introduction with Applications, Sixth Edition
John Wiley & Sons, 2017.

(The fifth edition of the Gilat text can also be used.)

A copy of the textbook and additional books on MATLAB are available in SCI E101 (same room as the labs), including the following reference book:
      Duane Hanselman & Bruce Littlefield (2012) Mastering MATLAB
Please do not remove any books from SCI E101!


Your final grade will be based on a weighted average of the following components:

Class participation5%
Exam 1 (in class)20%
Exam 2 (in class)20%
Final project15%


Class participation includes attendance in lectures and labs, which is required, and engagement in class activities. Please let us know if you need to miss a class.

All submitted work will be counted toward your final grade.

This course complies with the Wellesley grading policy. While the College's 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 (B+), 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 receive the grade she earns and deserves according to the grading standards of the College.


There will be two in-class exams, both open book and open notes, scheduled on the following dates:

Exam 1: Monday, March 2
Exam 2: Thursday, April 23

Please mark these dates in your calendar, and let us know as soon as possible if you have a scheduling conflict. There will be no final exam in this course.


Weekly assignments will help you develop a working knowledge of the concepts presented in class. Assignments will typically be distributed in Lab on Tuesday and due on Thursday of the following week, and will include exercises that you begin in Lab, as well as extended programming problems. You will be expected to work in pairs on your assignments, using the "Pair Programming" approach that you learn in Lab. This approach has been shown to improve programming skills, and also creates a more enjoyable learning experience.

Assignment handouts will be posted on the course schedule page. You should always submit both a hardcopy of your assignment solutions and a softcopy (i.e., electronic copy) of all of your code to the appropriate drop folder. More detailed instructions for submitting assignments will be presented in Lab and included on each assignment.

Many of the extended programming problems will be challenging. Please keep in mind that programming often consumes more time than you think it will. Start your assignments early so that you have time to think about the problems and ask questions if you hit an impasse. Also keep in mind that computers and networks do break down, so please plan accordingly!

Final Project

During the last few weeks of the semester, you will have the opportunity to work on an extended, individualized programming project in an area of interest to you. You will be strongly encouraged to work in pairs on this project. After choosing an interesting application or problem, you and your partner will design and build a substantial MATLAB program from scratch. This project will enable you to integrate all of the programming and problem-solving skills that you have learned, and to build a program that is connected to your particular interests. During the last week of the semester, students will give a short presentation about their project. The final project will be due at the end of the Final Exam period. See examples of student projects from past semesters on the Project Gallery page.

Observance of Religious Holidays

Please let us know if you anticipate an absence or need accommodations for observance of religious holidays. ITS has created an online Religious Observance Notification Form that you can use to inform us of this need.

Late Assignment Policy

All assignments are due by 5:00pm on the advertised due date, which will usually be a Thursday. Unless otherwise stated, you can use a 24 hour extension, no questions asked. However, if this extra day is not sufficient for you to complete the assignment, you are required to contact an instructor and discuss a plan for completing the assignment. We will work together to make sure that the plan is reasonable and effective so that it supports both your learning and your health.

If the solutions to an assignment are distributed before you have turned in your work, you are bound by the Honor Code not to examine them.

Collaboration Policy

It is never acceptable to present someone else’s work as if it were your own. This violates the basic principles of academic honesty. Unless explicitly instructed otherwise, assume that all work you submit is to be yours alone, or the work of you and your partner. While you are working on a homework assignment, you may collaborate with students other than your partner by talking about the problem or your solution in a natural language like English, but you should not be looking at other students' code and you should not show your programs to a student other than your partner. You are encouraged to use the CS-112-01-SP20 Google Group (described below) to discuss assignment problems, but the same rules apply: discussions should be in English and should not include code that is part of the problem solution.

When you turn in an assignment, you must provide the names of you and your partner on your hardcopy, and also list other students with whom you collaborated. Academic honesty requires this. If you are not sure what constitutes collaboration, err on the side of caution. You may consult public literature (books, articles, the web, etc.) for hints, techniques and solution strategies, but you must reference any sources that contribute to your solution.

When you use a public computer, save your work, remove the local copy when you are done, and log out. If you find someone else has forgotten to log out, then log them out without looking at any files or work in open windows. Please do not leave printouts of assignment solutions at public printers.


MATLAB (version R2018b) is available on all public computers, including both Macs and PCs, and can also be installed on your personal Mac or PC for use on the campus network. Your personal copy of MATLAB can also be used off-campus. For more information, see the Wellesley Technology Support webpage, or the CS112 documentation page. Please be sure to exit MATLAB when you are done using it! A student version of MATLAB can also be purchased at the Mathworks website for $99.

Specific course software can be downloaded and uploaded to and from personal computers using CyberDuck. We will introduce you to this program in Lab, and more information is available at the Wellesley Technology Support webpage. Course software is stored on the CS department file server, described on the CS file server page. Each student will have an individual account on the CS file server that can be requested by submitting an electronic account request form. This form is only accessible from the campus network.

Google Group

A Google Group has been created, CS-112-01-SP20, and students enrolled in this class have been added as members. If you did not receive a confirmation e-mail, please let us know so that we can add you. You can send e-mail to this group at the address We will post important announcements here about assignments, changes to office hours, and CS department events such as seminars and parties. We encourage you to post questions or comments related to the lectures, labs, assignments, or other topics of interest to students in the course. Feel free to respond to questions posted by other students. The instructors will also read the messages posted to the group on a regular basis and post answers to questions found there. This is a good place to find people to join a study group or ask questions about the course or about homework (please do not post MATLAB code here — homework discussions should use high-level English descriptions).

Finding Help

If you have any questions at all about the class (whether big or small, whether on lectures, labs, assignments, reading, or whatever) please contact one of the instructor s. That's what we're here for! Simple questions can often be answered via the course Google Group or via e-mail. When sending e-mail questions to an instructor, it is OK (and often helpful!) to cut-and-paste segments of MATLAB code into the body of the message, or add a code file as an attachment. Questions of general interest (e.g. clarifying ambiguities in an assignment, wondering why posted programs do not work as expected) should be posted to the Google Group. If you have a complex question or need help in understanding the material, please try to meet with us in person. The best time to see us is during our scheduled office hours listed at the top of this document. If these times are not convenient, we can schedule an appointment for some other time. You can schedule an appointment in person, via phone, or via e-mail. Also remember to visit our CS112 tutors during their drop-in hours each week! Finally, when looking for help, do not overlook other students. Get to know your classmates early in the semester so that you can help each other out!

Students with Special Needs

If you have special needs of any kind, please meet with us to discuss accommodations that may be helpful to you. If you have a disability or condition, either long-term or temporary, and need reasonable academic adjustments in this course, please contact Disability Services as early as possible in the semester, so that they can review your request and submit a letter to us outlining your need for accommodations. If you are unsure but suspect you have an undocumented need for accommodations, you are encouraged to contact Disability Services. They can be reached at, at 781-283-2434, by scheduling an appointment online at their website, or by visiting their offices on the 3rd floor of Clapp Library, rooms 316 and 315.

Faculty Responsibilities on Disclosures of Discrimination, Harassment, and Sexual Misconduct

Pursuant to Wellesley College policy, all employees, including faculty, are considered responsible employees. This means that any disclosure of discrimination, harassment, or sexual misconduct to a faculty member will need to be shared with the College's Director of Non-Discrimination Initiatives / Title IX and ADA / Section 504 Coordinator, Sonia Jurado (781-283-2451; Students who do not wish to have these issues disclosed to the College should speak with confidential resources who are the only offices at the College that do not have this same reporting obligation. On campus, confidential resources include Health Services (781-283-2810, available 24/7), the Stone Center Counseling Services (781-283-2839, available 24/7) and the Office of Religious and Spiritual Life (781-283-2685). You should assume that any person employed on campus outside of these three confidential offices has an obligation to share information with Wellesley College through the Office of Non-Discrimination Initiatives.