Programming Techniques
Description
Learning outcomes and development goals: K2 L Have a basic scientific-disciplinary knowledge and understanding in one of the areas based on the chosen specialization I1 L Problem analysis and solving I2 L Designing and/or developing G3 L Critical reflection G3 V Self-regulating behaviour Objectives: The students get to know and learn to use the most important concepts of (object-oriented) programming and the associated jargon. After learning the basics in the introductory courses (algorithms, iteration and selection, functions and parameters, classes and objects, inheritance, simple data structures, learning to use api), they now acquire a deeper understanding and learn to think at a higher level of abstraction. The student understands in detail how memory management works: How is memory allocated and released on the heap? What happens on the stack? What are pointers? How does one work with pointers? The student will gain a deeper understanding of how object-oriented programming works: Object-oriented type systems (e.g., in a language such as Java, C++, or C#) with dynamic binding: abstract classes/abstract methods, interface, substitutability, generics How are objects implemented? How is memory management done for objects and how are pointers used (implicitly) in object-oriented programming? Students will master advanced concepts around working with data structures and functions: The student can work with a library of data structures (e.g. Collections in Java, STL in C++, ...) The student understands the underlying implementation of collections (array-based, linked list, hashtable, binary balanced tree, ...) enough to make the right choice when using it The student knows the difference between mutable and immutable data structures The student knows ways to treat functions "like data", e.g. lambda functions, function pointers or function objects The student can work with higher-order functions such as map, filter, reduce, ... The student can think about ways to structure code: design patterns: the student understands design patterns as a level of abstraction above classes/objects ("documented good practices") and knows some common and not too complicated patterns. The student sees the relevance of concepts like "separation of concerns", "encapsulate what changes" and "information hiding" in this context. The student knows the principles of clean code: defensive programming: the student can write robust and reusable code, using among other things unit tests, and common errors (e.g. nullpointerexceptions) common refactoring (with support from IDE) and unit tests The student can work with Reflection mechanisms, which allow to retrieve information about code.
Preview the 5 closest equivalencies already indexed in our system
B3075Q has possible credit equivalents including 514760 at Dankook University.