CSCI 360 Syllabus – Spring 2014

Instructor

Aspen Olmsted
Course website : http://blogs.cofc.edu/olmsteda
Tel: 843.953.6600
Email: Please use aspen.olmsted@cs.cofc.edu with Subject = CSCI360
Office: J. C. Long Building 226
Office hours: MWF 10:00 – 11:00 AM

Class place and time

Section I – Classroom: J C Long 219, Time: TR 5:30 – 6:45 PM
Section II – Classroom: J C Long 219, Time: TR 9:25 – 10:40 PM

Catalog description

CSCI 360 Software Architecture and Design – This course covers the process of constructing software, including the structural views of software components, and their characteristics and interrelationships, at a high level of abstraction. The course also covers the design principles that govern the purpose, structure, development and evolution of software components. The informal laboratory component of the course uses software design tools to reinforce design processes and associated design representations.
Prerequisite: CSCI 230. Prerequisite or co-requisite: COMM 104.

Course Outcomes

  1. Describe the ethical issues associated with software architecture and design.
  2. Describe and evaluate how iteration with an agile approach works to create a resilient OO analysis and design process such as the Unified Process
  3. Work in teams to design software
  4. Analyze a software application problem with use cases.
  5. Produce a conceptual domain model with UML class diagram, associations, roles, multiplicities
  6. Use System Sequence Diagrams to illustrate operations
  7. Produce operation contracts.
  8. Describe evaluate the most common logical architectures for software systems and the nature of message passing among architectural components.
  9. Explain the nature and use of software patterns and give at least one illustrative example complete with code.
  10. Demonstrate the basics of software object design and the assignment of responsibilities and collaborations with reference to GRASP.
  11. Use UML activity diagrams to analyze and model processes
  12. Use UML state diagrams to analyze and model states.
  13. Demonstrate  basic design principles: Law of Demeter, Liskov Substitution Principle, SOLID
  14. Explain and implement test-driven development
  15. Exhibit a basic working knowledge of GUI development using an IDE.
  16. Produce a Software Architecture Document
  17. Write and present orally analyses of topics in software analysis and design

Professor Assumptions

I am assuming because you are in this class you want to learn about object-oriented
programming.  Therefore, it is my job to use the 40 hour long classes and 80 hours of outside
work to get you there.

Required text

Object-Oriented Software Engineering, by B Bruegge and A Dutoit, 2009. Retail Price $140.  Used prices from  $78.  Electronic prices from $55.

Grading scale

100-90 (A); 87-89 (A-); 86-84 (B+); 80-83 (B); 79-77 (B-); 76-74 (C+); 73-70 (C); 69-67 (C-); 66-60 (D); else (F)

Evaluation schedule

30% Final
40% Quizzes
30% Group Project

Group Project

Each student will choose a semester long project and work with the class as a group to build a software product.  Projects will be built using the force.com platform.  Videos are available at www.udacity.com that walk through the development process.  Some small dropbox entries will be required as we move through the semester where you upload a screenshot of your progress in the video course.  Your project must integrate to a minimum of 2 other classmates projects and one of the out of the box objects provided in the platform.

Quizzes

Each chapter of the book has a series of exercises that builds on previous chapters from the book.  You are encourages to work through the exercises by the class time on the following Thursday after the material has been covered.  A small subset of the homework will be used as a basis for a 15 minute quiz at the beginning of the  class.  We will have 13 quizzes and the lowest grade will be dropped automatically.  There will be no makeups for any reason.  So if you miss class during quiz time this will become your lowest grade.

Final

We will have one comprehensive final during finals week covering the material for the whole course.

Classroom disruption

Please read the College of Charlestons Student Code of Conduct. When you come to class
please turn off your cell phones and all other electronic communication devices.  I do encourage
discussion so if you have a question do not hold back from interrupting me if you are afraid I
have moved on.  If it is something I will talk about a little later I will note it on the board so we do not forget.

Disabilities

If you have a documented disability and are approved to receive accommodations through
SNAP Services, please contact me.

Student Honor Code

I expect you to abide by the Honor Code and the Student Handbook: A Guide to Civil and
Honorable Conduct. If you have a question about how to interpret the Honor Code, ask before
acting! I encourage collaboration, but you must document it. Thus, each student will submit
their own homework and, when collaborating, provide a reference to those people and
documents consulted.