University of Calgary
Rob Kremer
Course Description

SENG 403: Software Development in Teams and Organizations
Winter 2014
Department of Computer Science
Computer
Science

Midterm exams are marked, and we will be reviewing the exams on Thursday (Mar 13) in the lecture.  The mark distribution is below.  The high mark was 42/45, low mark was 22, the median and mean were both 32. I have attempted to send out individual marks, but the university's EXTREMELY STUPID security measures are preventing me from doing so.

Details

Instructor:
Rob Kremer, ICT 748, email: kremer@cpsc.ucalgary.ca;
Lectures:
Tues/Thurs 14:00-15:15 in ICT 116
Office hours:
Tues/Thurs 11:00-12:00 and by appointment.
Course web site:
http://pages.cpsc.ucalgary.ca/~kremer/courses/seng403/W2013/index.html
Course information sheet:
http://www.cpsc.ucalgary.ca/custom/undergrad/outlines2013/w13/seng403_winter2013.pdf
Mail list server:

Tutorials/Labs:
Tutorial Time Location TA
T01 Tu/Th 16:00-17:15 MS 119 Julia Paredes
T02 Mo/We 17:00-18:15 MS 119 Marinho Moreira
T03 Mo/We 17:00-18:15 ICT 517 Tristan Aurini

Course Description

In this course you will learn about the different philosophies and approaches to software development. You will understand the principles and practices of each approach, and you will learn about best practices in industry and when and how to apply them.

We will also discuss in great detail the dynamics of teams and organizations in the context of software development. You will learn about the social, political, and technical issues you are likely to face when you go to work in industry.

In the tutorial, you will get a hands-on experience on the technical aspects of collaborative software development including source code control, continuous integration, testing, refactoring and other topics.

Prerequisites

(For students registered in Computer Science) Software Engineering 301 and one of Philosophy 249, 329, 349, or Business and Environment 561, (For students registered in Software Engineering, Schulich School of Engineering) Software Engineering 301.

Misuse of Computer Facilities, Plagiarism, and Cheating

Academic misconduct (cheating, plagiarism, or any other form) is a very serious offence that will be dealt with rigorously in all cases. A single offence may lead to disciplinary probation or suspension or expulsion. The Faculty of Science follows a zero tolerance policy regarding dishonesty. Please read the sections under the heading "Student Misconduct" in the Academic Regulations section of the University Calendar.

These serious offences will carry sanctions. Copying of assignments from anywhere without appropriate references, cheating on exams, or misusing facilities will result in punishment ranging from course failure to criminal prosecution. If you are unsure about these issues do not hesitate to consult with the course instructor.

This course requires group work, which dictates that students must work together to solve assignments. Generally, individual contributions from people within the group do not need to be cited, but major contributions should be. Note that it is the responsibility of each member of the group to ensure that plagiarism (or other forms of cheating) does not occur in the work: the entire group will be assessed based on any incident of academic misconduct in group assignments.

Each member of a group is expected to do their fair share of the group work. A peer assessment mechanism will be used to monitor this. If group work is unequally distributed among group members, group members may achieve differing marks for the assessment. This may range from an A to a failing grade, with corresponding consequences for the overall course mark.


Textbooks

There is no required textbook for this course, but the following list of links are provided.

Readings

Technical resources

Extra links and resources


Assessment

The University policy on grading and related matters is described in the university calendar.

The course will have a Registrar's scheduled final examination and a midterm exam. These exams together constitute the exam component of the course and there is also a supplier project component, a customer project component, a paper/presentation component, and a peer evaluation component. All four components have to be passed in order to pass the course, and all parts of the peer evaluation must be passed in order to pass that component. Even though the peer evaluation component has only a nominal mark associated with it, you will fail the entire course if you fail to complete every one of these tasks adequately.

The final grade will be calculated using the grade point equivalents of the individual grades achieved weighted by the percentages given later on this page. To get the final letter grade for the course, the weighted sum is converted back using the official University grade point equivalents. In order to deal with the grade A+ that unfortunately does not scale in the grade point equivalents, the following rule will apply: an A+ as final letter grade will be awarded to every student who has an A in both exams and in all components of the assignment components and in all components of the peer evaluation component.

The exam component

As already described, we follow the usual midterm-final-scheme for exams. The weighting of the grades you achieve in these two exams is as follows:

Midterm    15% of final grade
Final exam   20% of final grade

Remember, you have to pass this component to pass the course. For example, this means that a D in the midterm and an F in the final is not sufficient!

The supplier project component

For a detailed description of what you have to do, please refer to the supplier assignment page. The groups have not yet been assigned. The following table describes the percentage with which the individual task grades will be weighted in the final grade for the course.

TOTAL    41% of final grade
Iteration 0     18% project grade
Iteration 1     22% project grade
Iteration 2     30% project grade
Iteration 3     30% project grade

Please note that the grades above are achieved by your team!

The paper/presentation component

For a detailed description of what you have to do, please refer to the paper assignment page. The following table describes the percentage with which the individual task grades will be weighted in the final grade for the course.

TOTAL    20% of final grade
First draft     5% of paper/presentation grade
The paper covers the topic comprehensively     50% of paper/presentation grade
The paper is well-written and well-structured     10% of paper/presentation grade
The paper conforms to the formattting guidelines     10% of paper/presentation grade
The topic presented in-class clearly and creatively     25% of paper/presentation grade

Please note that both grades above are achieved by your team!

The peer evaluation component

The peer evaluations are relatively simple to do compared with the other course components. You must submit a report to your TA and instructor (by email) containing a letter grade assessment of each (including yourself) of your group members' contributions to the current assignment together with a 1/3 page description of that person's contribution justifying your assessment. It is not acceptable to give everyone in your group an A or to give everyone in your group an F. A report that does not reflect the dynamics of the group will be considered a failure, which could cause you to fail the course. It is your responsibility to get to know your group members and know their contributions to the project.

The weighting in the final grade for the course is

TOTAL    4% of final grade
Supplier peer review, iteration 0     0.5% of final grade
Supplier peer review, iteration 1     0.5% of final grade
Supplier peer review, iteration 2     0.5% of final grade
Supplier peer review, iteration 3     1% of final grade
Paper peer review, draft     0.5% of final grade
Paper peer review, final paper     1% of final grade

So, the peer evaluation component accounts for only 4 percent of your mark, but you have to do all of them adequately in order to pass the course.

Why the peer evaluation? The peer evaluation is set up to prevent freeriding (a group member doing little or nothing and getting a good mark by taking advantage of the efforts of the rest of the group). It will be used as follows: The TA and instructor will use their own judgment and experience with the group as well as the input from the peer evaluations to assess a "delta mark", which will be applied to the group assignment. The delta mark will be a positive or negative letter-grade value between -4 and +1, which will be added to the group mark for each individual member.

Therefore, if you are the group leader, make a huge contribution to the project, your group thinks you can walk on water, and your group project is assessed as a "B", you may be assessed a delta mark of +1 -- your mark for the project will be "A". On the other hand, if you could had done better on the project, your delta mark may be -0.7, and you'd get a group mark of "C+". Furthermore, if you really didn't help much at all on the project, you'd get a delta mark of -4, you'd get a "F" for the project and you'd automatically fail the entire course. Don't let that happen. :)


Lecture/Lab Schedule (Subject to change)

Date
Tuesday 14:00-15:15
Thursday 14:00-15:15
Jan07/09
-- no class --
Course outline
Software projects: stakeholders & lifecycle
no tutorial
Survey
Jan14/16 Software engineering
no tutorial
Software methodologies & Agile software methodologies
tutorial: Version control systems, SVN video tutorial
Jan21/23 Envisioning Projects: exercise & Planning with user stories
tutorial: Software development toolkits (SDKs)
Paper/presentation topics posted 09:15
Release planning
tutorial: Bug Tracking and Project Management Systems
 
Jan28/30 Iteration planning
tutorial: Continuous Integration
Prototyping
tutorial: Unit testing frameworks
Feb04/06 Software Architecture
tutorial: work on your project

Iteration 0 due

Software design
tutorial: Refactoring

Peer review for iteration 0 due (supplier only)

Feb11/13
Test-driven design
tutorial: Modeling
Design patterns
tutorial: work on your project
Feb18/20
Reading Week
Feb25/27 Working in teams
tutorial
Iteration 1 due
Retrospectives
tutorial: Personality factors

1. Paper first draft due
2. Peer review for iteration 1 due
3. Peer review for final paper due (Mar 1)

Mar04/06 The people factor & social behaviour
tutorial: Using mockups for testing
midterm review
tutorial: work on your project
Mar11/13 MIDTERM TEST
tutorial: work on your project
People & politics
tutorial: Design patterns
Mar18/20

Presentation topics
8. Software security (slides, paper)


tutorial: work on your project

Iteration 2 due

Presentation topics
4. S/W Architectural styles (slidespaper)
9. Clean code (slides, paper)
tutorial: work on your project

Peer review for iteration 2 due

Mar25/27

Presentation topics
11. Programming language families (slides, paper)
5. Game development (slides, paper)
tutorial: Project management tools
Presentation topics
6. Aspect-oriented programming (AOP) (slides, paper)
10. Change management and negotiation (slides, paper)
tutorial: work on your project
Apr01/03 Presentation topics
3. Development with Ruby-on-Rails (slides, paper)
1. Innovation in the S/W industry (slides, paper)
tutorial: work on your project
Presentation topics
2. Open-source S/W development (slides, paper)
7. Service-oriented software (slides, paper)
tutorial: work on your project
Apr08/10 Ethics of software engineering
tutorial: work on your project
Software usability
tutorial: demos (Wed Apr09 & Thurs Apr10)

1. Iteration 3 due
2. Final paper due
3. Peer review for iteration 3 due (Apr 12)
4. Peer review for final paper due (Apr 12)

Final Exam: Wed, April 23, 08:00-11:00, Location TBA

UofC
SENG 403: Software Development in Teams and Organizations
Department of Computer Science

Last updated 2013-12-27
Rob Kremer