Online courses directory (197)
This class teaches you about basic concepts in theoretical computer science -- such as NP-completeness -- and what they imply for solving tough algorithmic problems.
This course provides an introduction to computer vision including fundamentals of image formation, camera imaging geometry, feature detection and matching, multiview geometry including stereo, motion estimation and tracking, and classification. We’ll develop basic methods for applications that include finding known models in images, depth recovery from stereo, camera calibration, image stabilization, automated alignment (e.g. panoramas), tracking, and action recognition. We focus less on the machine learning aspect of CV as that is really classification theory best learned in an ML course. The focus of the course is to develop the intuitions and mathematics of the methods in lecture, and then to learn about the difference between theory and practice in the problem sets. All algorithms work perfectly in the slides. But remember what [Yogi Berra](http://yogiberramuseum.org/just-for-fun/yogisms/) said: In theory there is no difference between theory and practice. In practice there is. (Einstein said something similar but who knows more about real life?) In this course you do not, for the most part, apply high-level library functions but use low to mid level algorithms to analyze images and extract structural information.
This is a survey course designed to provide a broad, forward-facing overview of contemporary health informatics, a specialized field of computing that seeks to improve the quality and efficiency of healthcare delivery. To understand health informatics (HIT) you also need to have at least a basic understanding of the complex and highly regulated US healthcare industry. The course is designed for students from diverse backgrounds and who have not been previously exposed to HIT. It is divided into three sections: 1. The US healthcare delivery and the key role of the federal government in promoting HIT adoption 2. The core technologies that drive all contemporary HIT systems and tools 3. The real world applications of HIT from electronic medical and personal health records to exploiting digital data aggregated from them for research and other purposes
Introduction to Operating Systems is a graduate-level introductory course in operating systems. This course teaches the basic operating system abstractions, mechanisms, and their implementations. The core of the course contains concurrent programming (threads and synchronization), inter process communication, and an introduction to distributed operating systems. The course is split into four sections: (1) Introduction, (2) Process and Thread Management, (3) Resource Management and Communication, and (4) Distributed Systems.
Get started writing Python with this introductory course.
This course is designed for students who are new to virtual reality and want to learn about the principles of VR technology including optics, displays, stereopsis, tracking, and major hardware platforms. You don’t need any programming experience to get started. By the end of this course, you will have created and deployed a VR application. You will understand the physical principles of VR and you will use that knowledge to create a comfortable, high-performance VR application using Unity.
In this course, you'll explore popular iOS design patterns — the practical and battle-tested solutions to common problems that are used everyday by professional developers. You'll take a look at architectures and mechanisms that are used for constructing large, complex apps. And, by the end of this course, you'll have accumulated a reliable toolset of patterns that you can apply to your own projects.
In this course, you’ll learn how to incorporate networking into your apps, so they can access data from around the world. You’ll learn how to harness the power of APIs to display images and retrieve movie data. At the end of the course, you’ll build the “On the Map” app which allows you to share interesting links, projects, or other information with fellow Udacity students.
Persisting data is a core skill for any iOS developer. This course will teach you three techniques for storing data to your device’s hard drive: NSUserPreferences for small amounts of data, the Sandbox for files and Core Data when you have to play in the Big Leagues!
Taking this course will provide you with a basic foundation in Java syntax, which is the first step towards becoming a successful Java developer. You’ll learn how computers make decisions and how Java keeps track of information through variables and data types. You’ll learn to create conditional statements, functions, and loops to process information and solve problems. You’ll even learn to use IntelliJ, a Java IDE (Integrated Development Environment) that professional developers use, to build, compile, and debug your code. These are foundational programming skills, and mastering them is a must for all aspiring programmers.
We're here to help you get you started with JavaScript! In the twenty plus years since its inception, JavaScript has become the _lingua franca_ of the web, that's to say, it's become the main tool to create interactive content on the Internet. In this course, you'll explore the JavaScript programming language by creating an interactive version of your résumé. You’ll learn the JavaScript programming fundamentals you need while building new elements and sections to enhance your résumé. This course is also a part of our Front-End Web Developer Nanodegree.
This course covers methods for organizing your code, both conceptually and literally. You’ll learn the importance of separating concerns when writing JavaScript, gaining hands-on experience along the way. Separating concerns can be done with or without an organizational library or framework. We’ll learn how to separate concerns without one, and then we’ll explore an organizational library together. You’ll also learn strategies for exploring other libraries and frameworks on your own. By the end of this course, you’ll understand (from experience) the importance of code organization, and how to implement it with either vanilla JavaScript or an organizational library or framework. Your applications will start looking clean and professional—not just to your users, but also to anyone who looks at the code driving your applications.
Learn how to handle asynchronous work with ease! In this course, you'll use Native JavaScript Promises to write asynchronous code that is easy to read, easy to write and easy to debug. Along the way, you'll be using Promises to make a webapp come to life!
In this course you'll learn how to write JavaScript applications with confidence, using the red-green-refactor workflow. You'll write comprehensive suites of tests that validate your application is functioning as intended at all times. You'll start by exploring how other industries use a variety of tests and the value it provides. You'll then start writing your very own tests, using the Jasmine testing framework. Finally, you'll start developing your very own address book application using the red-green-refactor workflow and explore a variety of scenarios including testing asynchronous functions.
This class is offered as CS7637 at Georgia Tech where it is a part of the [Online Masters Degree (OMS)](http://www.omscs.gatech.edu/). Taking this course here will not earn credit towards the OMS degree. This is a core course in artificial intelligence. It is designed to be a challenging course, involving significant independent work, readings, assignments, and projects. It covers structured knowledge representations, as well as knowledge-based methods of problem solving, planning, decision-making, and learning. The class is organized around three primary learning goals. First, this class teaches the concepts, methods, and prominent issues in knowledge-based artificial intelligence. Second, it teaches the specific skills and abilities needed to apply those concepts to the design of knowledge-based AI agents. Third, it teaches the relationship between knowledge-based artificial intelligence and the study of human cognition.
This course is a collection of resources designed to introduce you to Backbone, a common organizational library for front-end web applications. By the end of this course, you’ll know how to write well organized web applications using the Backbone framework. You’ll also make use of the Local Storage API or a service like Firebase to support persistent data storage across user sessions.
Swift is a language created by Apple specifically for iOS and OS X development. It’s fast, concise, and comes with tools which make it easier than ever to visualize one's code. This course focuses on the syntax of the Swift programming language. By the end of the course, students should be able to apply Swift essentials to building iOS apps and employ Swift's more unique elements, like optional types and switch statements, with confidence.
This mini-course is intended for students who would like a refresher on the basics of linear algebra. The course attempts to provide the motivation for "why" linear algebra is important in addition to "what" linear algebra is. Students will learn concepts in linear algebra by applying them in computer programs. At the end of the course, you will have coded your own personal library of linear algebra functions that you can use to solve real-world problems.
We have built this course for beginners who have no experience with the Linux system and the command-line interface. In this course, you'll learn the basics of the command line interface of a Linux server: the terminal and shell (GNU Bash). This course includes an introduction to files and directories in the Linux filesystem.
So, what is localization? In the world of information technology, localization means translating and adapting a product or service to a particular language, culture, and geographic market. There are two main aspects to localization. The first one is stylistic: You have to make sure the language tone you use is appropriate for each local culture. There’s also a technical aspect: You may have to make changes to things like date and time formats, alphabetization, or even the direction of reading, to make them appropriate for the language you’re localizing into. So localization means more than just translating a message or text, it’s about making a whole product feel tailored to users everywhere. This need for localized content has made the language industry the 4th fastest growing industry in the world with a global size of an estimated $40 billion. More people across the globe are coming online, and they need to be able to use technology in a language they understand. That’s what localization is all about.
Trusted paper writing service WriteMyPaper.Today will write the papers of any difficulty.