Colorado State University

Software Engineering
Syllabus

Under Construction, Subject to Change


Computer Science Department
CS 314, Under Construction for Spring 2016 (Expect significant changes by the start of the semester.)

 


Links:




Description. Students learn methods used in large scale software development projects, emphasizing requirements analysis, design, implementation, and testing. The course introduces the engineering of complex software systems. The focus is on software engineering principles and the methods and tools that support the principles. Particular attention will be paid to object-oriented development techniques. Students will apply the methods in a series of assignments.

Prerequisites. CS253 and all the prerequisites for CS253 which includes Data Structures (CS200) and Computer Organization (CS270). CS314 students know how to program in Java and C++ and have very good working knowledge of object-oriented programming using the Java programming language.
Instructor.  Prof. James (Jim) Bieman

  • Phone: (970) 491-7096. Office: Room 462, Computer Science Building
  • Office Hours.  Monday and Wednesday 3-4:30PM, and by appointment or door open.
  • Email: bieman(at)cs.coloState.edu

  • Co-Instructor.  Dr. Geri Georg

  • Phone: (970) 491-7445. Office: Room 360, Computer Science Building
  • Office Hours.  Monday, Wednesday, Thursday from 9AM-3PM; Tuesday 10AM-3PM, and by appointment or door open.
  • Email: georg(at)coloState.edu

  • Teaching Assistant.  Saksham Manchanda.

  • Phone: 970-491-2556 Office: CSB 235, Desk 8.
  • Email: saksham.manchanda(at)gmail.com
  • Lab Hours. CSB 120: Monday, Thursday 1-3PM. Send email to schedule other times to meet.

  • Lecture Time/Place. Mon/Wed/Fri, 10:00-10:50 AM, Engineering 120.


    Required Textbook.  This semester we are using a custom text that is available at the CSU bookstore. It contains chapters from three different textbooks, all published by McGraw Hill. ISBN: 9781121650077
    Here are the sources for the chapters in the custom text.

    Course Notes. The instructor will make detailed course notes available to students.

    Other Required Reading. In addition to required reading from the text, reading assignments will include articles from technical journals, magazines, and web sites.

    Reference Texts: Not Required

    Required Tools (subject to updates):


    Objectives.  Students in this course will learn to


    Course Structure and Policies The method of instruction for this course relies on lectures, discussions, design studios, and software development assignments. Your performance will be monitored through exams and quizzes.

    Assignments. Students will work in teams of three students on all assignments (except for Assignment 0). Assignments will involve unit testing, design and programming, and software safety. Teams will be self-selected --- you will need to find other students that you want to work with. Make sure that your selected teammates are willing to work with you.

    For each assignment, teams will report the contribution and amount of time spent on the assignment by each team member. All assignments (except for Assignment 0) must be submitted electronically via Canvas. For some assignments you may be asked to bring a hard copy of your solution to class.

    Assignments will be due at 11:55PM on Wednesday evening of the due week. Do not expect the provided problem descriptions (the requirements) to be complete. An important skill that we would like you to develop in this course is the ability to analyze stated requirements to identify missing and inconsistent requirements (real-world requirements of non-trivial systems are rarely stated initially in a complete and consistent manner!). Do not make assumptions about what is required; if you identify problems in the requirements you will need to ask questions to clarify the requirements.

    All work is to be done on time. There is a 48 hour grace period, with a 10% penalty. The only exceptions are for unforeseeable circumstances.

    Exams. There will be two midterm exams. These will be closed book and closed notes. However, you will be allowed to bring one 8.5 x 11 inch sheet of paper with your notes to the exam. You will turn this sheet in with your exam.

    Quizzes. Class activities expand upon the topics in the readings. You should complete reading assignments prior to class. Quizzes will be based primarily on the reading material. Some quizzes will be given at the beginning of class. These quizzes will take about 10 minutes. Other quizzes will be given on Canvas and will be due prior to class. Expect approximately one quiz each week.

    Design Studios. Design studios give students an opportunity to relate concepts introduced in lectures to software development practices. In a design studio, groups of students will work in groups on problems given by the lecturer. Students must hand in the solutions they develop at the end of each design studio in order to obtain points for the design studio. For some design studios, each group will present their solution to the class to get full points.


    Grading. Expect the following breakdown:

    Letter Grading Scale

    Letter grades based on the total points that you earn weighted as described in the above breakdown. We will use the following scale:

    Check the Canvas page for your grades. The instructor has the option to adjust scores to fit a curve, and may assign +/- grades. However, any curving (or +/- grades) will lower (not raise) cut-offs. That is, 80% will be at least a B grade.

    Re-grade Policy. If you think you have received an incorrect grade on an assignment, contact the GTA first. or exam, contact the instructor promptly (within 5 days) after the item in question is returned to you. An item submitted for re-grading may be re-graded in its entirety, and may result in an increase, decrease, or no change in the grade.


    Class Preparation and Attendance.
    Software engineering is a broad and rapidly changing area in computer science. The textbook material is supplemented with material taken from other sources. You must attend class to learn the material.

    Class Announcements, Bulletin Board, and E-Mail.
    All important class announcements are posted in the Bulletin Board on the class Canvas page. The Bulletin Board also contains threaded discussions. Occasionally, part of an assignment may be to post or respond to a message on this Bulletin Board. Be sure to check this frequently.  Grades are kept on-line and are available via the class Canvas page (with your login and password).

    The instructor and TA may also be reached by email. However, do not email documents, models, or code to the instructor or TA in the false hope that they will debug them for you.

    Lecture Blog. The instructor plans to post his comments on the material covered in each lecture to the Lecture Blog. A link to the Lecture Blog will be posted to the course Canvas page. Visit the Lecture Blog to find out what was covered during lecture in case you missed class or just forgot.


    Professional Conduct

    Cheating/Student Ethics.  This course will adhere to the Academic Integrity Policy of the Colorado State University General Catalog and the Student Conduct Code. Read the following:

    Professional Behavior in the classroom and Labs. We work to maintain an environment supportive of learning in the classroom and laboratory. Towards that end, we require that you be courteous to and respectful of your fellow participants (i.e., classmates, instructors, GTAs and any tutors). In particular:

    Academic Integrity. We take academic integrity seriously. At minimum, academic integrity means that no one will use another's work as their own. The CSU writing center defines plagiarism this way:

    "Plagiarism is the unauthorized or unacknowledged use of another person's academic or scholarly work. Done on purpose, it is cheating. Done accidentally, it is no less serious. Regardless of how it occurs, plagiarism is a theft of intellectual property and a violation of an ironclad rule demanding `credit be given where credit is due'."
    Source: (Writing Guides: Understanding Plagiarism. Off-Site Icon Accessed, December 28, 2014) http://writing.colostate.edu/guides/researchsources/understandingplagiarism/plagiarismoverview.cfm

    If you plagiarize, get others to do your assignment, or do someone elses assignment you could lose credit for the plagiarized work, fail the assignment, or fail the course. Plagiarism could result in expulsion from the university. Each instance of plagiarism, classroom cheating, and other types of academic dishonesty will be addressed according to the principles published in the CSU General Catalog (see http://www.catalog.colostate.edu/Content/files/2014/FrontPDF/1.6POLICIES.pdf)

    Of course, academic integrity means more than just avoiding plagiarism. It also involves doing your own reading and studying. It includes regular class attendance, careful consideration of all class materials, and engagement with the class and your fellow students. Academic integrity lies at the core of our common goal: to create an intellectually honest and rigorous community. Because academic integrity, and the personal and social integrity of which academic integrity is an integral part, is so central to our mission as students, teachers, scholars, and citizens, we will ask to you sign the CSU Honor Pledge as part of completing all of our major assignments. While you will not be required to sign the honor pledge, we will ask each of you to write and sign the following statement on hard copy assignment submissions (except Assignment 0) and exams:

    "I have not given, received, or used any unauthorized assistance."
    Include the honor pledge on assignments submitted via Canvas in the "overview.txt" for programming assignment or on the solution file for problem assignments, along with the team members names.

    More information on academic integrity. See the Practicing Academic Integrity section of the Learning@CSU Web site, a comprehensive resource for students wishing to hone their academic skills.

    CSU Student Honor Code. Here is the text of the CSU Student Honor Code, approved by ASCSU and CSU faculty and staff in 2009:

    As a student at Colorado State University, I recognize my active role in building a Campus of Character. This includes my commitment to honesty, integrity, and responsibility within the campus community. As such, I will refrain from acts of academic misconduct.

    Expected Course Topic Outline:

    1. Software Process.
    2. Object-Oriented Concepts: connections between design and implementation.
    3. Software Testing.
    4. Object-Oriented Architecture and Design.
    5. Requirements analysis.
    6. Safety Critical Software.
    7. Misc: What we've missed.
    Also, course materials including course notes, assignments, and exams are protected by US copyright laws and are for use exclusively by students registered for this course. You do not have permission to distribute these materials through any means including posting them to websites or emailing them to others.

    The exact topics and order may change.


    Comments:bieman(at)CS.ColoState.EDU
    Last modified: January 19, 2016
    Copyright © 2000-2016 James M. Bieman. All rights reserved.