Online courses directory (19947)
In the 21st century, embedded systems are the systems of future with cellular phones, smart-phones, tablets becoming the dominant platforms for computing and communication. The ubiquity of information and the associated need for the computation that accompanies it is driving this revolution only to be accelerated by the new paradigms such as the Internet-of-Things (IoT). These platforms are clearly very different in terms of their processing requirements which are very unique: real-time needs, high performance but at low energy, compact-code and data segments, and most importantly ever changing software stack. Such unique requirements have led to a complete redesign and reinvention of the both hardware and the software stack from ground up, for example, brand new processors such as ARM, DSPs, network processors were invented all the way up to new virtual machines such as Dalvik, new operating systems such as Android and new programming models and compiler optimizations.
This class is offered as CS6460 at Georgia Tech where it is a part of the [Online Masters Degree (OMS)](http://www.omscs.gatech.edu/). Credit for taking this course is conferred only on those that enroll in the degree. The text in the following sections comes from the syllabus for CS6460, located [here](https://www.udacity.com/wiki/ud915). This class is simultaneously an introductory course about educational technology and an advanced, project-oriented class on designing or researching technology's intersection with education. As such, the course provides information about a large number of topics within educational technology, including pedagogical strategies, research methodologies, current tools, open problems, and broader issues. The scope of the material provided goes beyond what any one person could reasonably learn in a semester. Instead, you will select those areas that appeal to you or that support your ultimate project ideas. For example, if you're interested in research, you may focus on the applicable research methodologies to your chosen area of investigation, relevant pedagogical strategies or theories, and the current state-of-the-art within that community. If you're interested in design, you may focus on the relevant pedagogical strategies or theories for your chosen domain, the current popular tools within that domain, and open problems that need to be addressed.
In this course, you’ll begin learning Swift, Apple's programming language for building iOS applications. You'll start with fundamentals and work your way towards understanding all the core principles necessary to get started creating your first app. At the end of the course, you'll complete a problem set of exercises designed to challenge your understanding of Swift and give you the opportunity to apply what you've learned.
This course offers a quick practical introduction to Swift basics, including types, variables, constants, and functions. It combines syntax exercises with hands-on iOS development in Xcode. By the end of the course students will build their first iOS app, an app that creates and displays song lyrics customized to user input.
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.
'2D Game Development with libGDX' explored the basics of the libGDX game framework, from simple drawing to user input. This course will use those skills to create a much more sophisticated platforming game called GigaGal. In creating GigaGal, you'll learn about sprite drawing, keeping track of complex game state, controlling interactions between game entities, and also how to load and manage level data.
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.
In this course you'll learn the basic Linux fundamentals every web developer needs to know to share their web applications with the world! You'll get a basic Python WSGI application up and running within a Vagrant virtual machine that queries data from a PostgreSQL database. You'll start by exploring various Linux distributions and learning the differences between a number of them. You'll then explore how the Linux operating system differs from other operating systems you may be more familiar with. With this base knowledge, you'll then move into Linux security - covering topics such as file permissions, user management, package management and configuring firewalls. Finally, you'll transform a safe and secure baseline server into a web application server by installing and configuring the Apache HTTP Server and PostgreSQL database server.
Go where your users are: the living room! With Google Cast and Android TV, you can add a big screen and cinematic experience to your app. This course shows you how to extend your existing Android app to work on Android TV and Google Cast. You can take advantage of both technologies without having to rewrite your app. This course is part of the Ubiquitous Computing series. Designed as standalone short courses, you can take any course on its own, or take them all! * Android Wear Development * **Android TV and Google Cast Development** [this course] * Android Auto Development
Here is one important question Android developers ask while making apps: "How can I do ________ in Android?" The following are versions of this question that we came across recently: - How can I add radio buttons to my app? - How can I play a sound? - How can I navigate between multiple screens? This course is a collection of such questions and their answers. By the end of this course you will have mastered the ability to implement new Android features by reading a blog or article — this is a critical skill possessed by professional Android developers. As a result, you will also be able to use several User Interface components — like Toggle Buttons, Menus, Grid View and many more — that are central to making functional and delightful Android apps.
Learn the fundamentals of JavaScript, the most popular programming language in web development.
Get started writing Python with this introductory course.
Learn about the fundamentals of Artificial Intelligence in this introductory graduate-level course. It provides a survey of various topics in the field along with in-depth discussion of foundational concepts such as classical search, probability, machine learning, logic and planning.
This course is an introductory course on human-computer interaction, covering the principles, techniques, and open areas of development in HCI.
The goal of this course is to take existing IT professionals, whether they come from software development or operations, and help them appreciate the challenges facing companies who are looking to embrace scalable software deployment as well as the architectures and thought processes they can use to address these challenges. Students will start with a presentation of the problem as it stands today, then dive into the DevOps workflow and a survey of the system architectures currently being used to address this problem.
The goal of this course is to give you solid foundations for developing, analyzing, and implementing parallel and locality-efficient algorithms. This course focuses on theoretical underpinnings. To give a practical feeling for how algorithms map to and behave on real systems, we will supplement algorithmic theory with hands-on exercises on modern HPC systems, such as Cilk Plus or OpenMP on shared memory nodes, CUDA for graphics co-processors (GPUs), and MPI and PGAS models for distributed memory systems. This course is a graduate-level introduction to scalable parallel algorithms. “Scale” really refers to two things: efficient as the problem size grows, and efficient as the system size (measured in numbers of cores or compute nodes) grows. To really scale your algorithm in both of these senses, you need to be smart about reducing asymptotic complexity the way you’ve done for sequential algorithms since CS 101; but you also need to think about reducing communication and data movement. This course is about the basic algorithmic techniques you’ll need to do so. The techniques you’ll encounter covers the main algorithm design and analysis ideas for three major classes of machines: for multicore and many core shared memory machines, via the work-span model; for distributed memory machines like clusters and supercomputers, via network models; and for sequential or parallel machines with deep memory hierarchies (e.g., caches). You will see these techniques applied to fundamental problems, like sorting, search on trees and graphs, and linear algebra, among others. The practical aspect of this course is implementing the algorithms and techniques you’ll learn to run on real parallel and distributed systems, so you can check whether what appears to work well in theory also translates into practice. (Programming models you’ll use include Cilk Plus, OpenMP, and MPI, and possibly others.)
In this course, you’ll learn how to use Firebase from the experts at Google. Firebase is an app development platform that provides developers with a variety of tools and a scalable infrastructure so that you can quickly build high quality apps. In this course, you’ll build FriendlyChat, a realtime text and picture chat application. To start, you’ll see how easy it is to read and write data to Firebase. After that, you’ll learn how to let users login with their email or Google account. You’ll then learn how to use Firebase’s Security and Rules language to secure and add permissions to your data. In the second lesson, you’ll learn about Firebase Storage, which lets users upload content from their devices. Then you’ll have a brief overview of Firebase Analytics so you can analyze app usage data to make decision about your app. Following that, you’ll explore Firebase Notifications, which allow you to send notifications to customized segments of users. Finally, you’ll dive into Firebase Remote Config, which gives you the ability to tune and customize your app without having to publish a new version. By the end of this course you will have an Android application that can store and share data between different users in realtime as well as authenticate and authorize those users.
This course provides an introduction to security issues relating to various cyber-physical systems including industrial control systems and those considered critical infrastructure systems.
The objective of this course is to learn the theory and practice behind building automatic translators (compilers) for higher level programming languages and to engineer and build key phases of a compiler in Java or C++ for a small language.
This course presents an example of applying a database application development methodology to a major real-world project.
Trusted paper writing service WriteMyPaper.Today will write the papers of any difficulty.