Development of Software Applications

A tantárgy neve magyarul / Name of the subject in Hungarian: Alkalmazásfejlesztés

Last updated: 2021. július 15.

Budapest University of Technology and Economics
Faculty of Electrical Engineering and Informatics
Development of software applications
Course ID Semester Assessment Credit Tantárgyfélév
VIAUMA09 2 2/1/0/v 4  
3. Course coordinator and department Dr. Csorba Kristóf,
Web page of the course https://www.aut.bme.hu/Course/VIAUMA09
4. Instructors Dr. Kristóf Csorba, associate professor, Department of Automation and Applied Informatics
5. Required knowledge
  • Basic knowledge of the C# language, .NET features (as covered by Embedded Operating Systems and Client Applications), the basics object oriented software development and their application in practice.
  • Basic usage of the Linux bash shell and the Windows Command Prompt (cmd.exe).
6. Pre-requisites
Kötelező:
NEM
(TárgyEredmény( "BMEVIAUMB07", "jegy" , _ ) >= 2
VAGY
TárgyEredmény("BMEVIAUMB07", "FELVETEL", AktualisFelev()) > 0)

A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

Ajánlott:
Embedded Operating Systems and Client Applications (VIAUAC07)
7. Objectives, learning outcomes and obtained knowledge The goal of the course is to introduce those software development tools and practices which are essential for larger scale development projects. This includes the higher level class libraries, automatic testing and continuous integration tools, version control and documentation tools. These skills are applied via the C# language, .NET Core and the Universal Windows Platform (UWP).
8. Synopsis

Introduction, version control

 

  • Introduction, discussion of the requirements, short demos about the material of the course. Localizing the material in the area of electrical engineering.

  • Version control: primarily GIT

C#, .NET and UWP basics

  • Serialization, Containers, IEnumerable, Generics, Linq

  • Network communication (http)

  • Universal Windows Platform (UWP)

  • MVVM architecture

  • Data binding

  • Multi-threading

Testing and documentation

  • Unit testing in C#

Software design principles

  • Object oriented design, KISS approach (Keep It Simple and Stupid).

  • SOLID principles

  • Design patterns: their goals, how to recognize them and some implementation options in C++. Anti patterns.

(Practical activities are embedded into the lectures, they are not separated into dedicated practical classes.) 

9. Method of instruction

Lecture, practice

Lexical material is taught in the first part of the term. After that, the remaining contact hours are used for consultation and the discussion of the optional code reviews of the homeworks. 

10. Assessment

During the semester:

  • Practicing the material is deepened by a homework which has to be submitted during the 14th week with timing specified during the semester.
  • Conditions of the signature: submission of the homework on time with sufficiently high quality.

In the exam period: written exam.

Conditions of the grading of the semester: signature and successful exam

The grading takes the homework with 50% and the exam with 50% weight into account.

The homework may be extended with bonus tasks. Solving these with high quality may result in bonus points for the exam or may offer an automatic grade.

 

11. Recaps The homework has to be submitted by the end of the 14th week with the previously specified timing. Extension is possible during the extension week.
12. Consultations On demand and synchronized with the lecturer.
13. References, textbooks and resources

Materials published via the website of the course.

  • Scott Chacon: Pro Git, Apress, 2009, http://git-scm.com/book
  • Robert C. Martin: Clean Code: A Handbook of Agile Software Craftsmanship, Prentice Hall, 2008
  • Steve McConnell: Code Complete: A Practical Handbook of Software Construction, Second Edition, Microsoft Press, 2004
  • Buschmann et al.: A System of Patterns, Willey, 1996
14. Required learning hours and assignment
Contact hours 42
Materials assigned for individual study at home16
Preparation for the exam26
Preparation for homework
36
Total
 120
15. Syllabus prepared by Dr. Kristóf Csorba, Department of Automation and Applied Informatics