CSC 4700 Software Engineering SPRING 2018

Section 1

SCHEDULE

Dr. Thomas Way


Schedule is subject to change during the semester.  Please check the online version on the course website from time to time.
#
Date
Topics, Assignments, Activities
1 M 1/15 No class meeting Monday Jan. 15 (MLK Holiday)
1

W 1/17

Welcome to the course

Lecture 1: What is Software Engineering?

Assignment 1 (20 points): Complete the extended questionnaire by Fri. 1/19 at midnight, and return to Dr. Way by email.

2 M 1/22 What is Software Engineering? (cont'd)

In-class Design Activity

  W 1/24

It's All About the Process

Lecture 2: It's All About the Process

Discuss questionnaires

Assignment (30 points): Read Brooks "No Silver Bullet" online. Dr. Brooks includes many opinions in his article. Identify one that you believe is insightful and one that you disagree with. Explain the reasons for your choices in 500 words or fewer. Due: hand in 1/29 in class.

3 M 1/29 Requirements Engineering
Discuss Brooks article

Lecture 3: Requirements Engineering

Team Sign-up Sheet

Phase 1: Prototype Specification Assignment (50 points): handout (Part 1 due Wed 2/07)

  W 1/31

Requirements Engineering (cont'd)
Prototyping & User Interface Design

Mini-Lecture: User Interface Design

PowerPoint Prototyping Toolkit (release 0.2)
10 Minute Mock Prototyping (see Jitter example)
User Interface Design for Programmers (Joel on Software)

Assignment (30 points): Read the Agile Software Development handout and prepare a single, outstanding paragraph arguing in favor or against the use of this approach on a software project. Feel free to use other online references in forming your opinion. Due: hand in 2/05 in class.

4 M 2/05 Agile Software Development - brief discussion
Introduction to Refactoring

Lecture 4: Refactoring

  W 2/07 Phase 1: Prototype Specification Assignment, Part 1 DUE TODAY

Part 2 due Mon 2/19

In class: Quick, stand-up presentations where each team gives a brief overview of their idea what they propose to do, and others have an opportunity to provide comments and suggestions. Brainstorming ideas!

5 M 2/12

Refactoring (cont'd) & Eclipse

"Smells to Refactoring Cheat Sheet" (Joshua Kerievsky, Industrial Logic, original)

Refactoring Lab: in-class activity

  W 2/14 No formal class meeting

Teams should use this known and available time to work on Phase 1, Part 2 project, which is due Monday, 2/19/18 in-class.
 

6 M 2/19 Phase 1: Prototype Specification Assignment, Part 2 DUE TODAY

Project Demos (approx 10 mins each)

Phase 2: Prototyping Assignment (100 points): handout (see the handout for due date and assignment deliverables)
  W 2/21 Software Processes

Lecture 5: Software Processes

Design specifications: How much detail is enough?

Phase 2 project meeting time, discussion, Q&A with Dr. Way as needed 

7 M 2/26 Software Processes (cont'd)

Agile Software Development & SCRUM

SCRUM in under 10 minutes (8:00) [produced by Axosoft]
Introduction to Agile and SCRUM: Part 1 (8:00), Part 2 (9:50), Part 3 (2:50)
SCRUM Basics (5:50)
The Downfall of Agile Hitler (4:00)

Project meeting time, discussion, Q&A with Dr. Way as needed

  W 2/28 Phase 2 working session

Dedicated, informal class lab time for Q&A with Dr. Way, including assistance with finding the right tools, refining your project idea, getting tips of solving technical challenges, etc.


M 3/05
W 3/08

SEMESTER BREAK - NO CLASS
8
M 3/12

Strategies for Solving Software Problems (pdf)

Speed Design Challenge (in-class) (20 points): We need working example code of a minimally functional web-browser to use in our software product for the help information and for the user to possibly follow links to outside websites for additional information. Find working source code, download it, compile it, run it and show it to the instructor. You may work alone or with a partner.

  W 3/14 Team working time, no formal class meeting

Use this dedicated, commonly available meeting time to collaborate on Phase 2 of the Prototype assignment (see 2/19 above for assignment handout).

9 M 3/19 Team working time, no formal class meeting

Continued collaboration.

  W 3/21 NO CLASS - WEATHER CANCELATION
10 M 3/26 Phase 2: Prototype  Assignment DUE TODAY
Project Demos (approx 10 mins each) (9 presentations)

Prototype Assignment, Phase 3 (100 points)handout (see the handout for due dates and assignment deliverables)

  W 3/28 Project Demos (approx 10 mins each) (4 more presentations)

More on Refactoring: Porting Code (pdf)

Code Porting Challenge (in-class or on-your-own): Port a simple version of an existing C utility (wc.c) to Java, and demonstrate the results to the instructor. You may work alone or with a partner. [was going to be worth 20 points, but now it is solely for personal enrichment]

Design Patterns (pdf)
Design Patterns overview - Wikpedia article
Anti-Patterns overview - Wikipedia article
Examples of Design Patterns - OODesign.com article
Design Patterns quick reference card (pdf)

Team Member Evaluations (pdf)
Possible Team Collaboration Time

11 M 4/02 EASTER BREAK - NO CLASS
  W 4/04 Software Specifications
Design Specifications - How much detail is enough?
Functional Specification Tutorial (15 pages)
IEEE Software Requirements Specification Template

Team working time

12 M 4/09 Project team working time
 
  W 4/11 Open Source vs. Free Software (pdf)
The Open Source Definition
The Free Software Definition

Richard Stallman, What is Free Software? (2:18 YouTube)
Eric Raymond, Communism and Free Software (3:21 YouTube)
Free & Open Source Alternatives (3:20 YouTube)

Assignment: Read the article "Why Open Source misses the point of Free Software" by Richard Stallman, prepare a one page, typed review of the article, and email it to me by the start of class on Monday, April 16, 2018. In addition to summarizing the article, provide your opinion on Stallman's conclusion, and be sure to justify your opinion. For fun (and background information), check out the Wikipedia entry for Richard Stallman, and check out the Wikipedia page for Eric Raymond and personal site. [worth 20 points]

If there is time remaining, teams can work on projects.

13 M 4/16 Test-Driven Development Challenge (in-class): After viewing these slides, follow the steps in the lab assignment to learn to use JUnit and Eclipse to design test cases. [worth 20 points]

If there is time remaining, teams can work on projects

  W 4/18 Project Management (pdf)
Code Inspection, Code Review (pdf)

Handouts (paper and/or electronic)

Determine presentation order, based on team list

14 M 4/23 Project team working time

Prof. Way is available for individual and team consulting during this week. Email ahead to schedule a time to meet in person or via Skype or Zoom.

  W 4/25 Project team working time

Prof. Way is available for individual and team consulting during this week. Email ahead to schedule a time to meet in person or via Skype or Zoom.

15 M 4/30 Project Presentations

Each team presents the results of their semester-long project design efforts. Approximately 10 minutes per team. (Final team evaluation)

  • 3:00  Team D & M
  • 3:10  ¯\_(ツ)_/¯
  • 3:20  CSC 4480
  • 3:30  The Placeholders
  • 3:40  The Best Team
  • 3:50  Me, Myself and I
  • 4:00  J3
  W 5/02 "Monday" - Project Presentations continuation

eCats (first 10 minutes)

Each team presents the results of their semester-long project design efforts. Approximately 10 minutes per team.

  • 3:00  TBD
  • 3:10  Team Allma
  • 3:20  Team Meron
  • 3:30  Clickers
  • 3:40  TBA
  • 3:50  The Secret

Dr. Way's Software Engineering Tips

Time permitting: Dr. Way will attempt to escape from a straitjacket in under 5 minutes

  F 5/04 READING DAY
16
Th 5/10
FINAL EXAM (Villanova schedule)
Thursday, May 10, 2018, 8:30am - 11:00am

Note: As a final, culminating examination of your learning this semester, your individual contributions to the final project (written specification, post-mortem, team member feedback, prototype implementation, overall participation and contribution) will be used to assess your cumulative learning. This is in lieu of a written final examination.

Last updated: 05/02/2018