Course Syllabus


NOTE: Some links on this page may only be accessible to registered students.

Welcome to CS361: Software Engineering I

Start Here

Please begin the course by clicking the Start Here button.

Start Here Button

This course will introduce you to tools and techniques for real-world software development. You will be working on a term-long team programming project using the Agile Scrum approach to software project implementation and management. Along the way, you will learn how to plan out and specify what your software should do and how users should experience it, how to evaluate how well your software design reflects those specifications, how to structure your software in a way that supports iterative growth and ongoing contributions from multiple developers, and other non-technical and technical skills and concepts. We will explore some topics in-depth, and others just enough for you to decide later (during future software projects) whether or not they're applicable to and useful for what you're doing.

Course Learning Outcomes

By the end of this course, you should 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
  • Produce professional-quality software-related documents
  • 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

Meet the Instructor


Hi everyone, I'm Lara Letaw, the instructor for CS361: Software Engineering I.

This term you'll be working in project teams of five. There will be some programming, but this course is more about process than code. That means that, besides implementation, you'll be doing project management, software architecture, diagramming, user interface design, assessing your code for quality and refactoring, and several other non-coding tasks.

You'll also be working with a client, who will be one of the TAs. Your client will attempt to describe what they want, and you and your team will attempt to figure out what they mean. Having done client work as a freelancer for over a decade, I can tell you that communicating with other human beings can be a difficult and iterative process.

That's one reason I've chosen to make this an Agile course. Agile is a philosophy of software project management that values communication and working collaboratively with clients. Your client will have weekly office hours, consider attending them.

Lastly, how are you doing? This has been a rough year and I know what's happening can affect many aspects of a person's life. If you're going through something that might affect your coursework, or if you ever just want to check in, send me an email or Slack message, or schedule an appointment with me anytime.

Next step: Take a look at the Start Here module. Read the syllabus, do the syllabus quiz, and sign up for a team. Welcome to the course!

NOTE: Some links on this page may only be accessible to registered students.

Syllabus & Schedule

Syllabus Quiz

After completing all "Start Here" module readings, take this quiz:

NOTE: Some links on this page may only be accessible to registered students.

Communication Policy

I will be logging into the course on a regular basis, approximately 3-5 times each week. Please post all course-related questions on Piazza so the whole class may benefit from the conversation. Please send an email to your instructor or TAs for matters of a personal nature. When you email your TA or myself, you should expect a response within 48 hours. You can expect your assignments to be graded within one week of the due date.

Contact Information & Office Hours

TA office hours start Monday of Week 1.

  • General course questions? Post to Piazza.
  • Instructor: Lara Letaw - - Office hours by appointment
  • TA: Pannapat Chanpaisaeng - - Tuesday 1-2 PM, Thursday 1-2 PM (Pacific), or by appointment.
  • TA: Prachi Rahurkar - - Fridays 5-7 pm (Pacific), or by appointment (please inform 24 hours in advance)
  • TA: Maryum Shabazz - - Wednesdays 6-8pm (Pacific),  or by appointment (please inform 16 hours in advance)
  • TA: Ryan Speese - - Wednesdays 4-5pm, Saturdays 12-1pm (Pacific), or by appointment (schedule 24 hours in advance)
  • TA: Mark Trinh - - Monday 1-2PM, Tuesday 1-2PM (Pacific), or by scheduled appointment. (Starting Week 2)

NOTE: Some links on this page may only be accessible to registered students.

Course Tools & Textbooks

See Course Resources.

Academic or Student Support Services

For all other academic and student support services, refer to the Student Services link found in the course menu.

The following services are available to all Ecampus students:

Accessibility Statements

This course uses technologies that may support accessibility in different ways. Please refer to the accessibility statement for each technology provider for details as to the level and types of accessibility that are supported.

Follow this link to access Accessibility Statements for commonly used software.

Accessibility Tools for Canvas

The following tools are available within your Ecampus course. 

ReadSpeaker - is a tool that reads text on Canvas course pages aloud.

TextAid - is an additional tool that allows users to have nearly any text highlighted and read aloud, including documents, Web sites, text composed by a user, and more. For more information, please visit ReadSpeaker Text Aid.

Canvas Technical Questions

If you have a technical issue or question when using Canvas, 24/7 support is available in Canvas via chat, phone, or e-mail through the Help link in the menu on your left .

Additional technical support (use of software/browsers) can be accessed through the OSU Computer Helpdesk.

Copyright & Ownership of Materials

  • The materials on this course website are only for the use of students enrolled in this course for purposes associated with this course and may not be retained or further disseminated.
  • Course materials are cited within the Syllabus and Modules based on the copyright policy of each item.
  • When copyright permission is required, Ecampus has contacted the copyright owner.
  • When a fair use determination has been made, this has been documented.
  • Images that are not cited have been obtained from the public domain or via a paid subscription or are images taken by the instructor.

Please contact the instructor if you have any questions about the copyright and ownership of materials presented in this course.

Peer Tutoring

(Free) OSU Online CS peer tutoring happens via Zoom, and there are two ways you can engage: drop-in tutoring hours and scheduled tutoring appointments.

  • Drop-in Tutoring Hours: Regularly held tutoring hours where you can call into the existing session to engage with peer tutors about your questions.
    • View the calendar here.
    • Click on the appointment, then click more details to view the Zoom meeting link.
    • Click on the Zoom meeting link to join.
  • Scheduled Tutoring Appointments: Scheduled tutoring appointments with peer tutors.
    • Start completing the tutoring request form.
    • Be sure to select "Schedule an appointment"
    • Click on the appropriate link to schedule a time.
    • Be sure to come back and complete the tutoring request form by entering your appointment time and clicking "Submit."

Privacy Policies for External Tools

Follow this link to access Privacy Policies for commonly used external tools that require the user to create an account.

Course Summary:

Date Details