|
|
Lecture Schedule
(tentative,
read Important Notes below)
W |
Lec |
Topics
Agile
Development Perspective |
Lab |
Topics
and
Projects Info |
Supplementary Notes and
Plan-and-Document (P&D) Perspective |
1
29/9 |
Lec 0
Lec
1
|
Course
Overview
Intro to SaaS and
Agile Development - Basic Concepts
What is Software
Engineering?, Software as a Service, Service Oriented Architecture, Cloud
Computing, Beautiful vs. Legacy Code, Software
Quality Assurance: Testing, Productivity: Conciseness,
Synthesis, Reuse, and Tools. |
|
Introduction to
Lab and Senior Design Project
Installing VMs,
and Introduction to Courseware and development tools
|
P&D:
|
2
6/10 |
|
National
Holiday - Kurban Bayramı |
|
|
|
3
13/10 |
Lec 1 |
Intro to SaaS and
Agile Development - Processes
Software Development Processes: CMMI, Plan-and-Document
Processes: Waterfall, Spiral, RUP. Agile Development.
|
Lec
3 |
SaaS
Framework: Intro to Ruby
Overview and
Introduction to Ruby, Everything is an Object, Every
Operation is a Method Call
Form Teams |
|
4
20/10 |
Lec
10 |
Project Management: Scrum and Pairs
It Takes a Team: Size and
Scrum, Pair Programming, Agile Design and Code Reviews?
This part will be given later:
Version Control for the 2-Pizza Team: Merge Conflicts,
Effective Branching, Fixing Bugs: The Five R’s. |
|
SaaS
Framework: Intro to Ruby
Ruby OOP, All Programming is Metaprogramming, Blocks, Iterators, Functional Idioms,
Mixins and Duck Typing
START Projects:
Pick a REAL project from a REAL customer |
|
5
27/10 |
Lec
2
Supp |
The Architecture of SaaS
Applications
The Web as a
Client-Server System: TCP/IP Intro, Representation: HTML and
CSS, 3-Tier (Shared-Nothing) Architecture and Scaling,
Model-View-Controller Architecture, Active Record for
Models, Controllers, Routes, and RESTfulness, Templete Views |
Lec
4 |
SaaS
Framework: Intro to Rails
Rails Basics: From Zero to
CRUD, Databases and Migrations, Models: Finding, Updating,
Deleting, Models: Active Record Basics, Controllers and
Views, Debugging: When Things Go Wrong, Forms, Redirection
and the Flash, Finishing CRUD |
|
6
3/11 |
|
Saas Framework: Review of Ruby and Rails
|
Lec
5 |
SaaS
Framework: Advanced Rails
DRYing Out MVC, Single Sign-On
and Third-Party Authentication, Associations and
Foreign Keys, Through-Associations RESTful Routes for
Associations, DRYing Out Queries with Reusable Scopes
Iter 0-1: Meet
w/customer, User stories on Tracker |
|
7
10/11 |
Lec
7 |
Requirements: BDD and User Stories
Introduction to
Behavior-Driven Design and User Stories, SMART User Stories,
Points, Velocity, and Pivotal Tracker, Agile Cost
Estimation, ....
Introducing Cucumber and Capybara, Running
Cucumber and Capybara, Lo-Fi UI Sketches and Storyboards, Enhancing Rotten Potatoes Again, Explicit vs. Implicit and
Imperative vs. Declarative Scenarios, Plan-And-Document
Perspective |
|
|
P&D:
|
8
17/11 |
|
Midterm Exam |
|
Iter 0-2: Lo-fi
mockup & storyboard & Initial stories on Tracker |
|
9
24/11 |
Lec
8 |
Testing: Test-Driven
Development
Intro to Rspec and Unit Tests, FIRST, TDD,
and Red-Green-Refactor, Seams and Doubles, Expectations,
Mocks, Stubs, Setup |
Lec 6 |
SaaS Client
Framework: JavaScript
Iter 1 (deploy + new stories) |
|
10
1/12 |
|
Testing: Test-Driven
Development
Fixtures and Factories, TDD for the Model
and Stubbing the Internet, Coverage, Unit vs. Integration
Tests, Other Testing Concepts; Testing vs. Debugging,
Plan-And-Document Perspective on Software Testing |
|
Iteration 1
Demonstration and Evaluation
|
|
11
8/12 |
Lec 9 |
Maintenance: Legacy,
Refactoring, and Agile
What Makes Code
“Legacy” and How Can Agile Help? Exploring a Legacy
Codebase, Establishing Ground Truth With Characterization
Tests, Metrics, Code Smells, and SOFA, Method-Level
Refactoring, The Plan-And-Document
Perspective, Reflections, Fallacies, Pitfalls |
|
Iter
2 (deploy + new stories) |
|
12
15/12 |
Lec
11 |
Design
Patterns for SaaS Classes
Patterns, Antipatterns, and
SOLID Class Architecture, Just Enough UML, Single
Responsibility Principle, Open/Closed Principle, Liskov
Substitution Principle, Dependency Injection Principle,
Demeter Principle, The
Plan-And-Document Perspective on Design Patterns |
|
Iteration 2
Demonstration and Evaluation
|
|
13
22/12 |
Lec 12 |
Performance,
Releases, Reliability, and Security
From Development to
Deployment, Quantifying Availability and Responsiveness,
Continuous Integration and Continuous Deployment, Upgrades
and Feature Flags, Monitoring |
|
Iter
3 (deploy + new stories) |
|
14
29/12 |
|
Performance,
Releases, Reliability, and Security
Caching: Improving
Rendering Time and Database Performance, Avoiding Abusive
Queries, Security: Defending Customer Data in Your App,
Fallacies and Pitfalls and Concluding Remarks |
|
Iteration 3
Final Demonstration and Evaluation
|
|
Important Notes
|
This is
the
syllabus (Course Information Form) given to students at
the beginning of the semester. |
|
The lecture schedules
given in the syllabus are tentative and updated
here weekly. Look at
this table once a week. |
|
Almost
all the slides used during the semester will be available here.
|
|
You can download the previous year’s
lecture slides before the class from
this address. |
|
You can download the new lecture slides
presented in the class after the lecture from this page. |
|
I may skip several slides during the lecture (The
slides given would be generally too much!). They are included in the
course material for completeness and to provide a good reference for your
future professional engineering life. |
|
To
follow the lecture and understand the materials presented in class
better, get the lecture slides and take the print-outs of them, and
please bring them
to class. |
|
Purposes for bringing slides to class: 1) To allow better concentration in lecture by reducing
note-taking pressure and to provide a study-aid before and after lecture. |
|
2) You can
take your notes on these slides and be active
during the lecture. You digest material much better when you actively
take notes from step-to-step demonstrations given by your
instructor than by just sitting and watching slides. |
|
Disclaimers: (a) I
may not follow these
slides exactly in class (b) I may also use
the whiteboard and give some extra notes which will not be posted here
as needed in class (c) Students are responsible for what I say
and teach in class. (d) Reading these slides is
not a substitute for attending lecture. |
|