# Online courses directory (46)

**Kursbeschreibung**

Der Kurs führt in das zentrale Gebiet der Informatik ein, auf dem alle anderen Teilgebiete aufbauen: Wie entwickele ich Software? Anhand der Programmiersprache Java werden Algorithmen zum Suchen und Sortieren vorgestellt und die dazu benötigten Datenstrukturen wie Keller, Schlange, Liste, Baum und Graph eingeführt.

**Was lerne ich in diesem Kurs?**

Die Teilnehmer des Kurses werden in die Lage versetzt, eine Problemstellung auf maschinelle Lösbarkeit hin zu analysieren, dafür einen Algorithmus zu entwerfen, die zugehörigen Datenstrukturen zu wählen, daraus ein Java-Programm zu entwickeln und dieses zur Lösung des Problems einzusetzen.

**Welche Vorkenntnisse benötige ich?**

Mathematikkenntnisse auf Oberstufenniveau.

**Kursplan**

Kapitel |
Thema |
---|---|

Kapitel 1 | Einführung |

Kapitel 2 | Systemumgebung |

Kapitel 3 | Java |

Kapitel 4 | Datentypen |

Kapitel 5 | Felder |

Kapitel 6 | Methoden |

Kapitel 7 | Rekursion |

Kapitel 8 | Komplexität |

Kapitel 9 | Sortieren |

Kapitel 10 | Objektorientierung |

Kapitel 11 | Abstrakte Datentypen |

Kapitel 12 | Suchbäume |

Kapitel 13 | Hashing |

Kapitel 14 | Graphen |

Experienced Computer Scientists analyze and solve computational problems at a level of abstraction that is beyond that of any particular programming language. This class is designed to train students in the mathematical concepts and process of "Algorithmic Thinking", allowing them to build simpler, more efficient solutions to computational problems.

Animation is a compelling and effective form of expression; it engages viewers and makes difficult concepts easier to grasp. Today's animation industry creates films, special effects, and games with stunning visual detail and quality. This graduate class will investigate the algorithms that make these animations possible: keyframing, inverse kinematics, physical simulation, optimization, optimal control, motion capture, and data-driven methods. Our study will also reveal the shortcomings of these sophisticated tools. The students will propose improvements and explore new methods for computer animation in semester-long research projects. The course should appeal to both students with general interest in computer graphics and students interested in new applications of machine learning, robotics, biomechanics, physics, applied mathematics and scientific computing.

Solve problems using Mathematics, Computer Science and more!. Introduction. The Discovery. Clue #1. Clue #2. Clue #3. Crypto Checkpoint 1. Clue #4. Checkpoint. Crypto Checkpoint 2. Crypto Checkpoint 3. What's Next?. Introduction. The Discovery. Clue #1. Clue #2. Clue #3. Crypto Checkpoint 1. Clue #4. Checkpoint. Crypto Checkpoint 2. Crypto Checkpoint 3. What's Next?.

How have humans protected their secret messages through history? What has changed today?. What is Cryptography?. Probability Space. The Caesar Cipher. Caesar Cipher Exploration. Frequency Fingerprint Exploration . Polyalphabetic Cipher. Polyalphabetic Exploration. The One-Time Pad. Perfect Secrecy Exploration. Frequency Stability. Coin flip sequences. Frequency Stability Exploration. The Enigma Encryption Machine (case study). Perfect Secrecy. Pseudorandom Number Generators. Random Walk Exploration. Ciphers vs. Codes. Shift Cipher. Caesar cipher encryption. Caesar Cipher Decryption. Caesar cipher frequency analysis. Vigenere cipher encryption. XOR Bitwise Operation. XOR & the One-Time Pad. XOR Exploration. Bitwise Operators. What's Next?. The Fundamental Theorem of Arithmetic. Public Key Cryptography: what is it?. The Discrete Logarithm Problem. Diffie-Hellman Key Exchange. RSA Encryption: step 1. RSA Encryption: step 2. RSA Encryption: step 3. Time Complexity (Exploration). Euler's Totient Function. Euler Totient Exploration. RSA Encryption: step 4. What should we learn next?. What is Modular Arithmetic?. Modulo Operator. Congruence Modulo. Congruence Relation. Equivalence Relations. The Quotient Remainder Theorem. Modular Addition & Subtraction. Modular Addition. Modular Multiplication. Modular Multiplication. Modular Exponentiation. Fast Modular Exponentiation. Fast Modular Exponentiation. Modular Inverses. Introduction. Primality Test Challenge. Trial Division. Level 1: Primality Test. Running Time. Level 2: measuring running time. Computer Memory (space). Binary Memory Exploration. Algorithmic Efficiency. Level 3: Challenge. Sieve of Eratosthenes. Level 4: Sieve of Eratosthenes. Primality Test with Sieve. Level 5: Trial division using sieve. The Prime Number Theorem. Prime density spiral. Prime Gaps. Time Space Tradeoff. Summary (what's next?). Randomized Algorithms (intro). Conditional Probability (Bayes Theorem) Visualized. Guess the coin. Random Primality Test (warm up). Level 9: Trial Divison vs Random Division. Fermat's Little Theorem. Fermat Primality Test. Level 10: Fermat Primality Test. What's Next?. What is Cryptography?. Probability Space. The Caesar Cipher. Caesar Cipher Exploration. Frequency Fingerprint Exploration . Polyalphabetic Cipher. Polyalphabetic Exploration. The One-Time Pad. Perfect Secrecy Exploration. Frequency Stability. Coin flip sequences. Frequency Stability Exploration. The Enigma Encryption Machine (case study). Perfect Secrecy. Pseudorandom Number Generators. Random Walk Exploration. Ciphers vs. Codes. Shift Cipher. Caesar cipher encryption. Caesar Cipher Decryption. Caesar cipher frequency analysis. Vigenere cipher encryption. XOR Bitwise Operation. XOR & the One-Time Pad. XOR Exploration. Bitwise Operators. What's Next?. The Fundamental Theorem of Arithmetic. Public Key Cryptography: what is it?. The Discrete Logarithm Problem. Diffie-Hellman Key Exchange. RSA Encryption: step 1. RSA Encryption: step 2. RSA Encryption: step 3. Time Complexity (Exploration). Euler's Totient Function. Euler Totient Exploration. RSA Encryption: step 4. What should we learn next?. What is Modular Arithmetic?. Modulo Operator. Congruence Modulo. Congruence Relation. Equivalence Relations. The Quotient Remainder Theorem. Modular Addition & Subtraction. Modular Addition. Modular Multiplication. Modular Multiplication. Modular Exponentiation. Fast Modular Exponentiation. Fast Modular Exponentiation. Modular Inverses. Introduction. Primality Test Challenge. Trial Division. Level 1: Primality Test. Running Time. Level 2: measuring running time. Computer Memory (space). Binary Memory Exploration. Algorithmic Efficiency. Level 3: Challenge. Sieve of Eratosthenes. Level 4: Sieve of Eratosthenes. Primality Test with Sieve. Level 5: Trial division using sieve. The Prime Number Theorem. Prime density spiral. Prime Gaps. Time Space Tradeoff. Summary (what's next?). Randomized Algorithms (intro). Conditional Probability (Bayes Theorem) Visualized. Guess the coin. Random Primality Test (warm up). Level 9: Trial Divison vs Random Division. Fermat's Little Theorem. Fermat Primality Test. Level 10: Fermat Primality Test. What's Next?.

We've always been communicating.... as we moved from signal fires, to alphabets & electricity the problems remained the same. What is Information Theory?. Prehistory: Proto-writing. Ptolemaic: Rosetta Stone. Ancient History: The Alphabet. Source Encoding. Visual Telegraphs (case study). Decision Tree Exploration. Electrostatic Telegraphs (case study). The Battery & Electromagnetism. Morse Code & The Information Age. Morse code Exploration. What's Next?. Symbol Rate. Symbol Rate Exploration. Introduction to Channel Capacity. Message Space Exploration. Measuring Information. Galton Board Exploration. Origin of Markov Chains. Markov Chain Exploration. A Mathematical Theory of Communication. Markov Text Exploration. What's Next?. What is Information Theory?. Prehistory: Proto-writing. Ptolemaic: Rosetta Stone. Ancient History: The Alphabet. Source Encoding. Visual Telegraphs (case study). Decision Tree Exploration. Electrostatic Telegraphs (case study). The Battery & Electromagnetism. Morse Code & The Information Age. Morse code Exploration. What's Next?. Symbol Rate. Symbol Rate Exploration. Introduction to Channel Capacity. Message Space Exploration. Measuring Information. Galton Board Exploration. Origin of Markov Chains. Markov Chain Exploration. A Mathematical Theory of Communication. Markov Text Exploration. What's Next?.

20th century solutions to new problems in Cryptography. The Fundamental Theorem of Arithmetic. Public Key Cryptography: what is it?. The Discrete Logarithm Problem. Diffie-Hellman Key Exchange. RSA Encryption: step 1. RSA Encryption: step 2. RSA Encryption: step 3. Euler's Totient Function. RSA Encryption: step 4. What should we learn next?.

This class explores sound and what can be done with it. Sources are recorded from students' surroundings - sampled and electronically generated (both analog and digital). Assignments include composing with the sampled sounds, feedback, and noise, using digital signal processing (DSP), convolution, algorithms, and simple mixing. The class focuses on sonic and compositional aspects rather than technology, math, or acoustics, though these are examined in varying detail. Students complete weekly composition and listening assignments; material for the latter is drawn from sound art, experimental electronica, conventional and non-conventional classical electronic works, popular music, and previous students' compositions.

This course presents material in discrete mathematics and computation theory with a strong emphasis on practical algorithms and experiential learning. Discrete mathematics, also called finite mathematics or decision mathematics, is the study of mathematical structures that are fundamentally discrete in the sense of not supporting or requiring the notion of continuity. Objects studied in finite mathematics are largely countable sets such as integers, finite graphs, and formal languages. Concepts and notations from discrete mathematics are useful to study or describe objects or problems in computer algorithms and programming languages. The CDM course is currently under development and we are making the course available while it is under development. Only one of the planned fifteen modules is currently available. The module on Groups that is currently available would appear mid-way through the complete course.

Today, computer graphics is a central part of our lives, in movies, games, computer-aided design, virtual reality, virtual simulators, visualization and even imaging products and cameras. This course, part of the Virtual Reality (VR) Professional Certificate program, teaches the basics of computer graphics that apply to all of these domains.

Students will learn to create computer-generated images of 3D scenes, including flybys of objects, make a real-time scene viewer, and create very realistic images with raytracing. We will start with a simple example of viewing a teapot from anywhere in space, understanding the basic mathematics of virtual camera placement. Next, you will learn how to use real-time graphics programming languages like OpenGL and GLSL to create your own scene viewer, enabling you to fly around and manipulate 3D scenes. Finally, we will teach you to create highly realistic images with reflections and shadows using raytracing.

This course runs for 6 weeks and consists of four segments. Each segment includes an individual programming assignment:

- Overview and Basic Math (Homework 0: 10% of grade)
- Transformations (Homework 1: 20% of grade)
- OpenGL and Lighting (Homework 2: 35% of grade)
- Raytracing (Homework 3: 35% of grade)

This term, students who earn a total score of 50% or greater will have passed the course and may obtain a certificate from UC San DiegoX.

Information Technology (IT) is everywhere. Every aspect of human activity depends on it. All IT processes, whether they drive mobile phones, the Internet, transportation systems, enterprise systems, publishing, social networks or any other application, rely on software.

In this new and improved version of the course, you will learn to write software with a progressive hint system for first time programmers. The core skill is programming; not just the ability to piece together a few “lines of code,” but writing *quality *programs, which will do their job right, and meet the evolving needs of their users. Anyone can write a program; this course teaches you to write *good *programs.

The course starts from the basics of computing and takes you through a tour of modern object-oriented programming, including classes, objects, control structures, inheritance, polymorphism, and genericity.

Throughout the course, you will have the opportunity to learn the principles of programming as well as the techniques for designing correct and reliable programs by using the Eiffel programming language and notation. You will be trying out example problems to provide your solution, and see it immediately compiled and tested from within your browser. To this end, we are using the Codeboard;web-based IDE, developed at the Chair of Software Engineering (ETH Zurich).

Beyond programming, you will also get a glimpse at theoretical computer science, the set of mathematical techniques that underlie computation and makes today’s IT-based world possible.

In this third edition of the course we specifically focus on helping students with little or no programming experience. To this end, we have improved the introductory material about the Eiffel language, and we have implemented a progressive hint system students can use to get guidance on how to solve the programming exercises.

"*Really good course. Followed it with a couple of experienced colleagues all of them having a computer science background. They really liked the concepts and programming in Eiffel a lot. Many thanks to the team making this course available! Can not wait to start with the advanced course!*" --Previous CAMSx Participant

Previous edition course evaluation:

Overall course rating (1: worst grade, 6: best grade):

Grade Resp. %Resp

1 1 2%

2 0 2%

3 3 6%

4 9 18%

5 20 40%

6 17 34%

Total respondents: 50

Average: 4.96

6.263J / 16.37J focuses on the fundamentals of data communication networks. One goal is to give some insight into the rationale of why networks are structured the way they are today and to understand the issues facing the designers of next-generation data networks. Much of the course focuses on network algorithms and their performance. Students are expected to have a strong mathematical background and an understanding of probability theory. Topics discussed include: layered network architecture, Link Layer protocols, high-speed packet switching, queueing theory, Local Area Networks, and Wide Area Networking issues, including routing and flow control.

Discrete stochastic processes are essentially probabilistic systems that evolve in time via random changes occurring at discrete fixed or random intervals. This course aims to help students acquire both the mathematical principles and the intuition necessary to create, analyze, and understand insightful models for a broad range of these processes. The range of areas for which discrete stochastic-process models are useful is constantly expanding, and includes many applications in engineering, physics, biology, operations research and finance.

6.632 is a graduate subject on electromagnetic wave theory, emphasizing mathematical approaches, problem solving, and physical interpretation. Topics covered include: waves in media, equivalence principle, duality and complementarity, Huygens' principle, Fresnel and Fraunhofer diffraction, dyadic Green's functions, Lorentz transformation, and Maxwell-Minkowski theory. Examples deal with limiting cases of Maxwell's theory and diffraction and scattering of electromagnetic waves.

This course introduces students to iterative decoding algorithms and the codes to which they are applied, including Turbo Codes, Low-Density Parity-Check Codes, and Serially-Concatenated Codes. The course will begin with an introduction to the fundamental problems of Coding Theory and their mathematical formulations. This will be followed by a study of Belief Propagation--the probabilistic heuristic which underlies iterative decoding algorithms. Belief Propagation will then be applied to the decoding of Turbo, LDPC, and Serially-Concatenated codes. The technical portion of the course will conclude with a study of tools for explaining and predicting the behavior of iterative decoding algorithms, including EXIT charts and Density Evolution.

This course is an introduction to the fundamentals of game theory and mechanism design. Motivations are drawn from engineered/networked systems (including distributed control of wireline and wireless communication networks, incentive-compatible/dynamic resource allocation, multi-agent systems, pricing and investment decisions in the Internet), and social models (including social and economic networks). The course emphasizes theoretical foundations, mathematical tools, modeling, and equilibrium notions in different environments.