Software Design Syllabus #

Course Logistics #

Class Meetings #

The first meeting of the semester is Friday, September 4, 2020, and our last meeting is Friday, December 11, 2020.

We meet weekly from 1:30 PM to 3:10 PM on Tuesday and Friday, with the following exceptions:

  • 9/11 (F): Olin Monday
  • 11/24 (T): Thanksgiving Break
  • 11/27 (F): Thanksgiving Break

Instructors #

Steve Matsumoto
Office: Milas Hall 332
Office Hours: by appointment

Background and interests: I am a computer scientist and engineer in my second year of teaching at Olin. I study how we can move towards a more secure and private technological society through research, building better software, and improving computing education. My current research projects include a system to securely deploy new ways of checking websites’ identities and an effort to better understand how the economic incentives in cryptocurrencies can be used and improved to tackle technical and social problems.



Course Overview #

Course Objectives #


Big Ideas:

  • Expressing solutions as a set of small, precise steps
  • Evaluate software on its design, usability, and performance
  • Transfer solutions to problems in an understandable, precise way.

Essential questions:

  • How should we create and select an approach for solving a computational problem?
  • How can we express the process by which a computer carries out a task?
  • How can we be confident that a piece of software does what it is supposed to?
  • How can and should computing be used to solve problems in various disciplines?

Course Activities #

Worksheets #

  • Solidify and provide practice for concepts from readings
  • Each one will cover a technical topic, as well as style, software engineering practice, and context and ethics
  • Rubrics provided along with worksheet
  • Questions involve conceptual questions, reading code, and writing code
  • Graded based on correctness, style, and self-assessment
  • Self-assessment is an opportunity for you to reflect on your submission
  • 7 worksheets total (1 is a smaller worksheet focused on getting your computational environment set up)
  • The day after worksheet deadline, you have a self-assessment due, to be completed before the next class
  • Extensions on worksheets are possible, but generally limited: two late days total, and you still have to do the self-assessment before the next class.
  • If you need additional late days for any reason, come talk to the instructors and we’ll work out something reasonable.

Studio Time #

Studio time is our class meeting time, which serves as a flexible time block for a variety of course activities. Typically, you should expect to spend the bulk of studio time working on worksheets or projects.

  • Short (10-min) quizzes, with discussion immediately following
  • Discussion of readings

Projects #

  • Whereas worksheets are “many small programs”, projects are “one large program” - focused effort towards a single goal/application
  • Project 1: 1 week, structured, peer assessment grading, code + documentation
  • Project 2: 2 weeks, somewhat open-ended, code + documentation + tests
  • Project 3: 3 weeks, open-ended, code + documentation + tests + presentation

Assessment #

  • Worksheets: 20%*
  • Quizzes: 20%*
  • Projects 1 and 2: 20%*
  • Final Project: 20%*

The assessment categories and methodology are aimed at measuring your growth in this course in a variety of ways while providing flexibility for students of different learning styles.

In calculating your grade, the lowest two quiz scores will be dropped. Additionally, the category in which you have the highest percentage counts for 40% of your grade instead of 20%.

TODO: Grading Scale

I reserve the right to adjust the grading scale down. In other words, I may make it easier for you to achieve a certain grade, but I will not make it harder.

Policies #

Punctuality #

  • Please come to class on time. We have a limited amount of in-class time and the timings of activities can often be rather tight. We do our best to start and end right on time. Because of this, it’s important that you’re ready to start right on time, rather than just getting to class at that time.
  • One particularly important activity in your learning is the practice of self-assessment. We use your self-assessments in the grading of your work, so it’s important that both your work and self-assessment is in on time for the teaching team to provide feedback and adjust the next course topics as necessary.

Collaboration #

  • Sharing ideas is fine, but don’t spoil the fun.
  • No sharing code.
  • If asked about any part of your work, be prepared to explain it.

Asking Questions #

  • Be precise about your goals.
  • Be precise about where you’re stuck.
  • Say what you’ve already tried.
  • Try think in terms of “if I could just do X, then I could accomplish Y”.

Receiving Feedback #

Giving Feedback #

Accessibility #

Olin College of Engineering is committed to ensuring the full participation of all students in its programs. If you have a documented disability (or think you may have a disability) and, as a result, need a reasonable accommodation to participate in this class, complete course requirements, or benefit from the College’s programs or services, contact Disability Services at Olin (DSO) as soon as possible. To receive any academic accommodation, you must be appropriately registered with DSO. The DSO works with students confidentially and does not disclose any disability-related information without their permission. The DSO serves as a clearinghouse on disability issues and works in partnership with faculty and all other student service offices. For further information about services for students with disabilities, please contact the DSO.

We assume that all of us learn in different ways, and that the organization of any course will accommodate each student differently. For example, you may prefer to process information by speaking and listening, so that some of the written handouts we provide may be difficult to absorb. Please talk to us as soon as you can about your individual learning needs and how this course can best accommodate them. Even if you do not have a documented disability, remember that there are other support services, including Writing Tutors, NINJAs, ARCs, and Peer Tutors.

Diversity #

It is our intent that students from all diverse backgrounds and perspectives will be well served by this course, that students’ learning needs be addressed both in and out of class, and that the diversity that students bring to this class be viewed as a resource, strength and benefit. It is our intent to present materials and activities that are respectful of diversity: gender, sexuality, disability, age, socioeconomic status, ethnicity, race, and culture. We expect students to conduct themselves in a way that respects the experiences and identities of all members of the class. Your suggestions are encouraged and appreciated. Please let us know ways to improve the effectiveness of the course for you personally or for other students or student groups. In addition, if any of our class meetings conflict with your religious events, please let us know so that we can make arrangements for you.

Work-Life Balance #

Take care of yourself. Do your best to maintain a healthy lifestyle this semester by eating well, exercising, getting enough sleep, and taking some time to relax. This will help you achieve your goals and cope with stress.

All of us benefit from support during times of struggle. You are not alone. There are many helpful resources available on campus and an important part of the college experience is learning how to ask for help. Asking for support sooner rather than later is often helpful.

If you or anyone you know experiences any academic stress, difficult life events, or feelings like anxiety or depression, we strongly encourage you to seek support. Check out Olin’s Mental Health and Wellness services. Consider reaching out to a friend, faculty, or family member you trust for help getting connected to the support that can help.