Back to Courses

Algorithms Courses - Page 9

Showing results 81-90 of 326
Python Data Structures
Data structures play a crucial role in application development. The proper selection of data structures is important for efficient algorithm development. The availability of a list, for example, greatly simplifies sorting a collection of data items. It would be difficult to do this without that data structure, as you will see. This is why Programming languages like Python have certain fundamental data structures built into the language. In this course, you will create a Python application that reads from a file containing words and their definitions. You will use Python’s built-in data structures to make a multiple choice quiz based on words and their definitions. Note: This course works best for learners who are based in the North America region. We’re currently working on providing the same experience in other regions.
Probabilistic Graphical Models 2: Inference
Probabilistic graphical models (PGMs) are a rich framework for encoding probability distributions over complex domains: joint (multivariate) distributions over large numbers of random variables that interact with each other. These representations sit at the intersection of statistics and computer science, relying on concepts from probability theory, graph algorithms, machine learning, and more. They are the basis for the state-of-the-art methods in a wide variety of applications, such as medical diagnosis, image understanding, speech recognition, natural language processing, and many, many more. They are also a foundational tool in formulating many machine learning problems. This course is the second in a sequence of three. Following the first course, which focused on representation, this course addresses the question of probabilistic inference: how a PGM can be used to answer questions. Even though a PGM generally describes a very high dimensional distribution, its structure is designed so as to allow questions to be answered efficiently. The course presents both exact and approximate algorithms for different types of inference tasks, and discusses where each could best be applied. The (highly recommended) honors track contains two hands-on programming assignments, in which key routines of the most commonly used exact and approximate algorithms are implemented and applied to a real-world problem.
Fundamentals of Digital Image and Video Processing
In this class you will learn the basic principles and tools used to process images and videos, and how to apply them in solving practical problems of commercial and scientific interests. Digital images and videos are everywhere these days – in thousands of scientific (e.g., astronomical, bio-medical), consumer, industrial, and artistic applications. Moreover they come in a wide range of the electromagnetic spectrum - from visible light and infrared to gamma rays and beyond. The ability to process image and video signals is therefore an incredibly important skill to master for engineering/science students, software developers, and practicing scientists. Digital image and video processing continues to enable the multimedia technology revolution we are experiencing today. Some important examples of image and video processing include the removal of degradations images suffer during acquisition (e.g., removing blur from a picture of a fast moving car), and the compression and transmission of images and videos (if you watch videos online, or share photos via a social media website, you use this everyday!), for economical storage and efficient transmission. This course will cover the fundamentals of image and video processing. We will provide a mathematical framework to describe and analyze images and videos as two- and three-dimensional signals in the spatial, spatio-temporal, and frequency domains. In this class not only will you learn the theory behind fundamental processing tasks including image/video enhancement, recovery, and compression - but you will also learn how to perform these key processing tasks in practice using state-of-the-art techniques and tools. We will introduce and use a wide variety of such tools – from optimization toolboxes to statistical techniques. Emphasis on the special role sparsity plays in modern image and video processing will also be given. In all cases, example images and videos pertaining to specific application domains will be utilized.
Java Primitive Types to Calculate Expenses
In this project you will create an application that calculates a monthly expense estimation using a calculated monthly house payment and grocery bills using Java. Java is an Object-Oriented language that contains many Classes but also contains what are called Primitive Data Types. These primitive data types are used to store numbers and characters in Java and have all the Arithmetic operations needed to perform various calculations. To get started with Java, it is important to know how to use these built in data types as they are found throughout the language. The primitive data types take up much less space than objects do and can make a program much more efficient when used properly. Note: This course works best for learners who are based in the North America region. We’re currently working on providing the same experience in other regions.
Linear Regression with Python
In this 2-hour long project-based course, you will learn how to implement Linear Regression using Python and Numpy. Linear Regression is an important, fundamental concept if you want break into Machine Learning and Deep Learning. Even though popular machine learning frameworks have implementations of linear regression available, it's still a great idea to learn to implement it on your own to understand the mechanics of optimization algorithm, and the training process. Since this is a practical, project-based course, you will need to have a theoretical understanding of linear regression, and gradient descent. We will focus on the practical aspect of implementing linear regression with gradient descent, but not on the theoretical aspect. Note: This course works best for learners who are based in the North America region. We’re currently working on providing the same experience in other regions.
Information Extraction from Free Text Data in Health
In this MOOC, you will be introduced to advanced machine learning and natural language processing techniques to parse and extract information from unstructured text documents in healthcare, such as clinical notes, radiology reports, and discharge summaries. Whether you are an aspiring data scientist or an early or mid-career professional in data science or information technology in healthcare, it is critical that you keep up-to-date your skills in information extraction and analysis. To be successful in this course, you should build on the concepts learned through other intermediate-level MOOC courses and specializations in Data Science offered by the University of Michigan, so you will be able to delve deeper into challenges in recognizing medical entities in health-related documents, extracting clinical information, addressing ambiguity and polysemy to tag them with correct concept types, and develop tools and techniques to analyze new genres of health information. By the end of this course, you will be able to: Identify text mining approaches needed to identify and extract different kinds of information from health-related text data Create an end-to-end NLP pipeline to extract medical concepts from clinical free text using one terminology resource Differentiate how training deep learning models differ from training traditional machine learning models Configure a deep neural network model to detect adverse events from drug reviews List the pros and cons of Deep Learning approaches."
Blocks-based ABM with NetTango
Programming and complexity thinking are key skills for approaching 21st century challenges. NetTango Builder is a tool that allows for the creation of blocks-based programming experiences based on complex systems models available in NetLogo Library. Thus, it makes it possible for teachers to create entry level programming experiences capable of introducing students to non-linearity, emergence, uncertainty and other complexity related phenomena.
Attitude Control with Momentum Exchange Devices
This course is part 1 of the specialization Advanced Spacecraft Dynamics and Control. It is a direct continuation of the Coursera specialization Spacecraft Dynamics and Control. This first course focuses on nonlinear attitude feedback control using a range of angular momentum devices. The course provides a comprehensive review of prerequisite material. Next it develops equations of motion of a spacecraft with momentum exchange devices such as reaction wheels (RWs), control momentum gyroscopes (CMGs) and variable speed control moment gyroscopes (VSCMGs). The course discusses developing a complex spacecraft simulation with a number VSCMGs and how to approach debugging such complex software. The use of the work/energy theorem is discussed to assist with debugging the simulation by validating angular momentum, energy, changes in momentum and mechanical power. Further, the use of null motion is explored to reconfigure the attitude control devices to avoid singularities and gimbal lock. The redundancy is exploited to seek control solutions that avoid classical CMG singularities.
C Programming: Modular Programming and Memory Management - 3
Enhance your coding skills along your path to becoming a proficient C programmer with the essential concepts of functions and pointers. In this course you will be introduced to the concept of modular programming: that is, dividing up more complex tasks into manageable pieces. You will learn how to write your own functions (just like functions in mathematics for example). You will also gain insight into a computer's architecture and learn how its memory is organized. Given the vast amount of memory computers have these days, how does your program remember where a certain variable is stored? This brings about the important topic of how memory is efficiently addressed inside a computer, and with it, the topic of pointers. Pointers are often considered the most difficult part and main struggle for C program developers. We will introduce you to this central topic with our novel and innovative visualization tools and show you precisely how pointers work. No need to struggle! You will receive instant feedback on your code right within your browser. The programming concepts you will gain in this course are foundational to any programming language. C is a foundational programming language taught at engineering schools around the world, and represents one of the building blocks of modern computer information technology. Invented in the 1970’s. It is still one of the most stable and popular programming languages in the world. By the end of this course, you will have reached the third mile stone in the C Programming with Linux Specialization program, unlocking the door to a career in computer engineering. Your job outlook: - Programmers, developers, engineers, managers, and related industries within scientific computing and data science; - Embedded systems such as transportation, utility networks, and aerospace; - Robotics industry and manufacturing; - IoT (Internet of Things) used in smart homes, automation, and wearables. - IEEE, the world’s largest technical professional organization for the advancement of technology, ranks C as third of the top programming languages of 2021 in demand by employers. (Source: IEEE Spectrum) This course has received financial support from the Patrick & Lina Drahi Foundation.
Combinatorics and Probability
Counting is one of the basic mathematically related tasks we encounter on a day to day basis. The main question here is the following. If we need to count something, can we do anything better than just counting all objects one by one? Do we need to create a list of all phone numbers to ensure that there are enough phone numbers for everyone? Is there a way to tell that our algorithm will run in a reasonable time before implementing and actually running it? All these questions are addressed by a mathematical field called Combinatorics. In this online course we discuss most standard combinatorial settings that can help to answer questions of this type. We will especially concentrate on developing the ability to distinguish these settings in real life and algorithmic problems. This will help the learner to actually implement new knowledge. Apart from that we will discuss recursive technique for counting that is important for algorithmic implementations. One of the main ‘consumers’ of Combinatorics is Probability Theory. This area is connected with numerous sides of life, on one hand being an important concept in everyday life and on the other hand being an indispensable tool in such modern and important fields as Statistics and Machine Learning. In this course we will concentrate on providing the working knowledge of basics of probability and a good intuition in this area. The practice shows that such an intuition is not easy to develop. In the end of the course we will create a program that successfully plays a tricky and very counterintuitive dice game. As prerequisites we assume only basic math (e.g., we expect you to know what is a square or how to add fractions), basic programming in python (functions, loops, recursion), common sense and curiosity. Our intended audience are all people that work or plan to work in IT, starting from motivated high school students.