Course Syllabus

Subject & Course: CS362 – Software Engineering II

Credits: 4 

Instructor’s Name: Ali Aburas

Instructor’s Email: aburasa@oregonstate.edu

Important Dates: All assignments and projects contain submission date. Midterm is at the end of six week. Final exam date will be announced later.  

Tentative Course Outline/Schedule

Week#1 

  • Overview (Civil Engineering and Software Engineering)
  • Thinking about Testing
  • Maintenance and Source Control
  • Builds & Static Analysis
  • Introduction to Software Testing: Kinds of Testing (Manual vs. Automated; Scripted vs. Exploratory; Unit Testing; Integration Testing; System Testing; Regression Testing; Black Box vs. White Box)

Week#2

  • How Tested Is It? Coverage Metrics I
  • Coverage Metrics II

Week #3

  • Lessons Learned in Software Testing: The Testing Role
  • Lessons Learned in Software Testing: Thinking Like a Tester
  • Lessons Learned in Software Testing: Testing Techniques

Week #4

  • How to Write a Simple Random Tester
  • Random Testing: Not Just For Toys
  • Lessons Learned in Software Testing: Reporting Bugs and Working Well With Others
  • Lessons Learned in Software Testing: Planning and Strategy

Week #5

  • Introduction to Debugging
  • Quick Intro to Debuggers
  • Introduction to open source project

Week #6

  • Causality and Localization I
  • Causality and Localization II

Week #7

  • Agans’ Rules for Debugging

Week #8

  • Software Inspections & Course Summary

Week#9

  • Introduction to commercial tools for testing
  • Learning commercial tool for testing

Week#10

  • Advanced topics in software testing
  • Introduction to research in software testing

 

Measurable Student Learning Outcomes

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

  • Apply automated tools such as make and SVN/Git in a realistic setting
  • Describe the cost-benefit trade-offs inherent in the use of automated tools for building software and configuration management
  • Describe several techniques for validating and measuring the quality of software
  • Apply testing techniques, including black-box and white-box techniques, automatic testing activities, and regression testing
  • Use appropriate techniques and tools, including a debugger, to locate program faults
  • Describe several types of maintenance processes associated with correcting and enhancing software systems
  • Participate effectively in a software inspection
  • Participate effectively in a team environment

Learning Resources

NOTE to prospective students: Please check with the OSU Bookstore for up-to-date DVD, course packet, and textbook information for the term you enroll (http://www.osubookstore.com/or 800-595-0357). If you purchase course materials from other sources, be very careful to obtain the correct ISBN.

 Resources (Optional)

  • Lessons Learned in Software Testing, by Cem Kaner, James Bach, and Bret Pettichord;
  • Debugging by David J. Agans

For programming problems

  • http://stackoverflow.com/

Evaluation of Student Performance

Scores for quizzes, assignments, and exams will be posted on Canvas as they are graded. No late submission accepted!

Assignments (45%) + Quizzes(5%) - 50%

  • There are five assignments to be completed over the course of this class.
  • Assignments include a mixture of written documents and code submissions.
  • Quizzes will be given on a weekly basis. You are expected to take all quizzes. 
  • If you have a problem with an assignment grade, you must contact me through EMAIL within ONE WEEK of receiving your grade.

Exams - 30% (15% each exam)

  • There is one midterm exam for this course and one final exam.
  • Each exam is given after completing 10-12 units.
  • These exams are designed to take two hours each.
  • These exams are open note, open internet essay exams. These exams are NON-PROCTORED, so DO NOT SHARE exam questions with other students in the course until the exam period is over.

Final Project - 20%

  • There is a final project designed to check for your cumulative understanding, which includes some of the work for assignments.

Grading Scale

Grade

Average

A

>92

A-

>90 - 92

B+

>87 - 90

B

>83 - 87

B-

>80 - 83

C+

>77 - 80

C

>73 - 77*

C-

>70 - 73

D+

>67 - 70

D

>63 - 67

D-

>60 - 63

F

<=60

* REMINDER: A passing grade for core classes in CS is a C or above. A C-, 72 or below, is not a passing grade for CS majors. 

 

Students with Disabilities

"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. Class materials will be made available in an accessible format upon request.

Academic Dishonesty

I encourage students to work together and learn from one another on labs and assignments. However, I do expect you to turn in your OWN work. Working with someone does not include copying someone else's work and changing a small amount of that work, such as variable names, comments, spacing, etc. During group assignments you and your partners may turn in one assignment per group with everyone's name attached. Working together is discouraged on exams, quizzes, and the final. At NO point should you copy work from the internet, and if you do copy material from an external resource, then you need to cite the resource and author(s). Cheating and plagiarism are not taken lightly! You will receive a zero on your first abuse of these rules. In the case of shared work, the student sharing the work and the student copying the work will both receive zeros. On the second abuse, your name(s) will be given to the EECS department, where they will handle the details. Please read the university dishonesty policies.

Communication

  • The class piazza is your space to interact with your colleagues related to current topics or responses to your colleague’s 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 demeanor 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

Course Summary:

Date Details Due