EE 461L - Schedule of Topics - Spring 2020


This schedule is subject to change during the semester. Due dates may change.


Week
Lecture
Lab/Tutorial
Assignments
#0: 1/20
----------
Readings:
Syllabus
Pair Programming Rules
Visual Git Guide

Watch:
Growth Mindset: Carol Dweck
Why Software Engineering?

Resources:
git - the simple guide
Hello World for Github
TwistedEquations on Branching & Merging
Pro Git's Branching & Merging
Pro Git's Basic Undoing Things
Intro to Git for Web Designers
Git Magic, chapters 1 and 2




Class Introduction                      

Team Project:
Requirements
Teamwork
Peer evaluation

Version Control and Collaborative Software Development






None

Get a GitHub Student Pack with unlimited private repos

  • Tutorial submissions are due one hour before the next week's lab meeting begins unless otherwise noted.
  • Late tutorials are not accepted.
  • If you do not attend lab and work on the assigned tutorial during lab, you will receive a 0 on the tutorial.
  •  Checkouts must be done during lab the week during which you are working on the tutorial, or the following week if you are unable to complete the tutorial during your three hour lab period during the week it was assigned.
  Paper 1 assignment is due on Friday at 10 pm.
Important: Always launch Perusall from the Canvas assignment.

Prepare for quiz over: this week's reading assignments, syllabus and code of conduct

Install git on your machine
#1: 1/27
--------
Readings:
Google App Engine
Google: Good or Bad? by Don Norman
Usability 101 by Jakob Nielsen
An Investigation of the Therac-25 Accidents

Watch:
Github Projects

Exercises:
CSS Syntax Exercises 1-4
CSS Border Exercises 1-4
CSS Margin Exercises 1-3
CSS Box Model Exercises 1-4
Basic Web Programming

1/30: In-class voter registration

Examples:
Span
Add Class Name
Create/Append Element
Mouse Over Event
getElementsBy Class/Tag Name
alert box
confirm box
prompt box
Style Display
More Style Display
Form/Button
Set href


Git

Blog Post 2 due Friday at 11:59 pm
Paper 2 due Sunday at 10 pm


#2: 2/3
---------
Readings:
Uber's Self-Driving Crash
Maven Tutorial
Boeing Software: 737 Max

Resources:
GNU make Manual
Mrbook's make tutorial
Jenkov Ant tutorial
Ant Manual
Example Makefile

Exercises:
JS Function Exercises 1-4
JS Events Exercises 1-3
JS Conditions 1-2
HTML DOM Exercises 1-6
Build Management



Engineering EXPO
Thursday 2/6 10 am - 4 pm
DHTML & Google App Engine



Paper 3 due Sunday at 11:59 pm

Blog App Project assigned


#3: 2/10
----------
Readings:
User Interface Design for Programmers by Joel Spolsky
Hawaii's false ballistic missile alert was a failure in UX design

Do the list exercises:
https://www.w3schools.com/python/exercise.asp?filename=exercise_lists1

Python

CNS Career Fair
Thursday 2/13 1-5 pm




Build Management



#4: 2/17
----------
Readings:
The Joel Test by Joel Spolsky
The Java Tutorials: OO Concepts

Resource:
An Investigation of the Therac-25 Accidents


SDLC, Agile, and
UML



Python & MongoDB

Blog App Project due Monday
#5: 2/24
----------

 
Resources:
JUnit on Mac
JUnit tutorial

Testing
Customer-Developer Meetings



UML




#6: 3/2
----------
Readings:
Parnas' paper on modularization criteria
Read The Single Responsibility Principle paper (link included in first table)



Information Hiding
Exam Review
Customer-Developer Meetings

Assessment review materials:
Midterm review
Review Solutions
Testing

Exam Review: Q&A
Phase I due Friday at 11:59 pm
#7: 3/9
-----------
Readings:
The Liskov Substitution Principle
Why Extends is Evil


Information Hiding

Midterm Exam
Project Work


3/16
SPRING BREAK


#8: 3/23
------------
Read:
The Open/Closed Principle paper
Design Patterns - Coming Full Circle


Design Patterns

3/26:
Di Hunyh, Blackbaud

Project Work
Phase II due Friday at 11:59 pm
#9: 3/30
-----------
Read:
The Dependency Inversion Principle

Pattern Exercise (in class)

Resources:
Factory code
Singleton code
Command code

Design Patterns 2
Customer-Developer Meetings

Apr 2: Ethics in SWE

Cockrell Cares: March 30-April 10
Observer Design Pattern


#10: 4/6
------------
Read:
Code Smells: Bloaters
(Read the page for each smell - you don't have to read about the refactorings yet.)


Design Patterns 3: Factories, Singleton and Command

Observer, continued


#11: 4/13
-------------
Read:
Code Smells: Divergent Change and Shotgun Surgery
Guerilla Interviewing


Resources:
Enumeration interface
Iterator interface

Design Patterns 3: Adapter and Facade

Invited speaker:
Kurtis White, Indeed


Command and Singleton Patterns
Phase III due Friday at 11:59 pm


#12: 4/20
-------------
Read:
Refactoring Example
Resume Read

Resources:
Catalog of Refactorings


Refactoring
 
Refac1.java
Refactoring


#13: 4/27
-------------
Read:
The Coming Software Apocalypse

Resources:
Patterns - regex


Refactoring

Project Presentations





Finish Refactoring

Phase IV due Monday at 11:59 pm


#14: 5/4
Project Presentations
Exam 2 review

Exam 2 will be on Thursday, 5/7, 5-7 pm

 


Many thanks to Professor Christine Julien, Professor Miryung Kim, and Professor Glenn Downing for allowing me to access and modify their course materials. This course was originally designed and developed by Professor Miryung Kim - many of the materials are revised versions of her materials.