Algorithmic Toolbox

Start Date: 12/27/2020

 Course Type: Common Course

The course covers basic algorithmic techniques and ideas for computational problems arising frequently in practical applications: sorting and searching, divide and conquer, greedy algorithms, dynamic programming. We will learn a lot of theory: how to sort data and how it helps for searching; how to break a large problem into pieces and solve them recursively; when it makes sense to proceed greedily; how dynamic programming is used in genomic studies. You will practice solving computational problems, designing new algorithms, and implementing solutions efficiently (so that they run in less than a second). Do you have technical problems? Write to us: coursera@hse.ru

Course Syllabus

Welcome to the first module of Data Structures and Algorithms! Here we will provide an overview of where algorithms and data structures are used (hint: everywhere) and walk you through a few sample programming challenges. The programming challenges represent an important (and often the most difficult!) part of this specialization because the only way to fully understand an algorithm is to implement it. Writing correct and efficient programs is hard; please don’t be surprised if they don’t work as you planned—our first programs did not work either! We will help you on your journey through the specialization by showing how to implement your first programming challenges. We will also introduce testing techniques that will help increase your chances of passing assignments on your first attempt. In case your program does not work as intended, we will show how to fix it, even if you don’t yet know which test your implementation is failing on.

Course Introduction

Algorithmic Toolbox This is the third course in the specialization on Algorithmic topics. We are going to focus on the important areas in computer science that drive the performance of algorithms. This first course builds on the linear algebra and computer science knowledge that is covered in the specialization. We are going to use the pure-instruction-level programming style of functional programming in the programming examples to demonstrate the different algorithms that are built into the language. At the end of this course, you will be able to: - write programs that perform simple tasks efficiently - understand the influence of state on execution - write programs that read large amounts of data - use recursive functions effectively - use foldl to implement folds - understand how to use recursion effectively - write efficient algorithms - apply the foldl framework to implement algorithms Note: This is a functional course, and as such, most of these concepts will require you to use functional programming techniques, libraries, and tools (particularly for algorithms that take a lot of memory).Complexity Reduction Leveraging Recursion Folds Revert and Join Algorithmic Thinking for Game Theory This course makes an attempt to integrate the key theoretical topics in computer science, machine learning and computer graphics, into game theory. The main focus is on systems averse optimization: finding efficient systems over an extended period of time. The course also focuses

Course Tag

Dynamic Programming Debugging Software Testing Algorithms Computer Programming

Related Wiki Topic

Article Example
Macintosh Toolbox The Toolbox is composed of commonly used functions, but not the "most" commonly used functions. As a result, it grew into a hodgepodge of different API libraries. The Toolbox encompasses most of the basic functionality which distinguished the Classic Mac OS. Apple's references “Inside Macintosh: Macintosh Toolbox Essentials” and “Inside Macintosh: More Macintosh Toolbox”, similarly vague in scope, also document most of the Toolbox.
Toolbox Murders Toolbox Murders was followed by a 2011 sequel entitled "Toolbox Murders 2"; however production ceased when it ran out of production funds and it was discovered that the one of the producers Tony DIdio did not have chain of title or rights to the Toolbox Murders franchise. The movie was completed by the additional producers as Coffin Baby movie which is completely independent of the Toolbox Murders franchise and released a year earlier than Toolbox Murders 2. Despite the stalled release of "Toolbox Murders 2," and a no chain of title they are currently developing "Toolbox Murders 3", which is also produced over Crowdfunding.
Macintosh Toolbox In Mac OS X, the Toolbox is not used at all, though the Classic Environment loads the Toolbox ROM file into its virtual machine. Much of the Toolbox was restructured and implemented as part of Apple's Carbon programming API, allowing programmers familiar with the Toolbox to port their program code more easily to Mac OS X.
Skeptic's Toolbox Hyman created the Skeptic's Toolbox in 1989 to teach people how to be better skeptics. He tells James Underdown that "we were putting out more fires by skeptics than by believers... they were going overboard". The first toolbox was in Buffalo, NY with himself, James Alcock and Steve Shaw (now called Banachek). With the exception of one year when the toolbox was held in Boulder, Colorado, the toolbox has been held at the University of Oregon in Eugene.
Neurophysiological Biomarker Toolbox The NBT toolbox works as a plugin to the open-source Matlab toolbox EEGLAB
Algorithmic paradigm An algorithmic paradigm, algorithm design paradigm, algorithmic technique, or algorithmic strategy is a generic method or approach which underlies the design of a class of algorithms. It is an abstraction higher than the notion of an algorithm, just as an algorithm is an abstraction higher than a computer program. Examples of algorithmic paradigms include the greedy algorithm in optimization problems, dynamic programming, prune and search, and divide and conquer algorithms. More specialized algorithmic paradigms used in parameterized complexity include kernelization and iterative compression. In computational geometry, additional algorithmic paradigms include sweep line algorithms, rotating calipers, and randomized incremental construction.
Skeptic's Toolbox Loren Pankratz - A founding faculty member of the Skeptic's Toolbox, Pankratz explained to Harriet Hall, about the beginnings of the Toolbox, "Ray Hyman, Jerry Andrus and I were meeting together once a month or so and we decided that maybe the three of us could put a Toolbox together."
Algorithmic art Algorithmic art, also known as "algorithm art", is art, mostly visual art, of which the design is generated by an algorithm. Algorithmic artists are sometimes called algorists.
Communications ToolBox The Communications Toolbox, generally shortened to Comm Toolbox or CTB, was a suite of application programming interfaces, libraries and device drivers for the classic Mac OS that implemented a wide variety of serial and network communication protocols.
Toolbox The term "toolbox" is used in computing to represent a set of subroutines (or functions) and global variables. Typically these implement missing functionality using capabilities available in the core software.
Toolbox A toolbox (also called toolkit, tool chest or workbox) is a box to organize, carry, and protect the owner's tools. They could be used for trade, a hobby or DIY, and their contents vary with the craft of the owner.
Robotics Toolbox for MATLAB The Robotics Toolbox is MATLAB Toolbox software that supports research and teaching into arm-type and mobile robotics.
Distributed algorithmic mechanism design Distributed algorithmic mechanism design (DAMD) is an extension of algorithmic mechanism design.
Optimization Toolbox Portfolio optimization, cashflow matching, and other computational finance problems are solved with Optimization Toolbox.
Optimization Toolbox Optimization Toolbox solvers are used for security constrained optimal power flow and power systems analysis.
Toolbox (disambiguation) A toolbox is a container used to organize, carry, and protect the owner's tools.
NIH Toolbox The NIH Toolbox divides tests into four aspects of neural function, called "domain batteries":
Algorithmic logic Algorithmic logic is one of many logics of programs.
Algorithmic art Algorithmic art, also known as computer-generated art, is a subset of generative art (generated by an autonomous system) and is related to systems art (influenced by systems theory). Fractal art is an example of algorithmic art.
Algorithmic trading Algorithmic trading has been shown to substantially improve market liquidity among other benefits. However, improvements in productivity brought by algorithmic trading have been opposed by human brokers and traders facing stiff competition from computers.