CS 320: Introduction to Software Engineering

Spring 2013

News | Description | Logistics | Grading | Integrative Experience | Schedule | CS H320 | CS 529 | Academic integrity | Reading | Prerequisites | Acknowledgements

News:

Description:

Software engineering goes beyond software development. It includes involves defining software products, dealing with customers who may not understand software or even their own needs, coordinating large teams of coworkers, ensuring the quality of software, shipping and maintaining software, and much more! As well as requiring strong technical skills, a good software engineer requires strong teamwork and communication skills. Get ready to learn software engineering principles first hand, ship product, and survive to do it again!


Logistics:

Lecture:Tuesday and Thursday 4PM–5:15PM in room CS 142
Discussion:Wednesday 2:30PM–3:20PM in room LGRT 103
Instructor:



Yuriy Brun
office: CS 346
office hours: Thursday 3PM–4PM (except March 14)
email:
TA:



Demetre Lavigne
office: CS 345
office hours: Wednesday 1PM–2PM
email:

All assignment submissions are through Moodle.

Late policy: Assignment due dates and times are listed on the schedule. All deadlines are sharp and the submission site will be closed at the specified time. No extensions will be granted after the assignment is due. Early requests for extensions will be considered only in extenuating circumstances.


Grading:

Students are responsible for submitting all assignments. Each student who fails to participate in one or more of the exams, or whose group fails to submit one or more of the seven (7) project assignments, will receive the grade F for the entire class.

 Assignment Grade
exam 1 20%
exam 2 20%
class and lecture participation 10%
project 50%

The project's 50% are further broken down:

product idea 2%
requirements specification 6%
software design 8%
α release 5%
β release with presentation 10%
user report 4%
1.0 release with presentation 15%
total: 50%

Integrative Experience:

CS 320 is an integrative experience course. It focuses on developing communication, reflection, and learning-aware learning skills. Each student will:

Schedule:

(subject to change; check regularly)

week date day topic due
Week 1
Jan 22 Tu Course introduction
Jan 23 W No discussion first week
Jan 24 Th Software development lifecycle
Week 2
Jan 29 Tu Product idea presentations product idea slides: 12:00PM noon
Jan 30 W Product idea presentations
Jan 31 Th Product idea presentations and group selection time project preferences survey: Fri Feb 1, 11:55PM
Week 3
Feb 5 Tu Requirements and SESim: extreme programming
Feb 6 W Meet in groups (in class) to brainstorm project ideas
Feb 7 Th Rapid software development (SESim)
Week 4
Feb 12 Tu Teamwork
Feb 13 W Work in groups
Feb 14 Th Architecture requirements specification: 12:00PM noon
Week 5
Feb 19 Tu No class: Monday schedule
Feb 20 W Work in groups
Feb 21 Th UML
Week 6
Feb 26 Tu Design presentations design specification: 12:00PM noon
Feb 27 W Work in groups (think α)
Feb 28 Th Design presentations
Week 7
Mar 5 Tu User interface and presentations α release: 12:00PM noon
Mar 6 W Work in groups (think β)
Mar 7 Th MAP. Exam review. Design patterns
Week 8
Mar 12 Tu No class: Prepare for midterm
Mar 13 W
Mar 14 Th No lecture: Exam 7–9 PM in the Agricultural Engineering
Building, room 119 (see B3 of the campus map)
Week 9
Spring Break
Week 10
Mar 26 Tu Testing
Mar 27 W Work in groups (think β)
Mar 28 Th Debugging
Week 11
Apr 2 Tu β release presentations β release: 12:00PM noon
Apr 3 W Work in groups (plan for the 1.0 release)
Apr 4 Th β release presentations
Week 12
Apr 9 Tu Groupthink design exercise: Round 1
Apr 10 W Work in groups (1.0 release)
Apr 11 Th Groupthink design exercise: Final Round
Week 13
Apr 16 Tu Reasoning about programs
Apr 17 W No class: Monday schedule
Apr 18 Th Security: Control-Alt-Hack
(class only for GeoMusic, Lüper, and Pangea)
user report: 12:00PM noon
Week 14
Apr 23 Tu Security: Control-Alt-Hack
(class only for AutoAdvisor, Achieve!, and TeamAlphaStrikeForce)
Apr 24 W Work in groups (1.0 release and presentation plan)
Apr 25 Th Power of software. Exam review.
Week 15
Apr 30 Tu 1.0 release presentations
May 1 W 1.0 release presentations 1.0 release: 11:55PM
Team Assessment 2: 11:59PM (late OK)
Week 16
May 6 M Exam 10:30 AM – 12:30 PM in the Goessmann Lab Add,
room 64 (see C3 of the campus map)

CS H320: Honors seminar

CS H320 is an honors seminar held with CS 320. The class meets Tuesday, 1PM–2PM in room CS 140. You must be registered for CS H320 in order to attend.

CS 529: Software Engineering Project Management

CS 529 is an advanced class on project management. Each student in CS 529 leads a team of CS 320 students toward a successful project completion. In addition to all the CS 320 lecture and discussion meeting times, CS 529 students also meet on Thursday, 1PM–2PM in room CS 140. The prerequisite to take CS 529 is an A- or better in CS 320 and instructor approval.

Academic integrity:

Students are allowed to work together on all aspects of this class except the midterm. However, for the homework assignments, each student must submit his or her own write up, clearly stating the collaborators. Your submission must be your own. When in doubt, contact the instructors about whether a potential action would be considered plagiarism. If you discuss material with anyone besides the class staff, acknowledge your collaborators in your write-up. If you obtain a key insight with help (e.g., through library work or a friend), acknowledge your source and write up the summary on your own. It is the student's responsibility to remove any possibility of someone else's work from being misconstrued as the student's. Never misrepresent someone else's work as your own. It must be absolutely clear what material is your original work. Plagiarism and other anti-intellectual behavior will be dealt with severely. Note that facilitation of plagiarism (giving your work to someone else) is also considered to be plagiarism, and will carry the same repercussions.

Students are encouraged to use the Internet, literature, and other publicly-available resources, except the homework solutions and test (including quizzes, midterms, finals, and other exams) solutions, from past terms' versions of this course and other academic courses, whether at UMass and at other institutions. To reiterate, the students are not allowed to view and use past homework and test solutions, unless explicitly distributed by the CS 320 staff as study material.

Whenever students use Internet, literature, and other publicly-available resources, they must clearly reference the materials in their write ups, attributing proper credit. This cannot be emphasized enough: attribute proper credit to your sources. Failure to do so will result in a zero grade for the assignment and possibly a failing grade for the class, at the instructor's discretion. Copying directly from resources is not permitted, unless the copying is clearly identified as a quote from a source. Most use of references should be written in the words of the student, placing the related work in proper context and describing the relevant comparison.

The students should familiarize themselves with the UMass Academic Honesty Policy and Guidelines for Classroom Civility and Respect. These policies and guidelines apply to this class.

Students who violate University standards of academic integrity are subject to disciplinary sanctions, including failure in the course and suspension from the university. Since dishonesty in any form harms the individual, other students, and the university, policies on academic integrity have been and will be strictly enforced.


Reading:

There is no required textbook for the course. There may be several reading assignments that will come from publicly available research papers. Students who wish to read established textbooks beyond the assigned reading should consider:


Prerequisites:

This course does not teach students to program. Software engineering is a larger concept than programming and both cannot be taught in a single semester class. Students should already be proficient in at least one programming language (such as Java or C++). A grade of C or higher in CS 220 is required, though you will likely have a difficult time with the material in CS 320 if you got below a B in CS 220.

Acknowledgements:

Various materials used in this course have greatly benefited from materials developed by Gail Alverson, Lori Clarke, Michael Ernst, André van der Hoek, David Notkin, Nenad Medvidovic, Lee Osterweil, and Ian Sommerville. Thank you.