02160 Agil objektorienteret softwareudvikling

2019/2020

Kursusinformation
Agile Object-oriented Software Development
Engelsk
10
Bachelor
Kurset udbydes som enkeltfag
F5 (ons 8-17)
Campus Lyngby
Lectures and exercise classes. The exercise classes involve solving smaller exercises as well as the development of a software system in teams of 4-6 students. The project work is documented by running software, tests, and reports that are included in the overall assessment of the course.
13-uger
F5A
Mundtlig eksamen og bedømmelse af rapport(er)
The evaluation is based on an overall assessment of the completed assignments and reports and an oral group presentations of the running software including tests with individual questions.
7-trins skala , intern bedømmelse
02161.02101.02312.02314
02631 , Basic programming skills
Andrea Burattin , andbur@dtu.dk
Kati Kuusinen , kakuu@dtu.dk
01 Institut for Matematik og Computer Science
På instituttet
Overordnede kursusmål
The aim of the course is to convey the basic concepts of object-oriented programming and to enable the student to apply these concepts using common object-oriented programming languages. The student will be able to read program code and analyze the behavior of the program. In addition, the student will be able to apply contemporary agile software development practices in the context of smaller software development projects both extending existing software and developing new functionality. A focus will be put on quality assurance like automated testing and continuous integration. Moreover the student will learn to work in teams, present the work, and document it. The student will also learn to work with contemporary software development tools (e.g., IDEs, etc.)
Læringsmål
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
  • Explain the principles of object-oriented programming languages
  • Develop software using the object-oriented principles of the introduced programming language to handle encapsulation, abstraction, inheritance, and polymorphism
  • Design software using the concepts of user stories and behavior driven development
  • Apply the concepts of automated testing, refactoring, and reuse of existing code and libraries
  • Explain the significance of systematic debugging and be able to apply it
  • Apply the concepts of version control and continuous integration
  • Recognize and be able to apply a few, simple design patterns
  • Explain the advantages of a selected software architecture
  • Complete a multi-week software project in a team applying pair programming and covering user stories, running software, tests, and documentation
  • Concisely present project iteration results (i.e., running software and other artifacts)
  • Write a clear and well-structured report documenting all the core aspects of a software development project
  • Manage the development of a software product in an agile team
Kursusindhold
The course introduces a commonly used object-oriented programming language, and applies agile development methods covering the following topics:

The topics presented are:
▪ Types, primitive and referenced
▪ Basic programming constructs (loops, branching statements, etc.)
▪ Values, operators and expressions
▪ Classes, objects, fields and methods
▪ Use of libraries
▪ Design of classes, hierarchies, inheritance
▪ Abstraction (abstract classes, interfaces)
▪ Error/exception handling
▪ Simple design patterns and basic software architectures
▪ Pair programming
▪ User stories, behavior driven development, unit testing,
▪ Debugging, refactoring
▪ Version control, continuous integration
▪ Use of development tools (IDE, etc)
Sidst opdateret
24. juni, 2019