CEN4020: Software Engineering I up↑

Syllabus

Fall Term 2010

Instructor Contact Information

Instructor: Ted Baker
  • course URL: http://www.cs.fsu.edu/~baker/swe1
  • Office hours: Monday, Wednesday, Friday 10AM - 11AM, and by appointment
  • Office location: 207A LOV
  • Phone: 644-5452
  • e-mail: baker [at] cs [dot] fsu [dot] edu
Teaching Assistant: Robert Hall
  • Office hours: Mondays 9-11AM
  • Office location: 206 Love
  • Office Phone: N/A
  • e-mail: rhall [AT] cs [DOT] fsu [DOT] edu
Teaching Assistant: Alejandro Cabrera

Meetings

MeetingDay(s)Time of DayLocation
All SectionsMWF8:00-8:50AMHCB 210
Section 1T8:00-8:50AM301 LOV
Section 2R12:30-1:45PM301 LOV

You are expected to attend all class meetings.

"LOV" is the J.J. Love Building. "HCB" is the Huge Classroom Building, near the Oglesby Student Union. For a campus map, see

Catalog Description

CEN4020. Software Engineering I (3). Co-rerequisite: COP4530. The first of a two-semester software engineering-sequence, this course integrates theory and practice through a project. Topics include theory, tools, requirements elicitation, software-requirements specification, requirement review, software development, ethics, software-development life cycle, teams, and project management. Oral presentation required.

Overview

The IEEE defines software engineering as "the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software". There are many competing approaches to solving every software engineering problem. A goal of this course sequence is for the students to become aware of a representative range of software development approaches, including the associated concepts, techniques, and terminology, and to learn some of the techniques in sufficient depth to apply them to projects in the course. Another goal is to improve the students' ability to work on a software development team, through experiences in course projects and reflection on those experiences. Quite a few of the concepts and techniques exposed in this course will be usefule beyond the domain of software development, in virtually any human enterprise.

In the first few weeks, homework is given to learn tools and techniques for specifying software projects. The specifications will be done using a modeling language called the Unified Modeling Language (UML). The homework assignments prepare you for the work needed for the team project. The team project is during the second half of the semester. The process followed for the software development is a variant of the Unified Process, approved by the Object Management Group as the standard for object-oriented development, adapted to incorporate some ideas from Agile Programming and Scrum. .

Prerequisites

CEN4020-CEN4021 serves as one of the "capstones" of the computer science curriculum. As such, it requires students to demonstrate that they are able to apply a collection of skills that they should have learned in prior courses, including the co-requisite COP4530 (Data Structures, Algorithms, and Generic Programming ) and its prerequisites. These skills include:

Beware:

  1. CEN4020 and CEN4021 are intended to be taken back-to-back, during the same academic year. The division of content between the two courses may change from year to year, and the project is cumulative, with requirements analysis in CEN4020 and design, implementation, and testing in CEN4021.
  2. COP4530 is a pre-requisite for CEN4021. If you have not yet completed it you need to take it concurrently with CEN4020 in order to take CEN4021 the next term.
  3. Students who do not meet the prequisites for CEN4021 will be administratively dropped from that course. A problem is that this may not happen before the end of the drop/add period, so the student will be left without a full schedule, and may need to wait an entire year before CEN4021 is offered next. Do not test the system.
  4. A student who leaves a gap between CEN4020 and CEN4021 may need to do extra study to catch up with students who took CEN4020 the semester before CEN4021.

Objectives

The approved specific educational objectives for this course are that each student will demonstrate that she/he is able to:

In order to satisfy the Computer Science accreditation requirements of ABET and SACS, and the requirements of the State of Florida for Academic Learning Compacts, this course and CEN4021 have been chosen to assess the following additional student learning outcomes:

  1. The student will be able to produce a written technical document, written to professional standards.
  2. The student will be able to function effectively on a team to analyze the requirements for a software systems, and design and create a prototype implementation.
  3. The student will be able to analyze and document the requirements for a software system.

These outcomes will be assessed in certain assignments and exam questions, to be identified during the term. Students are required to obtain a passing score these outcomes in order to pass the course.

Topics

The topics covered in CEN4020 will include the following:

Textbooks & Other References

dennis textbook resource link Title: Systems Analysis and Design with UML Version 2.0: An Object-Oriented Approach, 3rd Edition
Authors: Alan Dennis, Barbara Haley Wixom, David Tegarden
Publication Date: August 2009
Publisher: John Wiley & Sons Inc.
ISBN-10: 0471348066
ISBN-13: 9780471348061

The Dennis text provides a good but limited introduction to a core of software engineering concepts that are most relevant to the development of business information systems. In order to provide a broader view of software engineering, and also to go into more depth on a few topics, it will be supplemented by other materials. These will include lectures, with notes posted on the Web, and other Web-based readings. These expand on topics not fully discussed in the book, including the Unified Process and the Unified Modeling Language. They also introduce additional topics not mentioned in the book. They include an example for each of the deliverables (assignments), based on a hypothetical example system.

Assignments & Examinations

Readings.You will be assigned readings in the textbook and on the Web. For the textbook readings, you should try to answer the review questions and attempt as many as you can of the exercises at the end of each chapter, to help you find out whether you have understood the material you have read.

Class Attendance & Participation. Class attendance is required. This includes all class meetings. Attendance will be checked at most class meetings. If you are not present when attendance is checked you will be considered absent. Each unexcused recorded absence will result in a reduction of the class participation grade. The first three (3) absences (or latenesses) will be excused without justification; after that, absences will only be excused for the reasons listed in the University Attendance Policy.

Examinations.There will be several midterm examinations and a final examination. The exams are designed to evaluate the student's comprehension of material, rather than just memorization. Questions may include multiple choice, true false, essay, and examples of problems similar to homework and project deliverables. On exams, you will be responsible for all of the assigned readings, the sample quiz questions, (including those not actually on the quizzes), and the homeworks and project deliverables up to the date of the examination. All examinations will be "closed book". That is, no books or reference materials or electronic devices will be allowed in the examination room. All students will be expected to take the examinations at the scheduled time, shown on the course Calendar.

If you know in advance of a reason you will not be able to take a scheduled examination within the scheduled window of time, you are responsible for making arrangements in advance with the instructor. If you make prior arrangements, or have a documented last-minute emergency conflict -- such as a medical emergency or your employer requires you to make an out-of-town trip -- the instructor will attempt to accommodate you. However, under no circumstances will a student be allowed to take an examination before the rest of the class. A make-up examination may have an entirely different format from the examination given in class, and may be an oral examination. If a student misses one midterm examination, the instructor may choose to compute the grade using final examination score in place of the missed midterm examination score.

Homework & Programming Assignments.

The best way to learn and understand system analysis is for students to actually analyze systems. As such, students will individually perform an activity as a homework assignment and then repeat it on the team project. The team project will be developed further in CEN4021 the following term.

On the homework assignments, students individually read written specifications, and interpret these specifications to produce individual deliverables. Homeworks are intended to assure each student has knowledge of specific skills, such as the Unified Modeling Language for performing software specification and code generation.

On the team project, students work together to apply principles and techniques from the course, such as using the Unified Process and UML to produce IEEE Software Requirements Specifications (SRS) and a human-computer interface (HCI) design.

Teams will be required to maintain a project web page, containing copies of the project deliverables and a project log, and to turn in an archive the web page at the end of the term.

Students will be required to give oral presentations on projects at certain project milestones, including at least one major presentation at the end of the project. The deliverables for the presentation will include PowerPoint slides and notes for what you planned to say.

Project Application

All the student teams this term will work with a single customer, who will provide the requirements for the project. The customer is a company based in Tallahassee that is interested in developing software to allow families to perform home energy audits.

Teams

The target size for a project team will be five (5) students, but may be as large as six. Part of the first team project assignment is for students to organize into their own teams, based on an informal interview process. Students who do not succeed in finding a team on their own will be assigned to a team by the instructor.

Team evaluations will be performed periodically, in which students confidentially evaluate their team members. Based on these evaluations, all students in the team may or may not receive the same grade for the project.

Instruction on team formation are provided on a separate web page (TeamInstructions.html).

Development Environment

One of the important aspects of software engineering is making effective use of software tools. A great variety of commercial tools are available for all aspects and phases of the software development process, from project management to coding and debugging, and from requirements analysis through design, testing, and maintenance. A goal of this course is to make students aware of the range of software tools available, and for students to experience using a representative sample. The set of tools used this term is yet to be determined. If you have experience with, or are interested in using a specific tool set, please contact the instructor to discuss it.

How to Do Well in this Course

Read each assigned reading at least once prior to the lectures and/or quizzes to which they apply. Use the review questions provided to check how well you understood.

Attend every class meeting. In class, ask questions if you have any point on which you feel unclear. Offer to answer any questions that the instructor poses to the class, whether the answer seems obvious or you are only able to make a guess. Don't be afraid to interrupt, or to expose ignorance. Just being engaged enough to ask questions is a positive thing. Speak up if you find something unclear, to have it repeated or explained in a different way.

On-line notes will be provided after most lectures. Reviewing them after class and before exams can be helpful. However, don't assume you can get by as well with just reading the book and on-line materials. History shows that students who often miss class or are late class fall behind the rest of the class.

The lecture notes are generally outlines of topics to be covered, with some illustrations and diagrams. The classroom discussions generally will go into more detail. They may also cover additional topics, if a student asks a question or brings up an interesting point. In some cases the notes may go beyond what it is possible to cover within the time limit of the class, and you will be expected to read the portion that was not covered; if you have questions on that portion, please ask them by e-mail to the instructor.

I appreciate that it would be convenient for students if I were to post the notes I use in class, well in advance of class, so that students could print them out and use them as notes during the class. However, I have found that I am not perfect enough to do that. So that the day's material is fresh in my mind when I walk into a classroom, I like to work over my notes, making revisions, right up to the class meeting. I also sometimes revise my on-line notes after class to cover issues brought up by students during the class. I'll try to post something on line before class, but if I don't and you want to look at something besides the textbook first, you should look at the notes from the prior year, which will be posted on line.

Work on the homework assignments and projects diligently. The individual homework assignments are designed to prepare you for the team assignments, and are selected to complement important topics in the textbook. Thus having a good grasp on the concepts and techniques covered by assignments will assist you when taking an exam. If you have questions about the class materials, review questions, or the project, send them by e-mail to the instructor, but first attend class and read your own e-mails, as the instructor will either cover in the next class or broadcast by e-mail the response to any question that appears likely to be of use to the entire class.

Most students enjoy working on their project, and enjoy the interactions with their team-mates on the projects. By the end of the term they are quite proud of what they have accomplished. If it is not working for you that way, discuss it with the instructor

An on-line calendar is provided at http://www.cs.fsu.edu/~baker/swe1/calendar.html. This includes dates for examinations, due dates for assignments, and the planned topic for each class meeting. The calendar will evolve during the term, so it is important to always refer to the current one on the website (not an older printed version).

Grading

The final course grade will be based on a weighted average of the graded work done in the course, according to the tables below, subject to the provision regarding obtaining a minimum of "C-" on assessments of the learning outcomes mentioned under Objectives above.

Graded workWeight
Midterm exams15% + 15%
Quizzes5%
Final exam15%
Homework assignments10%
Project deliverables 
   Individual assignments15%
   HCI prototype5%
   Team assignments15%
Class participation5%
PercentLetter
94-100A  [4.00]
90-93A- [3.75]
87-89B+ [3.25]
PercentLetter
84-86B  [3.00]
80-83B- [2.75]
77-79C+ [2.25]
PercentLetter
74-76C  [2.00]
70-73C- [1.75]
67-69D+ [1.25]
PercentLetter
65-66D  [1.00]
64-65D- [0.75]
0-59F  [0.00]

Do not expect to turn in work late. There is no room in the course schedule for slippage. Turn in your best effort result at the time the deliverable is due, regardless of whether you are satisfied with it. In some cases you may have an opporunity to correct mistakes as part of the next project phase, but the grade for each deliverable will be based on what is turned in by the deadline.

Attendance Policy

Students are expected to attend all class meetings, including recitation meetings. Exceptions are limited to cases covered by the University attendance policy, below:

Excused absences include documented illness, deaths in the family and other documented crises, call to active military duty or jury duty, religious holy days, and official University activities. These absences will be accommodated in a way that does not arbitrarily penalize students who have a valid excuse. Consideration will also be given to students whose dependent children experience serious illness.

Academic Honor Policy

The Florida State University Academic Honor Policy outlines the University's expectations for the integrity of students' academic work, the procedures for resolving alleged violations of those expectations, and the rights and responsibilities of students and faculty members throughout the process. Students are responsible for reading the Academic Honor Policy and for living up to their pledge to "... be honest and truthful and ... [to] strive for personal and institutional integrity at Florida State University." (Florida State University Academic Honor Policy, found at http://dof.fsu.edu/honorpolicy.htm.)

Take note that this policy not only puts you on your honor not to cheat. It requires that you report any cheating that you observe. In this course, the academic penalty for first violation will be a zero on the assignment or examination where the violation occurred, and the penalty for repeat violations will result in a grade of "F" in the course. Please read the detailed discussion of how the Honor Code applies to programming assignments for this course, at http://www.cs.fsu.edu/~baker/plagiarism.html.

Americans with Disabilities Act

Students with disabilities needing academic accommodation should:

  1. register with and provide documentation to the Student Disability Resource Center; and
  2. bring a letter to the instructor indicating the need for accommodation and what type.

This should be done during the first week of class.

This syllabus and other class materials are available in alternative format upon request.

For more information about services available to FSU students with disabilities, contact the:

Student Disability Resource Center
874 Traditions Way
108 Student Services Building
Florida State University
Tallahassee, FL 32306-4167
(850) 644-9566 (voice)
(850) 644-8504 (TDD)
sdrc@admin.fsu.edu
http://www.disabilitycenter.fsu.edu/

Communication

If you are experiencing difficulty or are concerned about your progress, please contact the instructor right away. Problems are usually easier to solve when they are addressed early.

You are required to verify that your e-mail address is included in the class e-mail list. The Instructor will send everyone a message at the start of the term. If you don't get that first message, make sure you are added to the list.

Check regularly for electronic mail sent to you containing information about this course. You are also encouraged to use e-mail to ask questions and report problems. For this course, we will be using only official University ("@fsu.edu") or CS Department ("@cs.fsu.edu") e-mail accounts.

So that you receive all e-mail promptly, if you ordinarily read your e-mail using another account, you should set up automatic e-mail forwarding from your "@cs.fsu.edu" account and your "@fsu.edu" accounts to that other account.

This syllabus and other information, such as course announcements, assignments, lecture notes, and some useful links to other Web sites, will be posted on the Web site for the course, which is located at http://www.cs.fsu.edu/~baker/swe1/. Access to most of the materials on that site will require a special login name and password, which is provided in the course's Blackboard announcements.

Changes to the Syllabus

Except for changes that substantially affect implementation of the evaluation (grading) statement, this syllabus is a guide for the course and is subject to change with advance notice. Notice may be by e-mail, announcement in class meetings, or announcment on Blackboard.

T. P. Baker. ($Id: syllabus.html,v 1.1 2010/08/22 10:18:04 baker Exp baker $)