Back to Courses

Algorithms Courses - Page 27

Showing results 261-270 of 326
The Blockchain System
Learn how the blockchain authenticates transactions and distributes data to peers — nodes connected to the network. This course shows you how multiple versions of a blockchain are reconciled into one, discusses blockchain limitations, and delves into organizational applications of blockchain technology. 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)
Discrete Mathematics
Discrete mathematics forms the mathematical foundation of computer and information science. It is also a fascinating subject in itself. Learners will become familiar with a broad range of mathematical objects like sets, functions, relations, graphs, that are omnipresent in computer science. Perhaps more importantly, they will reach a certain level of mathematical maturity - being able to understand formal statements and their proofs; coming up with rigorous proofs themselves; and coming up with interesting results. This course attempts to be rigorous without being overly formal. This means, for every concept we introduce we will show at least one interesting and non-trivial result and give a full proof. However, we will do so without too much formal notation, employing examples and figures whenever possible. The main topics of this course are (1) sets, functions, relations, (2) enumerative combinatorics, (3) graph theory, (4) network flow and matchings. It does not cover modular arithmetic, algebra, and logic, since these topics have a slightly different flavor and because there are already several courses on Coursera specifically on these topics.
Approximation Algorithms
Many real-world algorithmic problems cannot be solved efficiently using traditional algorithmic tools, for example because the problems are NP-hard. The goal of this course is to become familiar with important algorithmic concepts and techniques needed to effectively deal with such problems. These techniques apply when we don't require the optimal solution to certain problems, but an approximation that is close to the optimal solution. We will see how to efficiently find such approximations. Prerequisites: In order to successfully take this course, you should already have a basic knowledge of algorithms and mathematics. Here's a short list of what you are supposed to know: - O-notation, Ω-notation, Θ-notation; how to analyze algorithms - Basic calculus: manipulating summations, solving recurrences, working with logarithms, etc. - Basic probability theory: events, probability distributions, random variables, expected values etc. - Basic data structures: linked lists, stacks, queues, heaps - (Balanced) binary search trees - Basic sorting algorithms, for example MergeSort, InsertionSort, QuickSort - Graph terminology, representations of graphs (adjacency lists and adjacency matrix), basic graph algorithms (BFS, DFS, topological sort, shortest paths) The material for this course is based on the course notes that can be found under the resources tab. We will not cover everything from the course notes. The course notes are there both for students who did not fully understand the lectures as well as for students who would like to dive deeper into the topics. The video lectures contain a few very minor mistakes. A list of these mistakes can be found under resources (in the document called "Errata"). If you think you found an error, report a problem by clicking the square flag at the bottom of the lecture or quiz where you found the error.
Chicken Invaders Game in Python using Pygame
In this 1-hour long project-based course, you will learn how to create a fully functioning chicken invaders game using Pygame. Throughout the project, you will be able to build the game using the pygame module, interact with other modules, and finally, you will be able to identify and use many of python’s components. Python is one of the most used languages in the world, and by the end of this project, you will be able to use and apply most of the functions in the pygame module which will help you build your next game. 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.
Agent-based Generative Art | NetLogo
"Generative art refers to any art practice where the artist creates a process, such as a computer program, which is then set into motion with some degree of autonomy contributing to or resulting in a completed work of art." - Wikipedia In this guided project you will develop an agent-based computer program capable of generating visual art pieces. By doing so you will be introduced to the basics of ABM and NetLogo. Furthermore, at the end of this journey you will be able to share such pieces with the world.
Computer Science: Algorithms, Theory, and Machines
This course introduces the broader discipline of computer science to people having basic familiarity with Java programming. It covers the second half of our book Computer Science: An Interdisciplinary Approach (the first half is covered in our Coursera course Computer Science: Programming with a Purpose, to be released in the fall of 2018). Our intent is to demystify computation and to build awareness about the substantial intellectual underpinnings and rich history of the field of computer science. First, we introduce classic algorithms along with scientific techniques for evaluating performance, in the context of modern applications. Next, we introduce classic theoretical models that allow us to address fundamental questions about computation, such as computability, universality, and intractability. We conclude with machine architecture (including machine-language programming and its relationship to coding in Java) and logic design (including a full CPU design built from the ground up). The course emphasizes the relationships between applications programming, the theory of computation, real computers, and the field's history and evolution, including the nature of the contributions of Boole, Shannon, Turing, von Neumann, and others. All the features of this course are available for free. No certificate will be offered upon completion.
Create a C Program using DevC++ to Demonstrate Scope
By the end of this project you will implement a program using C that demonstrates the notion of scope and its effect on variables. The C programming language is the basis for many other programming languages. Its syntax has been used in languages such as C++, Java, and C# to name a few. All of these languages utilize scope to control access to variables, so it is an important concept to grasp. C is still the language of choice for writing Operating systems, games, and many other applications where performance is critical. 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, Train, and Deploy ML Pipelines using BERT
In the second course of the Practical Data Science Specialization, you will learn to automate a natural language processing task by building an end-to-end machine learning pipeline using Hugging Face’s highly-optimized implementation of the state-of-the-art BERT algorithm with Amazon SageMaker Pipelines. Your pipeline will first transform the dataset into BERT-readable features and store the features in the Amazon SageMaker Feature Store. It will then fine-tune a text classification model to the dataset using a Hugging Face pre-trained model, which has learned to understand the human language from millions of Wikipedia documents. Finally, your pipeline will evaluate the model’s accuracy and only deploy the model if the accuracy exceeds a given threshold. Practical data science is geared towards handling massive datasets that do not fit in your local hardware and could originate from multiple sources. One of the biggest benefits of developing and running data science projects in the cloud is the agility and elasticity that the cloud offers to scale up and out at a minimum cost. The Practical Data Science Specialization helps you develop the practical skills to effectively deploy your data science projects and overcome challenges at each step of the ML workflow using Amazon SageMaker. This Specialization is designed for data-focused developers, scientists, and analysts familiar with the Python and SQL programming languages and want to learn how to build, train, and deploy scalable, end-to-end ML pipelines - both automated and human-in-the-loop - in the AWS cloud.
C++ Decision Programming
In this project you will create an application that yields a zodiac sign based on an input of birth month and day. The process of making decisions is fundamental in programming, just as it is in real life. A pre-existing condition is evaluated, and a decision is made based on the evaluation. For example, if it is cold outside, a person chooses to wear a coat. If a temperature sensor exceeds a certain threshold, the furnace turns off. In C++, as in other programming languages, a decision construct is used to control the sequence of instructions that are executed under certain conditions. It allows the programmer the power to take certain action based on various input conditions. For example, a grading program will need to assign a certain grade based on a test score. 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.
Introduction to Python Programming
This course provides an introduction to programming and the Python language. Students are introduced to core programming concepts like data structures, conditionals, loops, variables, and functions. This course includes an overview of the various tools available for writing and running Python, and gets students coding quickly. It also provides hands-on coding exercises using commonly used data structures, writing custom functions, and reading and writing to files. This course may be more robust than some other introductory python courses, as it delves deeper into certain essential programming topics.