Prof. Dr. Ivan Kastelan

Ivan Kaštelan received the BSc, MSc and PhD degrees in electrical and computer engineering from the Faculty of Technical Sciences, University of Novi Sad, Serbia in 2008, 2009 and 2014 respectively. He received the award for the best student of the Faculty of Technical Sciences in 2008 and the Faculty of Technical Sciences award “Momčilo Momo Novković“ for his teaching work in 2014. He is currently an Associate Professor at the Department of Computing and System Control at the University of Novi Sad, Faculty of Technical Sciences, teaching courses in digital and computer system design and the design of algorithms. As an instructor at NIT Institute, he is teaching the Python programming courses. He participated in multiple European (FP7, Horizon 2020, IPA) and national projects. He was the deputy coordinator of the E2LP project that developed the learning platform used in 8 higher education institutions across the European continent. Currently he is a coordinator of the project funded by the Government of AP Vojvodina in the field of applicability of renewable energy sources. He published 7 papers in international journals and more than 80 papers in the conference proceedings. He is also a co-author of 13 patents.

References

  • Željko Lukač, Ivan Kaštelan, Mario Vranješ, Branislav Todorović: "AMV ALPHA Learning Platform for Automotive Embedded Software Engineering", IEEE Transactions on Learning Technologies, 2021, Vol. 14 #3, pp. 292-298, https://doi.org/10.1109/TLT.2021.3098505
  • Ivan Kaštelan, Vukota Peković, Nikola Teslić: "A Novel Concept of Electrical Stimulation of Touchscreens Used for Automated Verification of Mobile Devices", Elektronika ir Elektrotechnika, 2019, Vol. 25 #2, pp. 47-52, http://dx.doi.org/10.5755/j01.eie.25.2.23204
  • Ivan Kaštelan, Jorge R. Lopez Benito, Enara Artetxe Gonzalez, Jan Piwinski, Moshe Barak, Miodrag Temerinac: "E2LP: A Unified Embedded Engineering Learning Platform", Microprocessors and Microsystems (Elsevier), 2014, Vol. 38 #8, pp. 933-946, http://dx.doi.org/10.1016/j.micpro.2014.09.003
  • Roman Szewczyk, Ivan Kaštelan, Miodrag Temerinac, Moshe Barak, Vlado Sruk: "Embedded Engineering Education", Springer, 2016, http://dx.doi.org/10.1007/978-3-319-27540-6
  • Milan Bjelica, Ivan Kaštelan, Maja Barić: "Sistem i metod za udaljenu nastavu kombinovanjem televizije i interneta" (English: "System and Method for Remote Teaching Combining the TV and Internet"), Patent application RS P-2020/1039

Courses

This course introduces Python programming, aimed at attendees with prior experience in programming in any other programming language.

 

Starting from the basics, get introduced to the basic programming constructs and data types in Python language, with the focus on processing collections of data, where Python is very powerful. The course covers procedural and object-oriented paradigms. Fundamentals of testing the programming solutions are also covered. At the end of the course, your instructor will show you examples of unit testing and multiprocessing in Python.

 

Course topics:

  • Orientation
  • Basic programs in Python 3.x: Basic procedural programs; overview of basic data types in Python; basic syntax of conditional statements and loops.
  • Python data collections: Lists, dictionaries, tuples, sets.
  • Functions, modules and packages: Writing and using functions, modules and packages; using files; handling input arguments.
  • Lambda and regular expressions: Basic lambda expressions and regex usage; functional programming
  • Object-oriented programming 1: Writing and using Python classes; basic object-oriented programs in Python, encapsulation, operator overloading
  • Object-oriented programming 2: Inheritance, exceptions, debugging; more complex OOP exercise
  • Unit testing in Python: Fundamentals of testing Python programs; writing test classes with unit tests
  • Project

Requirements

Software: Python IDE ( e.g Visual Studio Code with Python extension).

Hardware: Computer with an Internet connection, working speakers, and microphone.

Prior knowledge: Basic programming experience in procedural and object-oriented programming in Python or any other programming language.