AUP-SE / syllabus

0 stars 0 forks source link

The American University of Paris

Syllabus Fall 2016

Software Engineering

Course Description

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.

Text Book

It is recommended to purchase the ebook version (10$).

Errata

News

General Recommended Reading

Course Topics (according to available time)

Course Outline and Material

  1. 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

    • class 1

  2. 9/9/2016

  3. 13/9/2016

  4. 16/9/2016

  5. 20/9/2016

    • Topics

    • OOP in Ruby

    • Functional Programming

    • Higher-order Functions

    • Duck Typing

    • Mixins

    • Exercise

    • Ex2 invitation - part 3

      • Deadline 22/9/2016
    • Recommended Reading

    • Book 3.1-3.4,3.6-3.8

    • Slides

    • class 5

  6. 23/9/2016

    • Topics

    • Pair Programming

    • Class Competition

    • Exercise

    • Recommended Training

    • Try to finish the Ruby Koans

      • Each team member has access also to his team repository
    • Recommended Reading

    • Book 10.2-10.3

    • Slides

    • class 6

  7. 27/9/2016

    • Topics

    • Client - Server Architecture

    • TCP/IP, HTTP, URI and Cookies

    • HTML and CSS

    • The Server Architecture

    • Exercise

    • Ex3-0

    • Recommended Reading

    • Book 2.1-2.4

    • Slides

    • class 7

  8. 30/9/2016

    • Topics

    • MVC

    • Active Records

    • Intro to TDD

    • Exercise

    • Ex3 (part 1)

    • Recommended Reading

    • Book 2.5-2.6, 8.1-8.2

    • Slides

    • class 8

  9. 4/10/2016

  10. 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

    • class 10

  11. 11/10/2016

    • Topics

    • Database Seeding

    • Views and HAML

    • Controllers

    • Exercise

    • Recommended Reading

    • Book 4.4

    • Slides

    • class 11

  12. 14/10/2016

  13. 18/10/2016

    • Midterm Exam

    • Book chapters 1 - 4

    • Slides 1 - 11

    • Exercises 1 - 4

  14. 21/10/2016

    • Topics

    • Teams

    • Formation of the two teams

    • Recommended Reading

    • Book 10.1

    • Further Reading

    • Scrum Guide

    • Slides

    • class 13

  15. 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

    • class 14

  16. 28/10/2016

    • Topics

    • Cucumber and Capybara

    • Git branches

    • Recommended Reading

    • Book 7.6-7.7, 10.5

    • Slides

    • class 15

  17. 4/11/2016

    • Topics

    • Cucumber and Capybara - Repetition

    • Scrum and Agile - Presentation by Natalie and Henry

    • Recommended Reading

    • A Scrum Guide

  18. 8/11/2016

    • Topics
    • Cucumber and Capybara - Demonstration
  19. 11/11/2016

    • Topics

    • TDD Workout

    • Seams

    • Recommended Reading

    • Book 8.1-8.3

    • Slides

    • class 16

  20. 15/11/2016

    • Topics

    • Seams Repetition

  21. 18/11/2016

    • Topics

    • Expectations

    • Recommended Reading

    • Book 8.4-8.5

    • Slides

    • class 17

  22. 22/11/2016

    • Topics

    • Mocks and Stubs

    • Fixtures and Factories

    • Recommended Reading

    • Book 8.4-8.5

    • Slides

    • class 18

  23. 25/11/2016

    • Topics

    • Testing the Model

    • Recommended Reading

    • Book 8.6

    • Slides

    • class 19

  24. 29/11/2016

    • Topics

    • Watching an interview with Jesse Toth

      • Working in small and big startup companies
      • Job interviews
      • Salary considerations
      • Building your programming portfolio
      • Pair progamming
      • BDD and TDD
  25. 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

    • class 20

  26. 6/12/2016

    • Topics

    • Design Patterns

    • Recommended Reading

    • Book 11

    • Slides

    • class 21

  27. 9/12/2016

    • Topics

    • Reading Days

  28. 13/12/2016

    • Topics

    • Oral examinations about the projects

Attendance Policy

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.

Grading Policy

Learning Outcome

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.