567: Software Engineering I
Fall 2008– Marco Gruteser
Description: This is a graduate course in software engineering intended to create a foundation for research or advanced professional practice. This year the class will also emphasize security aspects.
Class will meet Fri , in CoRE 538
Instructor: Marco Gruteser
Office hours By Appointment
Email: gruteser (at) winlab (dot) rutgers (dot) edu
Prerequisites: Programming Methodology I & II or equivalent undergraduate course work and good Java and/or C/C++ programming skills. If you have not taken these courses you should discuss your situation with me before you enroll.
Text: Bruegge, Dutoit, Object-Oriented Software Engineering, 2nd Edition, Prentice Hall.
Some meterial will also be derived from Anderson. Security Engineering, 2nd Edition, Wiley. The security book is not required but recommended as a good overview of security mechanisms.
Organization: Work in this class consists of a mix of
individual and group activities. As individuals, students will take the
mid-term exam and may submit homework. The occasional homework
assignments are voluntary and mostly serve as preparation for the exam.
I will consider on-time submitted homework for fine-tuning the grades
of students who are on the borderline of two grades. Every student must
also present one or two research or survey papers in class. These are
typically 20min presentations at the end of each lecture. The
presentations serve several purposes. First, the papers provide
additional depth on some of the topics covered in class. Second,
carefully reading research papers will make you familiar with the style
and organization of research writing -- a great preparation for
conducting your own research. Third, you will practice your
presentation skills, an essential skill whether you pursue an academic
or industry career. These individual activities make up about half of
your grade. To stimulate discussion of these papers in class all
students are expected to read the papers and email me
brief reviews before class.
The second part of
this class is to complete an ambitious design and development project in a team of
least five students. In this project you will apply and practice the
techniques covered in class. It will also provide you with experience
and insights about larger team projects. Be prepared to invest a
substantial amount of time into this project throughout the class.
Apart from a running system, the deliverables are periodic progress
reports and a final project report that describes the complete project,
including requirement analysis, system architecture, design,
implementation, testing, and verification.
student paper presentation and reviews 20%
project reports 20%
final project presentation 20%
project peer evaluations and participation 10%
homework fine tuning