Back to Courses

Algorithms Courses

Showing results 1-10 of 326
Computer Vision Basics
By the end of this course, learners will understand what computer vision is, as well as its mission of making computers see and interpret the world as humans do, by learning core concepts of the field and receiving an introduction to human vision capabilities. They are equipped to identify some key application areas of computer vision and understand the digital imaging process. The course covers crucial elements that enable computer vision: digital signal processing, neuroscience and artificial intelligence. Topics include color, light and image formation; early, mid- and high-level vision; and mathematics essential for computer vision. Learners will be able to apply mathematical techniques to complete computer vision tasks. This course is ideal for anyone curious about or interested in exploring the concepts of computer vision. It is also useful for those who desire a refresher course in mathematical concepts of computer vision. Learners should have basic programming skills and experience (understanding of for loops, if/else statements), specifically in MATLAB (Mathworks provides the basics here: https://www.mathworks.com/learn/tutorials/matlab-onramp.html). Learners should also be familiar with the following: basic linear algebra (matrix vector operations and notation), 3D co-ordinate systems and transformations, basic calculus (derivatives and integration) and basic probability (random variables). Material includes online lectures, videos, demos, hands-on exercises, project work, readings and discussions. Learners gain experience writing computer vision programs through online labs using MATLAB* and supporting toolboxes. * A free license to install MATLAB for the duration of the course is available from MathWorks.
VLSI CAD Part II: Layout
You should complete the VLSI CAD Part I: Logic course before beginning this course. A modern VLSI chip is a remarkably complex beast: billions of transistors, millions of logic gates deployed for computation and control, big blocks of memory, embedded blocks of pre-designed functions designed by third parties (called “intellectual property” or IP blocks). How do people manage to design these complicated chips? Answer: a sequence of computer aided design (CAD) tools takes an abstract description of the chip, and refines it step-wise to a final design. This class focuses on the major design tools used in the creation of an Application Specific Integrated Circuit (ASIC) or System on Chip (SoC) design. Our focus in this part of the course is on the key logical and geometric representations that make it possible to map from logic to layout, and in particular, to place, route, and evaluate the timing of large logic networks. Our goal is for students to understand how the tools themselves work, at the level of their fundamental algorithms and data structures. Topics covered will include: technology mapping, timing analysis, and ASIC placement and routing. Recommended Background: Programming experience (C, C++, Java, Python, etc.) and basic knowledge of data structures and algorithms (especially recursive algorithms). An understanding of basic digital design: Boolean algebra, Kmaps, gates and flip flops, finite state machine design. Linear algebra and calculus at the level of a junior or senior in engineering. Elementary knowledge of RC linear circuits (at the level of an introductory physics class).
Molecular Evolution (Bioinformatics IV)
In the previous course in the Specialization, we learned how to compare genes, proteins, and genomes. One way we can use these methods is in order to construct a "Tree of Life" showing how a large collection of related organisms have evolved over time. In the first half of the course, we will discuss approaches for evolutionary tree construction that have been the subject of some of the most cited scientific papers of all time, and show how they can resolve quandaries from finding the origin of a deadly virus to locating the birthplace of modern humans. In the second half of the course, we will shift gears and examine the old claim that birds evolved from dinosaurs. How can we prove this? In particular, we will examine a result that claimed that peptides harvested from a T. rex fossil closely matched peptides found in chickens. In particular, we will use methods from computational proteomics to ask how we could assess whether this result is valid or due to some form of contamination. Finally, you will learn how to apply popular bioinformatics software tools to reconstruct an evolutionary tree of ebolaviruses and identify the source of the recent Ebola epidemic that caused global headlines.
Introduction to Deep Learning & Neural Networks with Keras
Looking to start a career in Deep Learning? Look no further. This course will introduce you to the field of deep learning and help you answer many questions that people are asking nowadays, like what is deep learning, and how do deep learning models compare to artificial neural networks? You will learn about the different deep learning models and build your first deep learning model using the Keras library. After completing this course, learners will be able to: • Describe what a neural network is, what a deep learning model is, and the difference between them. • Demonstrate an understanding of unsupervised deep learning models such as autoencoders and restricted Boltzmann machines. • Demonstrate an understanding of supervised deep learning models such as convolutional neural networks and recurrent networks. • Build deep learning models and networks using the Keras library.
Process Map Data using C++ Adjacency List Shortest Path
In this project you will use the adjacency list data structure and other data structures to find the shortest distance between a set of towns loaded from a file. The shortest path problem is well known in the field of computer science. An adjacency list is probably the best data structure to represent a set of connected vertices to find the shortest path from one vertex to another. One application for shortest paths is in computer networking routing. Another common application for its use is on a Map, where it is useful to find the shortest distance from one town to another. 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.
Build a Modern Computer from First Principles: From Nand to Tetris (Project-Centered Course)
What you’ll achieve: In this project-centered course* you will build a modern computer system, from the ground up. We’ll divide this fascinating journey into six hands-on projects that will take you from constructing elementary logic gates all the way through creating a fully functioning general purpose computer. In the process, you will learn - in the most direct and constructive way - how computers work, and how they are designed. What you’ll need: This is a self-contained course: all the knowledge necessary to succeed in the course and build the computer system will be given as part of the learning experience. Therefore, we assume no previous computer science or engineering knowledge, and all learners are welcome aboard. You will need no physical materials, since you will build the computer on your own PC, using a software-based hardware simulator, just like real computers are designed by computer engineers in the field. The hardware simulator, as well as other software tools, will be supplied freely after you enroll in the course. Course format: The course consists of six modules, each comprising a series of video lectures, and a project. You will need about 2-3 hours to watch each module's lectures, and about 5-10 hours to complete each one of the six projects. The course can be completed in six weeks, but you are welcome to take it at your own pace. You can watch a TED talk about this course by Googling "nand2tetris TED talk". *About Project-Centered Courses: Project-centered courses are designed to help you complete a personally meaningful real-world project, with your instructor and a community of learners with similar goals providing guidance and suggestions along the way. By actively applying new concepts as you learn, you’ll master the course content more efficiently; you’ll also get a head start on using the skills you gain to make positive changes in your life and career. When you complete the course, you’ll have a finished project that you’ll be proud to use and share.
Build a Guessing Game Application using Java
In this project you will create a guessing game application that pits the computer against the user. You will create variables, static methods, decision constructs, and loops in Java to create the game. Learning Java gives the programmer a wide variety of career paths to choose from. Java was once the property of Sun Microsystems but is now an open-source (free) programming language that is used in web programming, mobile applications, and many desktop applications. Java is a natural choice for object-oriented programming as it contains many existing classes for the programmer to use from its feature-rich API. In addition, Java is truly cross-platform, which means it can be compiled on a Windows system and executed on a Mac or Linux system. Java contains a built-in garbage collector that removes objects no longer needed in the application which reduces memory leak issues. 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.
Ethics of Artificial Intelligence
This course deals with the problems created, aggravated or transformed by AI. It is intended to give students a chance to reflect on the ethical, social, and cultural impact of AI by focusing on the issues faced by and brought about by professionals in AI but also by citizens, institutions and societies. The course addresses these topics by means of case studies and examples analyzed in the light of the main ethical frameworks.
Advanced Deep Learning Methods for Healthcare
This course covers deep learning (DL) methods, healthcare data and applications using DL methods. The courses include activities such as video lectures, self guided programming labs, homework assignments (both written and programming), and a large project. The first phase of the course will include video lectures on different DL and health applications topics, self-guided labs and multiple homework assignments. In this phase, you will build up your knowledge and experience in developing practical deep learning models on healthcare data. The second phase of the course will be a large project that can lead to a technical report and functioning demo of the deep learning models for addressing some specific healthcare problems. We expect the best projects can potentially lead to scientific publications.
Creating a Virtual Bookstore using Java Basics
In this 1-hour 30-minutes long project-based course, you will learn how to (identify different data types in java, conditional statements , scanner input & iteration loops). Through the virtual book store project you can choose the book you want from the preferred genre and the best price range that suits you. By first an interactive menu appear to the user to enter his preferred genre of the book( crime, drama), then another menu appear when he enters his genre preference, to choose his price range ( cheap , expensive ). Then another menu appear showing him the option that he can buy per his choice of genre and price range. Note: This project works best for learners who are based in the North America region. We’re currently working on providing the same experience in other regions.