02160 Agil objektorienteret softwareudvikling

2018/2019

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-5 students. The project work is documented by running software, tests, and reports that are included in the overall assessment of the course.
13-uger
Aftales med underviser, Aftales med underviser
Bedømmelse af opgave(r)/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
Barbara Weber , bweb@dtu.dk
Andrea Burattin , andbur@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:
  • Acquire knowledge of an object-oriented programming language
  • Understand and apply the object-oriented principles of the introduced programming language to handle encapsulation, abstraction, inheritance, and polymorphism
  • Understand and apply the concepts of user stories and behavior driven development
  • Understand and apply the concepts of automated testing, refactoring, and reuse of existing code and libraries
  • Understand and apply the concepts of automated testing, refactoring, and reuse of existing code and libraries
  • Understand and apply the concepts of version control and continuous integration
  • Recognize and be able to apply a few, simple design patterns
  • Understand 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
  • Be able to work in a group
  • Be able to concisely present project iteration results (i.e., running software and other artifacts)
  • Be able to write a clear and well-structured report documenting all the core aspects of a software development project
Kursusindhold
The course introduces a commonly used object-oriented programming language, covers web-based front-end technologies, and applies agile development methods covering the following topics:
- 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
04. maj, 2018