Courses tagged with "Computer Science" (27)
Have you ever wondered how information is transmitted using your mobile phone or a WiFi hotspot? This introductory course seeks to enable you to understand the basic engineering tools used and tradeoffs encountered in the design of these communication systems.
This course is divided into three parts. In Part 1, we examine the point-to-point link, which communicates information from a single transmitter to a single receiver. Part 2 examines how multiple transmitters can share the same physical channel. Part 3 discusses how information can be transmitted reliably from one station to another over a network that connects multiple stations. Online interactive exercises are included to help build your intuition.
This course was inspired by and built upon the course 6.02 Digital Communication Systems developed at MIT, which Prof Bertram Shi worked on during his sabbatical in 2009.
This course is designed for students who are new to programming, and want to learn how to develop Android apps. You’ll learn how to create an Android project with Android Studio and run a debuggable version of the app. You'll also learn some Android architecture and the key principles underlying its design. You will gain an understanding of the processes that are involved in an Android developed application and you will become familiar with Android development tools and user interface. By the end of the course, you’ll build two simple apps that you can share with your friends.
Our Android course is taught by a group of Google developer experts who create innovative mobile apps.
This course is part of the GalileoX Android Developer MicroMasters Program and is specifically designed to teach the critical skills needed to be successful in this exciting field and to prepare you to take the Google Associate Android Developer Certification exam. To qualify for the MicroMasters Credential you will need to earn a Verified Certificate in each of the four courses as well as a Final Project.
This computer science course covers advanced OOP strategies, including polymorphism, abstract classes, super keyword, exceptions, generics, sorting and searching algorithms.
This course is for anyone interested in taking a first-level computer-programming course, particularly those who attend a school that does not provide a similar class.
We are looking forward to helping you explore this exciting new world!
Our lives are full of combinations. Combinatorial mathematics is just the science to deal with combinations of discrete items. As an ancient field, the history of combinatorial mathematics can be traced back over 4000 years to the age of the Great Yu in ancient China. Today, combinatorial mathematics is regarded as the basis of computer science since the algorithms in programming heavily rely on the analysis of the discrete elements.
Instead of relying on the traditional mathematical "theorem - proof" format, this course demonstrates various principles in an intuitive manner with ancient stories, the scenes of movies and even a magic show. What you’ll learn:
- The counting principles based on the basic operations “+”, “-”, “*”, “/”;
- Generating functions
- Recurrent number serials such as Fibonacci number, Catalan number, and more
- Pigeon hole principles
- Inclusion and exclusion principles
- Polya counting based on group theory
This course is based on a highly regarded on-campus Tsinghua class called Combinatorics, and is ideal for students who are interested in mathematics or computer science. Enroll today and learn the mathematical theory needed to solve the real-world problems!
I don’t speak Chinese, can I learn the course?
All the materials are in English. Though the original video was recorded in Chinese, the course team record the corresponding dubbing in English. All the audio and subtitles are processed to fit the English dubbing as much as possible, so that you can enjoy this wonderful course in English.
What are the textbook and the reference books for this course?
There is no textbook requirement for this course. The handouts distributed every week are critical. The following books are references
- Richard A. Brualdi; Introductory Combinatorics (5th edition), Pearson, 2009
- J.H.van Lint and R.M. Wilson; A course in Combinatorics, Cambridge University Press, 2001
What is the grading breakdown?
- 70% quizzes and exercises
- 30% final exam
How can I get the certificate?
If your final score is no less than 60.
Do I need to know how to program to learn this class?
Not necessary. This course is a math course which is based on fundamental theory. But to help the students to have the intuitive feel of the effects of the theory, we also provide a code lib that you can compare different implementations by running different programs.
Digital systems are at the heart of the information age in which we live, allowing us to store, communicate and manipulate information quickly and reliably. This computer science course is a bottom-up exploration of the abstractions, principles, and techniques used in the design of digital and computer systems. If you have a rudimentary knowledge of electricity and some exposure to programming, roll up your sleeves, join in and design a computer system!
This is Part 3 of a 3-part series on digital systems, providing an introduction to the hardware/software interface and is based on a course offered by the MIT Department of Electrical Engineering and Computer Science. Topics include pipelined computers, virtual memories, implementation of a simple time-sharing operating system, interrupts and real-time, and techniques for parallel processing.
Using your browser for design entry and simulation, you’ll optimize your processor design from Part 2 for size and speed, and make additions to a simple time-sharing operating system.
"Out of the many edX courses I have taken, the first two parts of 6.004x were clearly the best. I am looking forward to the third part.” -- Previous Student
Are you tired of hearing that your computer has a virus? Or that your email account has been hacked? Now, is the time for you to protect yourself by understanding the basics of cyber security.
This computer science course presents an introduction to cyber security showing different aspects of this discipline. You will learn what the main existing cyber security threats are and how to protect yourself against them. The course presents a practical approach in which all required material will be provided to allow you to better understand attacks and establish appropriate countermeasures.
Taught by instructors with years of experience in the field of computer security, this course will pave the way to the security area of IT-related professions.
In this introduction to the field of computing security, you will be given an extensive overview of the various branches of computing security. You will learn cybersecurity concepts, issues, and tools that are critical in solving problems in the computing security domain.
You will have opportunities to learn essential techniques in protecting systems and network infrastructures, analyzing and monitoring potential threats and attacks, devising and implementing security solutions for organizations large or small.
This offering is part of the RITx Cybersecurity MicroMasters Program that prepares students to enter and advance in the field of computing security.
Despite the large volume of data mining papers and tutorials available on the web, aspiring data scientists find it surprisingly difficult to locate an overview that blends clarity, technical depth and breadth with enough amusement to make big data analytics engaging. This course does just that.
Each module starts with an interesting real-world example that gives rise to the specific research question of interest.
Students are then presented with a general idea of how to tackle this problem along with some intuitive and straightforward approaches.
Finally, a number of representative algorithms are introduced along with concrete examples that show how they function in practice.
While theoretical analysis sometimes overcomplicates things for students, here it’s applied to help them better understand the key features of the techniques.
As a data pro, you know that some scenarios—particularly those involving real-time analytics, site personalization, IoT, and mobile apps—are better addressed with NoSQL storage and compute solutions than they are with relational databases. Microsoft Azure has several NoSQL (or “Not Only SQL”) non-relational data storage options to choose from. NoSQL databases are generally built to be distributed and partitioned across many servers. And they’re built to scale out for high availability and to be flexible enough to handle semi-structured and unstructured data. If you have a data model that is constantly evolving and you want to move fast, that’s what these databases are about.
In this practical course, complete with labs, assessments, and a final exam, join the experts to learn how NoSQL has evolved over time. Explore non-relational data storage options in Azure, and see how to use them in your applications. Find out how to create, store, manage, and access data in these different storage options. Get an in-depth look at Azure Table Storage, DocumentDB, MongoDB, and more. Learn about the “three Vs”—variety (schemas or scenarios that evolve quickly), volume (scale in terms of data storage), and velocity (throughput needs to support a large user base). Take this opportunity to get hands-on with NoSQL options in Azure.
When designing systems that work for users, there is no substitute for watching them try to use the system to see what works and what doesn’t.
In this UX course, you will learn how to design and conduct tests with users that will tell you how effective your design is for helping users do what they need to do, and how they feel about using your system.
This course is part of the User Experience (UX) Research and Design MicroMasters Program offered by MichiganX.
Want to be the programmer hot tech companies are looking for?
Take your programming skills to the next level and prove your excellence by learning how to succeed in programming competitions.
Besides improving your knowledge of algorithms and programming languages, you’ll gain unique experience in problem solving, thinking outside the box and meeting tough deadlines – all essential for boosting your value as a programmer and securing a coveted job in Silicon Valley (should you want one).
This computer science course is an introduction to competitive programming developed by ITMO University, the leading expert in IT and the only 6-time world champion of the Association for Computing Machinery - International Collegiate Programming Contest (ACM ICPC), the world's most prestigious programming contest.
You will learn all you need to know about the variety of programming competitions that exist, as well as basic algorithms and data structures necessary to succeed in the most popular of them.
6.00.2x will teach you how to use computation to accomplish a variety of goals and provides you with a brief introduction to a variety of topics in computational problem solving . This course is aimed at students with some prior programming experience in Python and a rudimentary knowledge of computational complexity. You will spend a considerable amount of time writing programs to implement the concepts covered in the course. For example, you will write a program that will simulate a robot vacuum cleaning a room or will model the population dynamics of viruses replicating and drug treatments in a patient's body.
Topics covered include:
- Advanced programming in Python 3
- Knapsack problem, Graphs and graph optimization
- Dynamic programming
- Plotting with the pylab package
- Random walks
- Probability, Distributions
- Monte Carlo simulations
- Curve fitting
- Statistical fallacies
Well organised data structures allow for quick and efficient retrieval of information and are essential for modern computing. Organised data can be easily sorted, ordered, and searched to retrieve information that meets certain requirements.
In Introduction to Data Structures, you’ll learn the fundamentals of creating data structures, and gain exposure to coding and visualising data structures. You’ll explore the importance and impact of well organised data.
You’ll learn how to build a program from small pieces and understand why organisational approaches make such a difference to some very common approaches to solutions.
The course identifies the most important and useful data structures in use in modern programming and each will be presented with exercises for building, visualising, and manipulating that structure. Each exercise embeds a simple and intuitive application for the particular organisation of data that we present. Through the course you will be given a concrete understanding of data structures by writing your own programs to interact with the data structures.
You’ll get the most from this course if you have some understanding of simple programming, and the Foundation week of the course will allow you to test the level of knowledge you require. Learners that have completed the Think. Create. Code. course will have sufficient coding skills to take this course.
Develop a good working knowledge of Linux using both the graphical interface and command line, covering the major Linux distribution families.
Linux powers 94% of the world’s supercomputers, most of the servers powering the Internet, the majority of financial trades worldwide and a billion Android devices. In short, Linux is everywhere. It appears in many different architectures, from mainframes to server to desktop to mobile and on a staggeringly wide variety of hardware.
Moreover, 97 percent of hiring managers reported that they will prioritize hiring Linux talent relative to other skills areas in the next six months, and 44 percent of hiring managers saying they’re more likely to hire a candidate with Linux certification.
This course explores the various tools and techniques commonly used by Linux system administrators and end users to achieve their day-to-day work in a Linux environment. It is designed for experienced computer users who have limited or no previous exposure to Linux, whether they are working in an individual or Enterprise environment.
Upon completion of this training you should have a good working knowledge of Linux, from both a graphical and command line perspective, allowing you to easily navigate through any of the major Linux distributions. You will be able to continue your progress as either a user, system administrator or developer using the acquired skill set.
Join the 250,000+ students who are already enrolled in this course and start your Linux journey.
How do you design a mobile app that truly changes people's lives? How can you understand how a new service is being used, both quantitatively and qualitatively? How can you use all of the rich sensing and I/O capabilities of mobile devices to create experiences that go far beyond what's possible on a traditional computer?
Mobile devices are changing the ways that we interact with each other and information in the world. This course will take you from a domain of interest, through generative research, design, usability, implementation and field evaluation of a novel mobile experience. You'll finish the course with a working, field-tested application suitable for release in the app store as well as a deep understanding of human interaction with mobile devices and services.
Based on a popular MIT class that has been taught since 2006 by Frank Bentley of Yahoo Labs and Ed Barrett, a Senior Lecturer at MIT, this course will explore what makes mobile devices unique. A primary focus will be on studying existing behavior and using key findings for design. While writing the code for an app is a part of the class, the majority of the topics will cover designing and evaluating a unique mobile experience. Along the way, you will have opportunities to share your work with other students from around the world! Java experience (or Objective C for iOS users) and a smartphone are required.
All required readings are available within the courseware, courtesy of The MIT Press. A print version of the course textbook, Building Mobile Experiences, is also available for purchase. The MIT Press is offering enrolled students a special 30% discount on books ordered directly through the publisher’s website. To take advantage of this offer, please use promotion code BME30 at The MIT Press site.
Smartphones, tablettes, ces appareils ultra-portables sont désormais omniprésents dans notre vie quotidienne. Il y a des applications pour presque tout : retoucher ses photos, réserver une place de cinéma, réviser le code de la route, choisir une recette de cuisine, tourner et monter des clips vidéos, ou trouver les restaurants les plus proches.
Derrière ces applications il y a un savoir-faire spécifique à la programmation sur plateformes mobiles. En effet, contrairement aux ordinateurs classiques, les contraintes imposées par les caractéristiques ces terminaux font que certains « gestes simples » pour l'utilisateur, comme faire dérouler une liste de données, impliquent en réalité des mécanismes plus complexes.
Ce MOOC est le premier d'une série de deux MOOCs consacrés à la programmation sur iPhone et iPad. Il se concentre sur le développement d'applications « mono-vues » et présente en détail les principes d'une interaction réussie de vos applications avec ses utilisateurs. Nous avons également décidé de prendre en compte les dernières nouveautés introduites dans iOS. Ainsi, ce MOOC, s'il évoque Objective-C, le langage « historique » de développement sur cette plateforme qu'il faut connaître, passera beaucoup de temps sur le nouveau langage Swift (dans sa version 3, annoncée en Septembre 2016 avec iOS10). Un parallèle avec la problématique du développement de systèmes embarqués est également fait.
L'objectif, si vous suivez attentivement ce cours et réalisez les exercices proposés, est de vous rendre autonomes dans la réalisation d'applications pour l'écosystème iOS (le dernier exercice est d'ailleurs un jeu d'adresse). Vous serez aussi capables de travailler non seulement dans l'environnement de développement d'Apple mais aussi dans des environnements similaires. Les exercices sont réalisés sous iOS10, publié en septembre 2016. Nous recommandons donc l'usage de Xcode 8 ou ultérieur (accès gratuit sur le site d'Apple).
Ce cours est principalement destiné à des personnes maîtrisant déjà la programmation objet. Il est dérivé d'une unité d'enseignement de 5eme année (master 2) dispensée à l'Université Pierre et Marie Curie, le premier établissement universitaire à avoir proposé en France, en 1967, un diplôme d'informatique. Il tient également compte des nombreux retours des MOOCs qui se sont déroulés en 2014 et en 2015.
Si ce sujet vous intéresse, n'hésitez pas à vous inscrire et à venir nous suivre. J'ai reçu plusieurs témoignages d'anciens participants en 2014 et 2015 qui se sont réorientés vers la programmation mobile après avoir participé à l'une des éditions précédentes.
Esta es el segundo de una serie de cursos de introducción a los sistemas de información en las empresas, diseñada en base al el temario del examen USA CLEP Sistemas de Información y Aplicaciones Informáticas que te introducirá en el apasionante mundo de las TIC.
En este curso aprenderás los conceptos básicos hardware en los que se basan los sistemas de información y las redes de comunicaciones
In this course, you will learn about how to manage and troubleshoot a Skype for Business Server deployment.
You will learn how to plan and deploy conferencing in Skype for Business 2015 Server. Conferencing is one of the key reasons why many organizations deploy Skype for Business. Conferencing includes Web conferencing, dial-in conferencing and planning for large conferences. Finally, you will also learn how to provide external access to your Skype for Business Server deployment for employees and users from other organizations.
This is the second in a series of three courses that will prepare you for 70-334 “Core Solutions of Microsoft Skype for Business 2015” exam.
In this course, you will learn the basics about Skype for Business server infrastructure.
You will learn how to plan a Skype for Business Server deployment, including planning for network readiness and namespaces. You will also learn how to install Skype for Business Server 2015, and how to upgrade from Lync Server to Skype for Business Server. You will also learn how to manage Skype for Business users and deploy and manage Skype for Business clients
This course is part of a series of three courses that will prepare you for 70-334 “Core Solutions of Microsoft Skype for Business 2015” exam.
In Skype for Business: Voice Concepts and Planning you will learn about Skype for Business Online and how it can provide meeting and voice functionality. This course is the first in a series of three online courses designed to help you prepare for taking the 70-333 “Deploying Enterprise Voice with Skype for Business 2015” exam.
You will learn how to plan a Cloud PBX deployment, including integration with on-premises PSTN Connectivity. Additionally, you will learn how to deploy PSTN Conferencing, and integrate cloud identity and security with on-premises Active Directory.