Mathematics BSc
Course description
2013.

Applied module: Programming
Hours
lect+pc
Credits
lect+pc
Assessment Specialization Course code
lect/pc
Semester Status
2 + 2 5 term grade applied math. mm1c3mp3a 3 optional
Strong Weak Prerequisites
Practice class
Strong:
Prerequisites
Software development, procedural programming (programming theorems, sorting algorithms, subroutines), structured programming (type construction, encapsulation, information hiding), realization of basic data structures (exception handling, templates, dynamic memory management), object-oriented programming (classes, relations, inheritance, polymorphism).
Course objectives
  • The aim of the course is to introduce basic software development processes and the main factors of the most common programming paradigm, namely procedural, structured and object-oriented programming through the tools of the C++ language.
  • During the course of the semester students familiarize themselves with the programming characteristics, possibilities and limitations of different programming styles, and get deeper knowledge in the design, development and testing of software developed in C++.
Literature
  • Ian Sommerville: Software Engineering. 9th edition, Addison-Wesley, 2010.
  • Bjarne Stroustrup: The C++ programming language. 3rd edition, Addison-Wesley Professional, 2000.
  • Hassan Gomaa: Software Modeling and Design: UML, Uses Cases, Patterns and Software Architectures. Cambridge, 2011.
Syllabus
  • Software development, programming paradigms.
  • Procedural programming: managing data flows and sequences.
  • Procedural programming: subroutines and communication.
  • Procedural programming: iterative and recursive subroutines.
  • Structured programming: basic type construction.
  • Structured programming: type reusability.
  • Structured programming: static collections.
  • Structured programming: dynamic memory management.
  • Structured programming: dynamic collections.
  • Object-oriented programming: design and development.
  • Object-oriented programming: inheritance.
  • Object-oriented programming: static data management.