Research Group for Applied Software Engineering
Forschungsgruppe für Angewandte Softwaretechnik

Introduction to Programming for Computer Engineering - Winter 2020/21

Course Information

  • Language: English
  • Type: 3 Ü
  • Module: tbd
  • Target audience: Bachelor and Master students in the Management and Technology programs with the specialization Computer Engineering (TUM School of Management) 
  • Registration: You must fill out the following survey to participate in this course: https://wiki.tum.de/display/progce21/Application 
  • Course Material: You can find slides and exercises on Artemis
  • Time and Location:
    • 2 week block course (half-day): Monday 15.03.21 - Friday, 26.03.21
    • Virtual tutor groups each day: 9:00 - 10:30 and 14:00 - 15:30
    • You work on programming exercises on your own in-between

Important Information

  • Exercises are based on interaction; we expect active participation!
  • Important: This pre-course cannot be used to obtain credit points (ECTS) for studies at TUM
    • Students can earn a certificate (PDF) by completing the exercises successfully
  • No prior experience in programming is required
  • Participation in the course is voluntary and does not count towards ECTS in the degree program, but is strongly recommended for all students in this specialization

Intended Learning Outcomes and Content

  • Use an IDE (e.g. Eclipse) to compile, debug and run code
  • Understand Java syntax, create variables, write conditional statements (e.g. if and switch) and control structures (e.g. for and while loops)
  • Use Java’s data types (e.g. Boolean, Integer, Long, Float, Double, String) and operators (e.g. =, ==, !=, <, >)
  • Create and invoke methods
  • Understand the differences between static and non static methods
  • Understand how to use collection types (e.g. Array, List, Set, Map, Stack) with generics
  • Understand the differences between compile time and runtime, and between compile time types and runtime types
  • Understand the differences between classes and objects
  • Create classes, instantiate objects, use attributes, methods, constructors and associations
  • Use modifiers to apply information hiding
  • Apply the concepts of encapsulation, polymorphism and inheritance
  • Write abstract classes and interfaces
  • Understand the differences between overriding and overloading
  • Apply simple exception handling techniques (try catch)
  • Understand simple lambda expressions (stream, filter, map, reduce, forEach, collect)
  • Understand simple UML class diagrams

Teaching and Learning Methods

The focuses is on exercises:

  • Students learn programming concepts in hands-on sessions in small tutor groups
  • Students immediately apply the learned knowledge in small coding exercises (playgrounds)
  • Students solve programming exercises on their own

Instructors

For further questions, please contact Stephan Krusche.