Syllabus

Teaching staff

Instructor

Caius Brindescu
Office hours: Thursday, 3-4 PM, Kelley Attrium
Contact: Email

Teaching assistants

Ke-Jo Hsieh
Office Hours: Thursday, 2-3 PM, Kelley Attrium
Contact: Email

Alexandria LeClerc
Office Hours: Tuesday, 2-3 PM, Dearborn 119B
Contact: Email

Manideepa Saginatham
Office Hours: Wednesday, 10-11 AM, Kelley Atrium
Contact: Email

Goal

The main goal of this class will be help students develop the skills that will enable them to build high quality software, in a professional manner. This includes writing code that is reliable, well designed, meets the requirements, is well designed, and can be done in a reasonable amount of time. We will also discuss important skills necessary for working with others while developing software including version control, peer reviews, issue tracking, and testing.

Topics Covered

Introduction to Software Engineering, Software Development Processes, Requirements Elicitation, Software Design and Architecture, Configuration Management and Project Management, Software Specifications and Testing, Ethics in Software Development.

Class expectations

  • There will be two 120 minute classes per week. In addition, you should expect to spend 8 additional hours per week on reading, study, and projects.
  • We will use Slack to discuss questions/problems. Email only when you have personal or grade related questions. If you email questions about the assignments, we will not answer them. You can find the signup link in the Canvas Syllabus page.
  • You are expected to regularly check your email and the Slack #announcements channel so not to miss important announcements.
  • You are expected to be prepared for class, participate in discussions, ask and answer questions.
  • We will cover some material in class that is not covered in the text; your assignments and test questions may be based on that material. In particular, many of the details necessary to complete assignments will be presented in class. Thus, it is to your benefit to attend class. Because late arrivals are distracting, we also ask that you arrive to class on time.

Textbook

There are no required textbooks for this class. Online readings will be posted before each class.

Grading

Item Percentage Description
Project 60% Teams (~4 students per group) will implement a software project throughout the term. There will be 4 stages submitted by the teams throughout the term.
Class participation 10% During the class, we will ask participation questions. We will also have several in-class interviews of people in different sectors of the software industry throughout the term; you will be expected to submit at least one question for them prior to the interview. We will also have several in class activities during the term.
Final Exam 30% A comprehensive final exam will be given during the allocated final exam time slot.

Final Letter Grading Scheme

The final letter grades will be assigned using the scheme below:

Grade Range
A 93-100%
A- 90-92%
B+ 87-89%
B 83-86%
B- 80-82%
C+ 77-79%
C: 73-76%
C- 70-72%
D+ 67-69%
D: 63-66%
D- 60-62%
F: 0-59%

Final scores will be rounded the nearest integer.

Late Assignment Policy

Each group will be allowed 2 late days on the Project assignments only. These days can be used separately or in a single block. Each day gives you 24 extra hours (e.g. if the original deadline is Friday at 5PM, using a day will push it back to Saturday at 5PM). All group members must agree to use the late days and notify the professor/TAs prior to the original due date. The late days are atomic (you cannot split them further). In all other cases, late assignments will not be accepted.

Gadget Policy

No cell phones, iPads, or similar mobile device usage is allowed in class. You may use laptops to take notes, but will have additional responsibilities to participate in class discussions. Failure to follow this policy will result in penalties.

Course Objectives

At the completion of this course, students will be able to:

  • Select the most appropriate software process model to use in a particular situation.
  • Synthesize requirements for a realistic software system and write a requirements specification document. Model system requirements using one or more semi-formal notations such as UML, dataflow diagrams, entity-relationship diagrams, or state diagrams.
  • Design software systems at an architectural level and at lower levels, using one or more techniques, such as object-oriented design or agile methods, and express these designs in design specification documents.
  • Validate designs and adjust the specification or design as necessary.
  • Describe several methods of estimating the cost and developing a schedule for a programming project.
  • Participate effectively in a team environment.
  • Produce professional-quality software-related documents.
  • Develop and articulate content knowledge and critical thinking in the discipline through frequent practice of informal and formal writing.
  • Demonstrate knowledge/understanding of audience expectations, genres, and conventions appropriate to communicating in the discipline.

Establishing a positive community

Every student should feel safe and welcome to contribute in this course. As the instructor, I will try to establish this tone whenever possible, but ultimately the responsibility for cultivating a safe and welcoming community belongs to the students — that means you! This page talks more about this very important part of our education process.

Academic Misconduct

In this class you must abide by OSU's Student Conduct Code. Reuse and building upon ideas or code are major parts of modern software development. As a professional programmer you will never write anything from scratch. In principle, we won't hunt down people who are simply copying-and-pasting solutions, because without challenging themselves, they are simply wasting their time and money taking this class. However, gross violations will be reported to the department and the Office of Student Conduct, and my result in an F grade for the class. Please respect the terms of use and/or license of any code you find, and if you re-implement or duplicate an algorithm or code from elsewhere, credit the original source with an inline comment.

Students with disabiliies

Accommodations are collaborative efforts between students, faculty and Disability Access Services (DAS). Students with accommodations approved through DAS are responsible for contacting the faculty member in charge of the course prior to or during the first week of the term to discuss accommodations. Students who believe they are eligible for accommodations but who have not yet obtained approval through DAS should contact DAS immediately at (541) 737-4098. Students with documented disabilities who may need accommodations, who have any emergency medical information the instructor should be aware of, or who need special arrangements in the event of evacuation, should make an appointment with the instructor as early as possible, and no later than the first week of the term.