CS-305 / 4 crédits

Enseignant: Candea George

Langue: Anglais


Summary

This course teaches the basics of modern software development: designing software, working in a team, writing good code, shipping software, and evolving software. It emphasizes building software that meets high standards of quality, reliability, security, and manageability.

Content

Keywords

design patterns, fault tolerance, software testing, code analysis, software verification, security, performance, usability, refactoring, agile development methods, version control systems, continuous integration

Learning Prerequisites

Required courses

  • CS-108 Practice of Object-Oriented Programming
  • CS-206 Parallelism and Concurrency
  • CS-207 System-oriented Programming
  • COM-208 Computer Networks
  • CS-208/209 Computer Architecture
  • CS-210 Functional Programming

Students who do not master the material taught in the prerequisite courses prior to starting CS-305 typically do not manage to pass this course.

Important concepts to start the course

Students are required to have good programming skills in an object-oriented language (e.g., Java).

Learning Outcomes

By the end of the course, the student must be able to:

  • Design software that is reliable, secure, user-friendly, and performs well
  • Implement sophisticated designs and algorithms
  • Specify requirements for software systems
  • Develop code that is maintainable
  • Organize a team to execute a medium-sized software project
  • Assess / Evaluate design and implementation alternatives

Teaching methods

  • Combination of online and in-class lectures
  • Online textbook
  • Homework exercises

Expected student activities

  • Attend and actively participate in lectures
  • Read and understand assigned materials
  • Complete homework exercises independently

Assessment methods

  • 20% based on online quizzes and homeworks (during the semester)
  • 80% based on a final exam (during the exam session)

 

Supervision

Office hours Yes
Assistants Yes
Forum Yes

Resources

Virtual desktop infrastructure (VDI)

No

Bibliography

Please see the course website for the latest information and up-to-date bibliography

Ressources en bibliothèque

    Websites

    Dans les plans d'études

    • Semestre: Automne
    • Forme de l'examen: Pendant le semestre (session d'hiver)
    • Matière examinée: Software engineering
    • Cours: 2 Heure(s) hebdo x 14 semaines
    • Exercices: 1 Heure(s) hebdo x 14 semaines
    • Projet: 1 Heure(s) hebdo x 14 semaines
    • Semestre: Automne
    • Forme de l'examen: Pendant le semestre (session d'hiver)
    • Matière examinée: Software engineering
    • Cours: 2 Heure(s) hebdo x 14 semaines
    • Exercices: 1 Heure(s) hebdo x 14 semaines
    • Projet: 1 Heure(s) hebdo x 14 semaines
    • Semestre: Automne
    • Forme de l'examen: Pendant le semestre (session d'hiver)
    • Matière examinée: Software engineering
    • Cours: 2 Heure(s) hebdo x 14 semaines
    • Exercices: 1 Heure(s) hebdo x 14 semaines
    • Projet: 1 Heure(s) hebdo x 14 semaines
    • Semestre: Automne
    • Forme de l'examen: Pendant le semestre (session d'hiver)
    • Matière examinée: Software engineering
    • Cours: 2 Heure(s) hebdo x 14 semaines
    • Exercices: 1 Heure(s) hebdo x 14 semaines
    • Projet: 1 Heure(s) hebdo x 14 semaines
    • Semestre: Automne
    • Forme de l'examen: Pendant le semestre (session d'hiver)
    • Matière examinée: Software engineering
    • Cours: 2 Heure(s) hebdo x 14 semaines
    • Exercices: 1 Heure(s) hebdo x 14 semaines
    • Projet: 1 Heure(s) hebdo x 14 semaines
    • Semestre: Automne
    • Forme de l'examen: Pendant le semestre (session d'hiver)
    • Matière examinée: Software engineering
    • Cours: 2 Heure(s) hebdo x 14 semaines
    • Exercices: 1 Heure(s) hebdo x 14 semaines
    • Projet: 1 Heure(s) hebdo x 14 semaines

    Semaine de référence

     LuMaMeJeVe
    8-9     
    9-10    CE3
    10-11    
    11-12    CE3
    12-13    BC01
    BC04
    13-14     
    14-15     
    15-16     
    16-17     
    17-18     
    18-19     
    19-20     
    20-21     
    21-22     

    Vendredi, 9h - 11h: Cours CE3

    Vendredi, 11h - 12h: Exercice, TP CE3

    Vendredi, 12h - 13h: Projet, autre BC01
    BC04