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