Course: Fundamentals of Software Engineering

« Back
Course title Fundamentals of Software Engineering
Course code KMI/KOOP
Organizational form of instruction Lecture
Level of course Bachelor
Year of study not specified
Semester Summer
Number of ECTS credits 6
Language of instruction Czech
Status of course Compulsory
Form of instruction unspecified
Work placements unspecified
Recommended optional programme components None
Lecturer(s)
  • Remeš Radim, Mgr.
  • Milota Josef, RNDr.
  • Beránek Ladislav, doc. Ing. CSc.
Course content
Lectures: 1 - Object-oriented concepts 2 - Introducing classes, structs and namespaces: Classes and Types, Inheritance, Abstract 3 - Classes and Interfaces, Nested Classes, Structs, Namespaces 4 - Class declaration: Attributes, Class Modifiers, Class Base, Interface Declarations 5 - Introducing Methods: Attributes, Method Modifiers, Formal Parameters, Parameter Passing 6 - The params modifier, Return Type, Method Overloading 7 - Polymorphism: Member Overriding, Member Hiding 8 - Operators: overloading operators 9 - Constants, Fields, Properties and Indexers 10 - Delegates and Events 11 - Exceptions 12 - Attributes, reflection Seminars: 1 - Object-oriented concepts 2 - Introducing classes, structs and namespaces: Classes and Types, Inheritance, Abstract 3 - Classes and Interfaces, Nested Classes, Structs, Namespaces 4 - Class declaration: Attributes, Class Modifiers, Class Base, Interface Declarations 5 - Introducing Methods: Attributes, Method Modifiers, Formal Parameters, Parameter Passing 6 - The params modifier, Return Type, Method Overloading 7 - Polymorphism: Member Overriding, Member Hiding 8 - Operators: overloading operators 9 - Constants, Fields, Properties and Indexers 10 - Delegates and Events 11 - Exceptions 12 - Attributes, reflection

Learning activities and teaching methods
Monologic (reading, lecture, briefing), Dialogic (discussion, interview, brainstorming)
  • Preparation for classes - 44 hours per semester
  • Preparation for credit - 30 hours per semester
  • Preparation for exam - 40 hours per semester
  • Class attendance - 16 hours per semester
  • Semestral paper - 38 hours per semester
Learning outcomes
The main objective is to gain basic experience with object-oriented programming language. Philosophy of OOP. Classes, objects, instances of classes and other types. Class methods. Inheritance, multiple inheritance. Private attributes and methods, name spaces. Destructors and memory management. Modeling of classes using UML.
Students understand the basic principles of object-oriented programming, they are able to create basic class models in developer studio and to complete basic object-oriented programs.
Prerequisites
The course has no prerequisities.

Assessment methods and criteria
Analysis of student's work activities (technical works), Combined exam

Credit Requirements: Programming partial short tasks, creating a project application. Global success rate minimally 65%. Examination Requirements: Students will demonstrate complex knowledge of programming in programming language.
Recommended literature
  • Deitel, H., Deitel, P. Visual C# How to Program, 6th Edition. Hoboken, New Jersey, USA: Pearson Education, 2016.
  • Jamro, M. C# Data Structures and Algorithms. Birmingham, UK: Packt., 2018.
  • Michaelis, M. Essential C# 7.0, 6th Edition. Bostom, USA: Addison-Wesley Professional, 2018.
  • Nesteruk, D. Design Patterns in .NET: Reusable Approaches in C# and F# for Object-Oriented Software Design. New York, NY (USA): Apress., 2019.
  • Sarcar, V. Design Patterns in C#: A Hands-on Guide with Real-World Examples. Karnataka, India: Apress, 2018.
  • Taher, R. Hands-On Object-Oriented Programming with C#. Birmingham, UK: Packt., 2019.


Study plans that include the course
Faculty Study plan (Version) Category of Branch/Specialization Recommended year of study Recommended semester
Faculty: Faculty of Economics Study plan (Version): Economic Informatics (4) Category: Economy 1 Recommended year of study:1, Recommended semester: Summer