starstarstarstarstar_half
Tired of solving Sudokus by hand? This class teaches you how to solve complex search problems with discrete optimization concepts and algorithms, including constraint programming, local search, and mixed-integer programming. Optimization technology is ubiquitous in our society. It schedules planes and their crews, coordinates the production of steel, and organizes the transportation of iron ore from the mines to the ports. Optimization clears the day-ahead and real-time markets to deliver electricity to millions of people. It organizes kidney exchanges and cancer treatments and helps scientists understand the fundamental fabric of life, control complex chemical reactions, and design drugs that may benefit billions of individuals. This class is an introduction to discrete optimization and exposes students to some of the most fundamental concepts and algorithms in the field. It covers constraint programming, local search, and mixed-integer programming from their foundations to their applications for complex practical problems in areas such as scheduling, vehicle routing, supply-chain optimization, and resource allocation.
    starstarstarstar_half star_border
    This course represents an introduction to computational geometry – a branch of algorithm theory that aims at solving problems about geometric objects. Its application areas include computer graphics, computer-aided design and geographic information systems, robotics, and many others. You will learn to apply to this end various algorithmic approaches, and asses their strong and weak points in a particular context, thus gaining an ability to choose the most appropriate method for a concrete problem. We will cover a number of core computational geometry tasks, such as testing point inclusion in a polygon, computing the convex hull of a point set, intersecting line segments, triangulating a polygon, and processing orthogonal range queries. Special attention will be paid to a proper representation of geometric primitives and evaluation of geometric predicates, which are crucial for an efficient implementation of an algorithm. Each module includes a selection of programming tasks that will help you both to strengthen the newly acquired knowledge and improve your competitive coding skills.
      star_border star_border star_border star_border star_border
      Apply what you have learned about cryptography and hashing in previous blockchain to the Merkle Tree, which underlies the process of adding new blocks — representing new transactions — to the blockchain. This course also introduces the concepts of proof of work and proof of stake, which play an important part in ensuring the integrity of the blockchain. This course requires the purchase of two books for the completion of assignments: Drescher, D. (2017). Blockchain Basics: A Non-Technical Introduction in 25 Steps. (ISBN-13: 978-1484226032) Antonoupoulos, A. M. (2017). The Internet of Money, Volume Two. (ISBN-13: 978-1947910065)
        starstarstarstarstar_border
        Cloud computing systems today, whether open-source or used inside companies, are built using a common set of core techniques, algorithms, and design philosophies – all centered around distributed systems. Learn about such fundamental distributed computing "concepts" for cloud computing. Some of these concepts include: clouds, MapReduce, key-value/NoSQL stores, classical distributed algorithms, widely-used distributed algorithms, scalability, trending areas, and much, much more! Know how these systems work from the inside out. Get your hands dirty using these concepts with provided homework exercises. In the programming assignments, implement some of these concepts in template code (programs) provided in the C++ programming language. Prior experience with C++ is required. The course also features interviews with leading researchers and managers, from both industry and academia.
          starstarstarstarstar_half
          The primary topics in this part of the specialization are: data structures (heaps, balanced search trees, hash tables, bloom filters), graph primitives (applications of breadth-first and depth-first search, connectivity, shortest paths), and their applications (ranging from deduplication to social network analysis).
            starstarstarstarstar_half
            Updated in November 2018 with brand new section on Dynamic Programming! This course crams months of computer science and interview prep material into 20 hours of video. The content is based directly on last semester of my in-person coding bootcamps , where my students go on to land 6-figure developer jobs . I cover the exact same computer science content that has helped my students ace interviews at huge companies like Google, Tesla, Amazon , and Facebook . Nothing is watered down for an online audience; this is the real deal :)   We start with the basics and then eventually cover “advanced topics” that similar courses shy away from like Heaps, Graphs , and Dijkstra’s Shortest Path Algorithm . I start by teaching you how to analyze your code’s time and space complexity using Big O notation .  We cover the ins and outs of Recursion .  We learn a 5-step approach to solving any difficult coding problem. We cover common programming patterns. We implement popular searching algorithms . We write 6 different sorting algorithms : Bubble, Selection, Insertion, Quick, Merge, and Radix Sort.   Then, we switch gears and implement our own data structures from scratch, including linked lists, trees, heaps, hash tables , and graphs .  We learn to traverse trees and graphs, and cover Dijkstra's Shortest Path Algorithm .  The course also includes an entire section devoted to Dynamic Programming . Here's why this course is worth your time: It's interactive -  I give you a chance to try every problem before I show you my solution. Every single problem has a complete solution walkthrough video as well as accompanying solution file. I cover helpful "tips and tricks" to solve common problems, but we also focus on building an approach to ANY problem. It's full of animations and beautiful diagrams! Are you looking to level-up your developer skills? Sign up today!
              starstarstarstarstar_border
              "Excellent! Thank you for all your hard work." - Mammoth Interactive student Inderpal "Great! Well explained and the instructor provides clear examples" - Mark T. Dive into a world of data science and analysis with a wide range of examples including the CIFAR 100 image dataset, Xcode development for Apple, Swift coding, CoreML, image recognition, and structuring data with pandas. This Mammoth Interactive course was funded by a #1 project on Kickstarter Learn Android Studio, Java, app development, Pycharm, Python coding, Tensforflow and more with Mammoth Interactive. Build advanced projects using machine learning including advanced the MNIST database with neuron functions. Build a text summarizer and learn object localization, object recognition and Tensorboard. Machine learning is a machine’s ability to make decisions or predictions based on previous exposure to data and extensive training. In other words, if a machine (program, app, etc.) improves its prediction accuracy through training then it has “learned”. Learn How Models Work Computational graphs consist of a network of connected nodes (often called neurons). Each of these nodes typically has a weight and a bias that helps determine, given an input, which path is the most likely. There are 4 main components to building a machine learning program: data gathering and formatting, model building, training, and testing and evaluating Data Gathering and Formatting You will learn to gather plenty of data for the model to learn from. All data should be formatted pretty much the same (images same size, same color scheme, etc.) and should be labelled. Also divide data into mutually exclusive training and testing sets. Model Building You will learn to figure out which kind of model scheme works best and what kinds of algorithms work best for the problem you’re trying to solve. Training, Testing and Evaluating The model can choose paths through the neural network or computational graph based upon the inputs for a particular run, as well as the weights and biases of neurons in the network. In supervised learning, we show the model what the correct outputs are for a given set of inputs and the model alters the weights and biases of neurons to minimize the difference between its output and the correct answer. Enroll Now to Learn with Mammoth Interactive
                starstarstarstarstar_half
                Computational thinking is the process of approaching a problem in a systematic manner and creating and expressing a solution such that it can be carried out by a computer. But you don't need to be a computer scientist to think like a computer scientist! In fact, we encourage students from any field of study to take this course. Many quantitative and data-centric problems can be solved using computational thinking and an understanding of computational thinking will give you a foundation for solving problems that have real-world, social impact. In this course, you will learn about the pillars of computational thinking, how computer scientists develop and analyze algorithms, and how solutions can be realized on a computer using the Python programming language. By the end of the course, you will be able to develop an algorithm and express it to the computer by writing a simple Python program. This course will introduce you to people from diverse professions who use computational thinking to solve problems. You will engage with a unique community of analytical thinkers and be encouraged to consider how you can make a positive social impact through computational thinking.
                  starstarstarstarstar_half
                  Programming is an increasingly important skill, whether you aspire to a career in software development, or in other fields. This course is the first in the specialization Introduction to Programming in C, but its lessons extend to any language you might want to learn. This is because programming is fundamentally about figuring out how to solve a class of problems and writing the algorithm, a clear set of steps to solve any problem in its class. This course will introduce you to a powerful problem-solving process—the Seven Steps—which you can use to solve any programming problem. In this course, you will learn how to develop an algorithm, then progress to reading code and understanding how programming concepts relate to algorithms.
                    starstarstarstarstar_half
                    We all learn numbers from the childhood. Some of us like to count, others hate it, but any person uses numbers everyday to buy things, pay for services, estimated time and necessary resources. People have been wondering about numbers’ properties for thousands of years. And for thousands of years it was more or less just a game that was only interesting for pure mathematicians. Famous 20th century mathematician G.H. Hardy once said “The Theory of Numbers has always been regarded as one of the most obviously useless branches of Pure Mathematics”. Just 30 years after his death, an algorithm for encryption of secret messages was developed using achievements of number theory. It was called RSA after the names of its authors, and its implementation is probably the most frequently used computer program in the word nowadays. Without it, nobody would be able to make secure payments over the internet, or even log in securely to e-mail and other personal services. In this short course, we will make the whole journey from the foundation to RSA in 4 weeks. By the end, you will be able to apply the basics of the number theory to encrypt and decrypt messages, and to break the code if one applies RSA carelessly. You will even pass a cryptographic quest! 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. Do you have technical problems? Write to us: [email protected]