Welcome message from Prof Dig

Welcome to CS361! I am excited to teach this class. We will be doing a few things differently from other classes to make CS361 more interactive and participatory. You will have the opportunity to continuously share your opinions in class through NXT clicker and get instant feedback. You will be engaged in an active learning environment where you learn from many sources, including your peers in class. This term you will be doing extensive peer reviews (of code, design, documentation, etc.). I will also interview in class (through Skype) some of the most famous industry leaders, book authors, and alumni. You will be developing a project in Java and Eclipse using Test Driven Development. You are expected to follow an organized software development process (eXtreme Programming) and ultimately deliver a polished product with emphasis on good design, clean code, sufficient testing, and proper documentation.

Class Schedule

Lectures: Tuesday and Thursday 4:00 - 5:20 PM in BEXL 320


Professor: Danny Dig
Email: digd [at] eecs.oregonstate.edu
Office: KEC 3043
Office hours: Tuesdays from 2-3pm in KEC 3043, and by appointment

TA: Caius Brindescu
Email: brindesc [at] eecs.oregonstate.edu
Office: KEC 2130 and Kelley Attrium
Office hours: Wednesday and Thursday from 1 to 2 PM in the Kelley Atrium

Important Dates

Wednesday, March 18th: Final Exam
9:30 AM - 11:20 AM in OWEN 101.
January 6: First day of classes

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.
  • Demonstrate the ability to compose a document of at least 2000 words through multiple aspects of writing, including brainstorming, drafting, using sources appropriately, and revising comprehensively after receiving feedback on a draft.