Markus Dahinden: Catalogue data in Spring Semester 2024

Name Dr. Markus Dahinden
Address
Lehre D-INFK
ETH Zürich, CAB H 31.1
Universitätstrasse 6
8092 Zürich
SWITZERLAND
Telephone+41 44 632 53 52
E-mailmarkus.dahinden@inf.ethz.ch
DepartmentComputer Science
RelationshipLecturer

NumberTitleECTSHoursLecturers
252-0840-02LApplication-Oriented Programming with Python Information 2 credits2GL. E. Fässler, M. Dahinden
AbstractThis course provides important basic concepts for interdisciplinary programming projects with Python.
Learning objectiveStudents learn...

- how to encode a problem into a program, test the program, and correct errors.
- to understand and improve existing code.
- deal with the complexity of real data.
- store data in a suitable data structure.
- to implement models from the natural sciences as a simulation.
- run random experiments and interpret the results.
- explain and apply standard algorithms.
ContentThe following programming concepts are introduced in the lecture:

1. Variables, data types
2. Control structures, logic
3. Sequential data types, search- and sort algorithms, simulating, modelling
4. Functions, modules , simulation and animation
5. Matrices, random experiments, Cellular automata
6. Classes and objects

In the practical part of the course, students work on small programming projects with a context from natural sciences. Electronic tutorials are available as preparation.
LiteratureL. Fässler, M. Dahinden, D. Komm, and D. Sichau: Einführung in die Programmierung mit Python. Begleitunterlagen zum Onlinekurs und zur Vorlesung, 2023. ISBN: 978-3-7578-2423-5.
Prerequisites / NoticeNo prior knowledge is required for this course. It is based on application-oriented learning. The students spend most of their time working through programming projects with data from natural science and discussing their results with teaching assistants. To learn the programming basics there are electronic tutorials available.
CompetenciesCompetencies
Subject-specific CompetenciesTechniques and Technologiesassessed
Method-specific CompetenciesAnalytical Competenciesassessed
Decision-makingfostered
Media and Digital Technologiesfostered
Problem-solvingassessed
Project Managementfostered
Social CompetenciesCommunicationassessed
Personal CompetenciesAdaptability and Flexibilityfostered
Creative Thinkingfostered
Critical Thinkingfostered
Self-awareness and Self-reflection fostered
Self-direction and Self-management fostered
252-0842-00LIntroduction to Programming and Problem Solving Information Restricted registration - show details
Belegungsfrist: 16.02.2024
3 credits2V + 1UD. Komm, M. Dahinden, M. Wettstein
AbstractCore concepts of Computer Science and their implementation in Python.
Learning objectiveThe goals of the course are consolidating the knowledge about the programming language Python on the one hand, and learning about core concepts of computer science that are essential in algorithm design on the other hand. The focus is on computational thinking, that is, the ability to solve problems systematically by developing algorithms. Different strategies are introduced, analyzed theoretically, and implemented in Python. The combination of theory and practice is central in this course.
Content- Repetition of basic programming concepts such as variables, lists, control structures, and loops
- Reading in and visualizing data
- Complexity theory
- Sorting and searching
- Dynamic programming
- Recursion
- Graph algorithms
Lecture notesMoodle: https://moodle-app2.let.ethz.ch/course/view.php?id=21917
Lecture website: https://courses.csedu.inf.ethz.ch/ppl-2024/
LiteratureThe slides will be available for download on the course website.
Prerequisites / NoticeRecommendation:
- Foundations of Computer Science (252-0852-00)
or
- Application Oriented Programming Using Python (252-0840-02)
CompetenciesCompetencies
Subject-specific CompetenciesConcepts and Theoriesassessed
Techniques and Technologiesassessed
Method-specific CompetenciesAnalytical Competenciesassessed
Problem-solvingassessed
Social CompetenciesCommunicationfostered
Cooperation and Teamworkfostered
Self-presentation and Social Influence fostered
Personal CompetenciesCreative Thinkingassessed
Critical Thinkingassessed
Self-awareness and Self-reflection fostered
Self-direction and Self-management fostered
273-0001-00LProgramming with Python Restricted registration - show details 3 credits2AL. E. Fässler, M. Dahinden
AbstractThis Python course reinforces and extends basic programming concepts covered previously in the CAS in Applied Information Technology and introduces several new topics. These include classes, objects, and a selection of important Python libraries. Participants will develop their Python programming skills over the entire module with online tutorials, programming exercises, and one-on-one support.
Learning objectiveParticipants learn...

- how to encode a problem into a program, test the program, and correct errors.
- to understand and improve existing code.
- deal with the complexity of real data.
- store data in a suitable data structure.
- query databases and understand and evaluate the corresponding database model.
- to implement mathematical models as a simulation.
ContentParticipants expand their programming skills. They learn to develop mathematical models for real-world tasks and solve them as small projects in Python. Fundamental concepts of programming being covered include Matrix calculations, Objects and Classes, Data requests for Data Science and Data visualization.
Prerequisites / NoticeIt is based on application-oriented learning. The students spend most of their time working through programming projects and discussing their results with teaching assistants. To learn the programming basics there are electronic tutorials available.

A Python basics online course is available approximately one month prior to the start of the program for people who do not have any prior experience with Python or who would like to refresh their Python skills.
CompetenciesCompetencies
Subject-specific CompetenciesConcepts and Theoriesfostered
Techniques and Technologiesassessed
Method-specific CompetenciesAnalytical Competenciesassessed
Decision-makingfostered
Media and Digital Technologiesfostered
Problem-solvingassessed
Project Managementfostered
Social CompetenciesCommunicationassessed
Cooperation and Teamworkfostered
Personal CompetenciesAdaptability and Flexibilityfostered
Creative Thinkingassessed
Critical Thinkingassessed
Self-awareness and Self-reflection fostered
Self-direction and Self-management fostered