CS410: System Design and Analysis

Fall 2015

Instructor:Professor John Peterson

Office and contact info: Hurst

Office hours: Wednesday 7:30pm – 9:30pm (library basement), Thursday 7:30 – 8:30 (library basement), Monday / Wednesday 1pm – 2pm (office). I am around many more hours than this; email or knock anytime.

Texts:Head First Design Patterns and The Mythical Man Month – both are available at the bookstore.

Webpage:

Software: We will be using Java and Netbeans–see the wiki for details.

Course Outline: The fundamental concepts of systems analysis and design are studied in the context of computerized information systems. Topics include high-level system construction tools, system design methodology, data representation languages such as XML, server-based system design, web services, system security, and system description languages such as UML. Also addressed is the human element in system design: working with users and domain experts to develop system requirements, and understanding the challenges of large scale system projects. Each student completes a number of systems design projects during the term. Prerequisite: CIS 310 with a minimum grade of “C-.”

Programs: There will be a significant coding component to this class. There will be assignments in both Java and Python. Expect about one programming assignment each week. There will be a 3 week period in which we devote the entire class to Agile programming.

Exams: There will be three exams given during the term. The last exam willbe given at the end of the term during the officially scheduled final exam period and will count double. Exams count for 50% of your grade.

Quizzes: There will generally be a 10 minute exam at the end of the period on Thursdays. The lowest quiz grade will be dropped. Quizzes cannot be made up. The average of all quiz grades will count as a single exam.

Topics: We will cover the following:

  • The basic process of large scale software development and the various pitfalls associated with large projects
  • Agile programming techniques
  • Design-level tools such as UML
  • Design patterns and other general software engineering ideas
  • The XML family of technologies
  • Service Oriented Architecture
  • Programming language constructs for large scale programming
  • Meta programming and program generation
  • Program specification languages

Academic Honesty:

Don’t do the following:

  • Copy code from the Internet without citing the source
  • Copy from other students without acknowledgement – you can work with others but you cannot submit completely identical assignments.
  • Copy answers on tests / quizzes
  • Use outside help without credit

There is a fine line between “good” sharing (working with other students on program) and wholesale copying. You are encouraged to work together on debugging but make sure you understand all the code you hand in. When in doubt, type it in yourself rather than pasting from another student. You can cut and paste off the Internet as long as you cite the source. Ask if you have any questions.

Academic dishonesty will result in a 0 on the assignment. Repeated or egregious dishonesty may lead to failure of the class.

Students with Disabilities: Western State Colorado University seeks to provide reasonable accommodations for all qualified persons with disabilities. The University will adhere to all applicable federal, state, and local laws; regulations; and guidelines with respect to providing reasonable accommodations as required, affording equal educational opportunity. It is the student's responsibility to register with the Academic Resource Center (x7056, Taylor 302) and to contact faculty members in a timely fashion to arrange for suitable accommodations.

Grades:Your grade is the average of your homework, exam, and programming scores.

Grades will be assigned as follows.

94% - A80% - B-67% - D+

90% - A-77% - C+62% - D

88% - B+72% - C60% - D-

83% - B70% - C-less than 60% - F

Other grades given in accordance with college policy.

I reserve the right to raise grades based on improvement, etc. I also reserve the right to modify any aspect of this syllabus except the grading scale by announcement in a regularly scheduled class.

Changes: this syllabus may be changed at anytime by posting revised information in the class web page. The information in the wiki will always supersede this document.

1