Courses tagged with "Computer Science" (52)
Want to learn how to serve data to your client applications using Web API? Perhaps you are considering creating applications for mobile devices but your data needs will exceed the storage capacity of the device. Perhaps you want tighter control over the data and wish to provide options for devices with limited or not always-on connectivity.
This course offers insight into the use of Web APIs using ASP.NET and C#. You’ll start with a review of client/server architectures and learn about data serialization and deserialization with JSON as the data format.
You will then be introduced to REST and RESTful concepts with discussions on synchronous and asynchronous programming.
The third module introduces you to ASP.NET Core and using Entity Framework for data access.
Finally, you will learn how to use Cross-Origin Resource Sharing (CORS) with your services and how to secure your Web APIs
Want to be the “CEO” of the digital product, but unsure which types of skillsets you may need? This course is for you.
Product management drives the implementation of business models in startups and digital enterprises. Learn about the key decisions, underlying tradeoffs, and implementation decisions needed for each phase of the product life and master business and organizational logic to ensure product success in the marketplace.
In this course, part of the Digital Product Management MicroMasters program, you will be introduced to frameworks for decision-making based on both economic and organizational considerations. These frameworks inform a rising product manager on how to:
(i) understand customer co-creation, needs and become “a champion” for user centric development in the digital technologies.
(ii) set up and manage specific work flows (e.g. either lean, agile or stage gate development tasks) that result in timely launch and upgrades of products.
(iii) take a data and metrics driven approach to make product life cycle decisions including pricing, versioning, maintenance, helpdesks and end of life.
(iv) shape the direction of the product based on experimentation and system design thinking by learning from product roadmaps, competitive considerations, and allied evolution of demand in digital markets.
Caveat: This is not a course on software development or architecture or on product marketing. The role of a product manager is to work with these functions effectively, such that the interests of a product (e.g. its profitability) and its customers are best served. Thus, the perspectives and skills covered in this course are integrative, and allied with decision-making, in their orientation.
How do you optimally encode a text file? How do you find shortest paths in a map? How do you design a communication network? How do you route data in a network? What are the limits of efficient computation?
This course, part of the Computer Science Essentials for Software Development Professional Certificate program, is an introduction to design and analysis of algorithms, and answers along the way these and many other interesting computational questions.
You will learn about algorithms that operate on common data structures, for instance sorting and searching; advanced design and analysis techniques such as dynamic programming and greedy algorithms; advanced graph algorithms such as minimum spanning trees and shortest paths; NP-completeness theory; and approximation algorithms.
After completing this course you will be able to design efficient and correct algorithms using sophisticated data structures for complex computational tasks.
What is a PMO, and how does it work?
This course focuses on the Project Management Office (PMO) and the governance techniques used to monitor and control the delivery of projects and programs.
You’ll learn all about Portfolio management and the different kinds of PMOs in use today. You’ll also explore various approaches for building, maintaining and closing a PMO, as well as monitoring techniques to ensure that projects are completed successfully.
Linear Algebra: Foundations to Frontiers (LAFF) is packed full of challenging, rewarding material that is essential for mathematicians, engineers, scientists, and anyone working with large datasets. Students appreciate our unique approach to teaching linear algebra because:
- It’s visual.
- It connects hand calculations, mathematical abstractions, and computer programming.
- It illustrates the development of mathematical theory.
- It’s applicable.
In this course, you will learn all the standard topics that are taught in typical undergraduate linear algebra courses all over the world, but using our unique method, you'll also get more! LAFF was developed following the syllabus of an introductory linear algebra course at The University of Texas at Austin taught by Professor Robert van de Geijn, an expert on high performance linear algebra libraries. Through short videos, exercises, visualizations, and programming assignments, you will study Vector and Matrix Operations, Linear Transformations, Solving Systems of Equations, Vector Spaces, Linear Least-Squares, and Eigenvalues and Eigenvectors. In addition, you will get a glimpse of cutting edge research on the development of linear algebra libraries, which are used throughout computational science.
MATLAB licenses will be made available to the participants free of charge for the duration of the course.
We invite you to LAFF with us!
Every day, computers and algorithms touch your life in both mundane and profound ways. They are in the plants and distribution systems that bring you electricity and clean water, sensors that moderate the flow of traffic, in the tractors and combines that sow and harvest your food, and in the satellites that measure and predict the weather.
If you are curious about what computers can do, and how we instruct them to do those things - this course is for you. No prior programming experience is needed. More than just exposure to programming, you’ll gain a powerful set of thinking and problem-solving skills that you can use in your daily life.
Start taking advantage of the computer power around us to make our world a better place.
This is a three-credit course at Arizona State University (CSE 110 Principles of Programming) and satisfies the Computer/Statistics/Quantitative (CS) general studies requirement.
This UX course will provide an overview of survey methodology from the perspective of UX research. UX surveys typically focus on uncovering user needs, connecting needs to user characteristics, and gaining insight into user attitudes towards systems they use. In this course, learners will learn the basics of UX survey research and conduct a survey of their own design!
This course is part of the User Experience (UX) Research and Design MicroMasters Program offered by MichiganX.
This is the third course in the Software Development MicroMasters program. You will learn how to build larger and more complex software systems using the Java programming language.
The course begins with the topic of data abstraction - from specification to implementation. Particular attention is given to how to write robust tests using JUnit. Then the course expands on these ideas to explore how type hierarchies and polymorphism can be used to decrease redundancy in your code. The course wraps up with a discussion of how to design robust classes.
By the end of the course, you will have a solid foundation in designing software in Java, and be ready to move onto Software Construction: Object-Oriented Design, where you will learn more complex design patterns and principles designing object-oriented programs.
Learners who enroll in the Verified track will receive staff grading for the course project and increased interaction with the instructors and staff.
The capstone project includes the evaluation of the competencies and performance tasks, which define an Associate Android Developer (Fundamental Application Components, Application User Interface (UI) and User Experience (UX), Persistent Data Storage, Enhanced System Integration and Testing and Debugging).
You will demonstrate your understanding of the fundamental application components of programming for Android, how to build clean and compelling user interfaces, using view styles and theme attributes to apply a consistent look and feel across an entire application. Your app will connect with the internet sharing preferences and files, SQLite databases, content providers, libraries as ORM or Realm. You will design, plan, build and publish in the Google Play store your own Android Application.
This capstone project is part of the GalileoX Android Developer MicroMasters Program that is specifically designed to teach the critical skills needed to be successful in this exciting field. In order to qualify for the MicroMasters Credential you will need to earn a Verified Certificate in each of the four courses as well as this final capstone project.
The exciting field of Cloud Computing is rapidly changing how businesses operate today. As with any large-scale shift, new skills and processes must be learned and implemented to overcome management challenges. Existing business processes, workflows, and policies must be adapted to account for this new technology.
This course, part of the Cloud Computing MicroMasters program, focuses on commonly encountered management issues with the adoption and implementation of cloud computing. Examples include: legal and compliance issues, industry standards and best practices, risk and security issues, and other business process compliance issues.
You will examine these issues in depth, then review industry best practices and other case studies to develop the techniques that address and mitigate them. Business processes such as procurement, vendor management, and end-user management are also covered.
Proteins play a very important role in all organisms. In fact, most of the work that happens inside every cell happens because a specific protein is employed for a specific task. Often the three-dimensional shape of a protein plays a major role in its function. As such, it is important to know the structure of all proteins to have an idea of what function they perform.
One of the jobs of a bioinformatician is to predict the three-dimensional structure of a protein using only the DNA sequence that encodes it as well as determining the effects of any mutations in the DNA on the three-dimensional structure/function.
In this course, part of the Bioinformatics MicroMasters program, you will learn about protein structure and its impact on function, practice aligning protein sequences to discover differences, and generate model structures of proteins using web and software-based approaches.
There is much more to software testing than just finding defects. Successful software and quality assurance engineers need to also manage the testing of software.
In this course, part of the Software Testing and Verification MicroMasters program, you will learn about the management aspects of software testing. You will learn how to successfully plan, schedule, estimate and document a software testing plan.
You will learn how to analyze metrics to improve software quality and software tests.
We will also discuss software quality initiatives developed by industry experts.
No previous programming knowledge needed.
Please note that the verified certificate option is not currently open for this course. Please enroll in the audit track and you will be emailed when the verified certificate option is open for enrollment.
The modern data analysis pipeline involves collection, preprocessing, storage, analysis, and interactive visualization of data.
The goal of this course, part of the Analytics: Essential Tools and Methods MicroMasters program, is for you to learn how to build these components and connect them using modern tools and techniques.
In the course, you’ll see how computing and mathematics come together. For instance, “under the hood” of modern data analysis lies numerical linear algebra, numerical optimization, and elementary data processing algorithms and data structures. Together, they form the foundations of numerical and data-intensive computing.
The hands-on component of this course will develop your proficiency with modern analytical tools. You will learn how to mash up Python, R, and SQL through Jupyter notebooks, among other tools. Furthermore, you will apply these tools to a variety of real-world datasets, thereby strengthening your ability to translate principles into practice.
As a professional web software developer, you will not only need to know how to program in this simple yet powerful language, but you will need to understand the fundamentals of how data is exchanged on the World Wide Web (WWW) and what tools and frameworks are available to you for creating robust, interactive web applications.
We will also introduce you to modern web frameworks and component-based libraries such as React for efficiently developing modular web page components, which improve scalability and maintainability. We will also cover modern software methodologies such as model-driven development, and architectures such as model-view-controller (MVC) and model-view-presenter (MVP). We will explore how they are used by teams of professional software developers to create high quality applications.
The increased demand by consumers and businesses for more utility, connectivity and smarter and more efficient electronic technology not only creates a need for more embedded systems but also for engineers in the embedded systems field.
In this lab-based computer science course, explore the complexities of embedded systems and learn how to develop your own real-time operating system (RTOS) by building a personal fitness device with Bluetooth connectivity (BLE). An operating system (OS) is a software system that computers use to manage the resources of a computer. The OS decides which tasks are performed when and decides how resources are utilized. Simple embedded systems, which are a combination of electrical, mechanical, chemical, and computer components designed to perform a dedicated function, originally did not need an OS. However, as embedded systems have evolved, so have their complexities. To manage this, an RTOS is now required.
Embedded systems are often deployed in safety-critical situations such as automotive, military, industrial, and medical applications. In applications such as communications and consumer electronics, response time and processing speed are important. A real-time system not only needs to arrive at the correct answer, but must also get the correct answer at the correct time. A RTOS manages a computer's resources so that tasks are performed in a timely mannner.
In this computer science course, students will learn the design fundamentals of an RTOS from the bottom up and use these fundamentals to build practical real-time applications. We will provide a board support package (BSP), so students will be able to focus on the RTOS and Bluetooth network without needing prior experience in circuits and I/O device driver software. This is a hands-on project-based lab course, where you will incrementally build a personal fitness device with Bluetooth connectivity.
This course is intended for students and professional engineers wishing to improve their skills in the fields of embedded systems, product development, computer architecture, operating systems, and Bluetooth networks.
To complete this course, you will need to purchase a lab kit including a microcontroller board, an I/O board, and a Bluetooth module. Instructions about purchasing the kit and installing required software are at http://edx-org-utaustinx.s3.amazonaws.com/UT601x/RTOS.html .
Programmeren wordt steeds belangrijker voor de nieuwe generaties. Er is veel online materiaal beschikbaar om jouw leerlingen (en jezelf!) te leren programmeren. Deze cursus helpt jou als leerkracht om dit in een didactische vorm te gieten.
Deze cursus bevat filmpjes en opdrachten waarmee jij de basisbegrippen van programmeren onder de knie kunt krijgen. En je leert natuurlijk hoe je leerlingen, zowel in het basis onderwijs als in het voortgezet onderwijs, kunt leren programmeren. De principes van Scratch zie je in veel talen voor kinderen terug, dus we laten je ook andere programmeertalen zien zoals Snap! (meer voor de middelbare school) en de micro:bit.
Wanneer je voor het ID-verified track kiest, kan je ook meedoen aan de speciale dag die Felienne organiseert voor leerkrachten, en wordt jouw cursusontwerp voor programmeeronderwijs geëvalueerd.
Het materiaal van deze cursus is eigendom van de TU Delft en wordt aangeboden onder een Creative Commons licentie CC-BY-NC-SA 4.0 International Licence.
Notre vie quotidienne est fortement impactée par l'usage de nos smartphones et de nos tablettes. Il y a des applications pour presque tout : retoucher ses photos, consulter les horaires des trains, chercher une place de cinéma, choisir une recette de cuisine, se renseigner sur le traffic routier en temps réel, 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, ces terminaux disposent de nombreux capteurs que l'on peut avantageusement utiliser. C'est d'ailleurs ce qui a changé notre usage quotidien ces dernières années.
Ce MOOC est le second d'une série de deux MOOCs consacrés à la programmation sur iPhone et iPad mais il n’est pas nécessaire de l’avoir suivi si vous avez déjà des connaissances en Objective-C et en Swift. Vous pouvez d’ailleurs encore accéder à cette première partie afin de rafraichir vos connaissances. L’accès est accessible ici.
Ce MOOC est le second d'une série de deux MOOCs consacrés à la programmation sur iPhone et iPad. Il se concentre sur le développement d'applications complexes s'appuyant sur des hiérarchies de vues et utilisant les capteurs du terminal: gyroscopes, appareils photos, GPS, etc. 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).
L'objectif, si vous suivez attentivement ce cours et réalisez les exercices proposés, est de vous rendre capables de réaliser des applications riches et sophistiquées pour l'écosystème iOS. 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 mais il n'est pas nécessaire d'avoir assisté à la partie I pour le suivre, même si cela aurait sans doute été un plus. 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.
Le sujet vous intéresse? Inscrivez-vous et lancez-vous dans l'aventure. Aujourd'hui, d'anciens participants en 2014 et 2015 se sont réorientés vers la programmation mobile. Pourquoi pas vous?
Computational thinking is an invaluable skill that can be used across every industry, as it allows you to formulate a problem and express a solution in such a way that a computer can effectively carry it out.
In this course, part of the Big Data MicroMasters program, you will learn how to apply computational thinking in data science. You will learn core computational thinking concepts including decomposition, pattern recognition, abstraction, and algorithmic thinking.
You will also learn about data representation and analysis and the processes of cleaning, presenting, and visualizing data. You will develop skills in data-driven problem design and algorithms for big data.
The course will also explain mathematical representations, probabilistic and statistical models, dimension reduction and Bayesian models.
You will use tools such as R, MOA and data processing libraries in associated language environments.
Technologies are always being defeated.
If you own an information asset that’s valuable enough to the right adversary, it’s only a matter of time before there’s a breach. Today’s technologies attempt to keep adversaries out, but the sad fact is they will inevitably be defeated. This means a successful cybersecurity professional needs to have an expanded arsenal in their toolkit that extends far beyond technical proficiency.
Cybersecurity professionals need to be agile, multifunctional, flexible, and dynamic given how quickly things can change. They need to be able to adapt to change and problem solve quickly, have diverse knowledge to perform many activities, respond to new threats and shift priorities to meet the challenge of the day.
The purpose of this course is to give learners insight into these type of characteristics and skills needed for cybersecurity jobs and to provide a realistic outlook on what they really need to add to their “toolkits” – a set of skills that is constantly evolving, not all technical, but fundamentally rooted in problem-solving.
Students will learn from thought leaders from both the academic and practitioner communities.
Some video game designers are programmers in their own right, and may have even come from that background to a designer’s role. Others have a less formal background. All video game designers should have a solid understanding of what programmers can and cannot do, how assets interact with code, what algorithmic thinking is and how to take advantage of the capabilities of different engines and tools.