CS 361: Software Engineering I


General Information

    Instructor: Terry Rooker, rookert@engr.oregonstate.edu

    Office Hours: By appointment

    Office: KEC 2099

    Phone: For a number of reasons, do not expect me to answer if you call my office phone.  Email is the best way to get in touch with me. 

    Optional Textbook: Software Engineering - Theory and Practice, 4th Edition by Pfleeger & Atlee

    Prerequisite: College Limitations: +16 (Engr).Level Limitations: +01, +03 (Undergraduate, Postbac Degree Seeking).



Our world is full of problems such as war, poverty, addiction, and pollution. Software has played and will continue to play a vital role in promoting peace, education, health, and the renewal of our planet. But software doesn't just grow on trees. Somebody has to carefully design and create the software in a way that actually addresses the problem without making it worse, without incurring excessive costs, and without creating troublesome new problems. That's called "engineering." This course will give you the skills needed to analyze big problems, discover the requirements for a solution, design a solution, and manage the solution's implementation.


Learning Objectives

After the completion of the course, students should be able to

    Process: Select the most appropriate software process model to use in a particular situation.

    Requirements: Synthesize requirements for a realistic software system and write a requirements specification document.

    Documents: Represent requirements, designs, and systems using semi-formal notations such as UML diagram.

    Design: Design software systems at an architectural level and at lower levels.

    Validate: Validate designs and adjust the specification or design.

    Cost and schedule: Estimate the cost and developing a schedule for a programming project.

    Team: Participate effectively in a team environment.


Topics Covered

Software Engineering Processes

Requirements Elicitation

Diagram Notations

Evaluating Requirements

Software Architecture

Software Architecture Decomposition

Software Architecture Evaluation

Object Oriented Design

Object Oriented Design Patterns

Agile Process Overview

Agile Teamwork

Pair Programming

Effort Estimation

Project Scheduling

Software Testing




Turning in coursework

You will turn in all coursework items through Canvas before 23:59  (Pacific Time Zone) on the date they are due (generally Sunday), otherwise it will be marked late.




Participation - 10%

     There will be a policies quiz over the syllabus.  This will be a 15 question (T/F and multiple choice) quiz in Canvas.  You can take it, as many times as you need, but you MUST have a score of 100% to continue with the course.

      You will maintain a reflective journal of your path through the class.  It will be submitted in 3 increments.  There are some prompts provided but you are not restricted to just them.     Please include any and every thing pertinent to your experience with course material and your group. 


Vision statement - 10%

      You will submit a draft of your vision statement for voting.  Later in the quarter you will submit final version of the vision statement. 

      Your draft vision statement consists of

o   A description of a problem. Examples: poverty, hunger, addiction, etc.

o   A few paragraphs about an idea for a solution. Examples: a web application, mobile application, etc. 

   Your final vision statement will follow the requirements provided in Canvas. 

      Post the vision statement in Canvas as directed.

      Every student votes for interesting visions.   (based on the drafts) 

      The vision statements obtaining the most votes will be used to form groups. 

      The authors of the vision statements assigned to each group are the customers for each project.  They must approve every aspect of the design and provide feedback to implement their vision in an application.  They will receive extra credit for directing the group. 

      If a vision statement author does not have the time for the extra responsibilities then another vision statement will be assigned.  You must inform the instructor immediately on announcement of the voting if you do not want your vision used.  This in no way affects your grade. 


Casting votes on Vision statement – 5%

      Each student will do both vote for the project individually.

      Voting is done via a Canvas poll.


Projects - 40%

      The project will be done in teams.

      The project is to work on one of the classmate's envisioned solutions (proposed in the vision statement).

      The instructor assigns students to teams and assigns projects to teams.

      Every student must make contribution every week. When your team submits each homework, you must also indicate what each team member contributed. Individual team members will usually get approximately the same grade, but individual team member grades may be reduced depending on the quality and quantity of the contribution.

      For the second part of the project you will write code and real tests and submit the code. The idea is that, with the approval of the customer, each pair would select some feature and implement that and then write a test to check that particular implementation. You will also have to perform integration testing/overall feature integration.  Grading will NOT be based on how many features/ functionality you have implemented, but whatever the number of features you have implemented, did you write test case(s) for them and are those actually well thought-out tests (because its possible to write a huge number of trivial tests that actually don't add any value). Whatever the number of features you decide to implement must work correctly and has to be substantial enough (decided by the grader) according to the number of people in the group.

      Please submit ONLY one submission per group.


Team member evaluations – 10%

      Each student will do the evaluation individually.

      All team members will evaluate all other team members on

   Participation in group meetings.

   Timeliness in deliverables.

   Giving feedback.

      The evaluations will include the customers.  They are the authors of the vision statement.  They must ensure that your design satisfies their vision of the application! 

      Team member evaluation may impact the grade for the project.


Final Exam - 25%

The final exam

      Will be closed book (no notes, no calculator or text editor are allowed).

      Will be 110 minutes long.

      Generally, is very easy if you carefully review.

      Covers material from lectures.

      Is proctored;


Late Policy

Late work is not accepted without prior arrangement for any group work, individual work and the final.


Grading Scale




92 or greater


90 - 91


87 - 89


82 - 86


80 - 81


77 - 79


72 - 76***


70 - 71


67 - 69


62 - 66


60 - 61


less than 59


*** REMINDER: A passing grade for core classes in CS is a C or above.   

If you have a question about your grade, you must contact the grader through EMAIL within ONE WEEK of receiving your grade.


Academic Dishonesty

OAR 576-015-0020 (2) Academic or Scholarly Dishonesty:

a) Academic or Scholarly Dishonesty is defined as an act of deception in which a Student seeks to claim credit for the work or effort of another person, or uses unauthorized materials or fabricated information in any academic work or research, either through the Student's own efforts or the efforts of another.

b) It includes:

(i) CHEATING - use or attempted use of unauthorized materials, information or study aids, or an act of deceit by which a Student attempts to misrepresent mastery of academic effort or information. This includes but is not limited to unauthorized copying or collaboration on a test or assignment, using prohibited materials and texts, any misuse of an electronic device, or using any deceptive means to gain academic credit.

(ii) FABRICATION - falsification or invention of any information including but not limited to falsifying research, inventing or exaggerating data, or listing incorrect or fictitious references.

(iii) ASSISTING - helping another commit an act of academic dishonesty. This includes but is not limited to paying or bribing someone to acquire a test or assignment, changing someone's grades or academic records, taking a test/doing an assignment for someone else by any means, including misuse of an electronic device. It is a violation of Oregon state law to create and offer to sell part or all of an educational assignment to another person (ORS 165.114).

(iv) TAMPERING - altering or interfering with evaluation instruments or documents.

(v) PLAGIARISM - representing the words or ideas of another person or presenting someone else's words, ideas, artistry or data as one's own, or using one's own previously submitted work. Plagiarism includes but is not limited to copying another person's work (including unpublished material) without appropriate referencing, presenting someone else's opinions and theories as one's own, or working jointly on a project and then submitting it as one's own.

c) Academic Dishonesty cases are handled initially by the academic units, following the process outlined in the University's Academic Dishonesty Report Form, and will also be referred to SCCS for action under these rules.


Students with Disabilities

Accommodations for students with disabilities are determined and approved by Disability Access Services (DAS). If you, as a student, believe you are eligible for accommodations but have not obtained approval please contact DAS immediately at 541-737-4098 or at http://ds.oregonstate.edu. DAS notifies students and faculty members of approved academic accommodations and coordinates implementation of those accommodations. While not required, students and faculty members are encouraged to discuss details of the implementation of individual accommodations.


Student Assistance:

Getting assistance:

Your first line of assistance should be to take a break, skim through the book, lectures, notes, and Internet,

If you cannot find the answer yourself after some searching, you should then communicate with your fellow classmates, (remember that I want you to learn the basics in whatever way works best for you!)

Please contact your TA or me via email to bring your question to our intention if you remain stuck on finding a solution,

Remember to form study groups,

We have several methods of communicating, but I would prefer we use a discussion board so that we can refer back to our previous discussions and citations.


Technical Assistance — If you experience computer difficulties, need help downloading a browser or plug-in, assistance logging into the course, or if you experience any errors or problems while in your online course, contact the OSU Help Desk for assistance. You can call (541) 737-3474, email osuhelpdesk@oregonstate.edu or visit the OSU Computer Helpdesk online.

(you can also clearly ask in discussion with the class and we can try to work through it for the benefit of the class)


Ground Rules for Online Communication & Participation:

      Online threaded discussions are public messages, and all writings in this area will be viewable by the entire class or assigned group members. If you prefer that only the instructor sees your communication, send it to me by email, and be sure to identify yourself and the class.

      Posting of personal contact information is discouraged (e.g. telephone numbers, address, personal website address).

      Online Instructor Response Policy: I will check email somewhat frequently and will respond to course-related questions within 24 hours if possible.

      Observation of "Netiquette": All your online communications need to be composed with fairness, honesty and tact. Spelling and grammar are very important in an online course. What you put into an online course reflects on your level of professionalism. Here is a reference

o   netiquette: http://www.albion.com/netiquette/corerules.html .

      Please check the Announcements and the course syllabus before you ask general course "housekeeping" questions (i.e. how do I submit assignment 3?). If you don't see your answer there, then please contact someone through chat or discussion boards.

      (Adapted from statements provided by Becky Warner, SOC)

Guidelines for a productive and effective online classroom

      The discussion board is your space to interact with your colleagues related to current topics or responses to your colleagues statements. It is expected that each student will participate in a mature and respectful fashion.

      Participate actively in the discussions, having completed the readings and thought about the issues.

      Pay close attention to what your classmates write in their online comments. Ask clarifying questions, when appropriate. These questions are meant to probe and shed new light, not to minimize or devalue comments.

      Think through and reread your comments before you post them.

      Assume the best of others in the class and expect the best from them.

      Value the diversity of the class. Recognize and value the experiences, abilities, and knowledge each person brings to class.

      Disagree with ideas, but do not make personal attacks. Do not demean or embarrass others. Do not make sexist, racist, homophobic, or victim-blaming comments at all.

      Be open to be challenged or confronted on your ideas or prejudices.

(Adapted from a statement provided by Susan Shaw, WS)