In this course we will follow the Agile approach to software engineering. The course will use a SaaS project oriented approach in order to teach key methodologies such as Behavior and Test Driven Development, Pair Programming, Design Patterns, Tools for Automation, Continuous Integration and others. Among technologies which will be learned are: git, github, linux, ruby, rails and various gems.
It is recommended to purchase the ebook version (10$).
6/9/2016
Topics
Introduction
Administration
Plan & Document
Registration to Github
Registration to Cloud9
Exercise
Linux terminal tutorials
Recommended Reading
Book 1.1-1.2
Slides
9/9/2016
Topics
Agile
Productivity
Software as a service
Service Oriented Architecture
Git
Exercise
Git tutorials
Recommended Reading
Book 1.3,1.4,1.9
Slides
13/9/2016
Topics
Cloud Computing
Introduction to Ruby
Misc
Exercise
Finish the add3 method from class
Recommended Reading
Book 1.6,3.1-3.3
Slides
16/9/2016
Topics
Introduction to Ruby
Regular Expressions
Exercise
Ex2 invitation - parts 1 and 2
Recommended Reading
Book 3.1-3.4,3.6-3.8
Slides
20/9/2016
Topics
OOP in Ruby
Functional Programming
Higher-order Functions
Duck Typing
Mixins
Exercise
Ex2 invitation - part 3
Recommended Reading
Book 3.1-3.4,3.6-3.8
Slides
23/9/2016
Topics
Pair Programming
Class Competition
Exercise
Recommended Training
Try to finish the Ruby Koans
Recommended Reading
Book 10.2-10.3
Slides
27/9/2016
30/9/2016
4/10/2016
Topics
Routes and REST
Template Views
Intro to BDD
Exercise
Finish Ex3
Recommended Reading
Book 2.7-2.8, 7.1
Further Reading
REST - Richardson Maturity Model
Slides
7/10/2016
Topics
Intro to Rails
Debugging SaaS
Databases and migrations
Models and Active Records
Exercise
Recommended Reading
Book 4.1-4.3,4.5
Slides
11/10/2016
Topics
Database Seeding
Views and HAML
Controllers
Exercise
Recommended Reading
Book 4.4
Slides
14/10/2016
Topics
Forms
Sessions
Exercise
Ex4
Recommended Reading
Book 4.6-4.10
Further Reading
Slides
18/10/2016
Midterm Exam
Book chapters 1 - 4
Slides 1 - 11
Exercises 1 - 4
21/10/2016
Topics
Teams
Formation of the two teams
Recommended Reading
Book 10.1
Further Reading
Slides
25/10/2016
Topics
Points, Velocity, and Pivotal Tracker
SMART User Stories
Lo-Fi User Interface Sketches and Storyboards
Agile Cost Estimation
Git and Teams
Recommended Reading
Book 7.2-7.5, 10.4
Slides
28/10/2016
Topics
Cucumber and Capybara
Git branches
Recommended Reading
Book 7.6-7.7, 10.5
Slides
4/11/2016
Topics
Cucumber and Capybara - Repetition
Scrum and Agile - Presentation by Natalie and Henry
Recommended Reading
8/11/2016
11/11/2016
Topics
TDD Workout
Seams
Recommended Reading
Book 8.1-8.3
Slides
15/11/2016
Topics
Seams Repetition
18/11/2016
Topics
Expectations
Recommended Reading
Book 8.4-8.5
Slides
22/11/2016
Topics
Mocks and Stubs
Fixtures and Factories
Recommended Reading
Book 8.4-8.5
Slides
25/11/2016
Topics
Testing the Model
Recommended Reading
Book 8.6
Slides
29/11/2016
Topics
Watching an interview with Jesse Toth
2/12/2016
Topics
Code Coverage
Code Metrics
ActiveRecord Associations
Recommended Reading
Book 8.7, 9
Additional Reading
BerkeleyX's CS169.2x online lectures - Week 1 about Associations
Book 5.3-5.5
Slides
6/12/2016
Topics
Design Patterns
Recommended Reading
Book 11
Slides
9/12/2016
Topics
Reading Days
13/12/2016
Topics
Oral examinations about the projects
Students studying at The American University of Paris are expected to attend ALL scheduled classes, and in case of absence, should contact their professors to explain the situation. It is the student’s responsibility to be aware of any specific attendance policy that a faculty member might have set in the course syllabus. The French Department, for example, has its own attendance policy, and students are responsible for compliance. Academic Affairs will excuse an absence for students’ participation in study trips related to their courses.
Attendance at all exams is mandatory.
IN ALL CASES OF MISSED COURSE MEETINGS, THE RESPONSIBILITY FOR COMMUNICATION WITH THE PROFESSOR, AND FOR ARRANGING TO MAKE UP MISSED WORK, RESTS SOLELY WITH THE STUDENT.
Whether an absence is excused or not is ALWAYS up to the discretion of the professor or the department. Unexcused absences can result in a low or failing participation grade. In the case of excessive absences, it is up to the professor or the department to decide if the student will receive an “F” for the course. An instructor may recommend that a student withdraw, if absences have made it impossible to continue in the course at a satisfactory level. Students must be mindful of this policy when making their travel arrangements, and especially during the Drop/Add and Exam Periods.
Students who successfully complete this course should be able to apply modern engineering skills to software development. In particular, the students will master the Agile approach and will be able to use that in order to quickly engineer software as a service products.