star_border star_border star_border star_border star_border
This is the 3rd course in the intermediate, undergraduate-level offering that makes up the larger Programming and Data Structures MicroBachelors program. We recommend taking them in order, unless you have a background in these areas already and feel comfortable skipping ahead. Introduction to Programming in C++ Advanced Programming in C++ Introduction to Data Structures Advanced Data Structures These topics build upon the learnings that are taught in the introductory-level Computer Science Fundamentals MicroBachelors program, offered by the same instructor. This is a self-paced course that continues in the development of C++ programming skills. Among the topics covered is the development of more advanced command-line programs that utilize Pointers, Dynamic Storage, Recursion, Searching, Sorting to solve problems. Students learn how to use and program these data structures through the lectures and the labs. C++ programming material is presented over eight weeks of interactive lectures with quizzes to assess your understanding of the material Students will experience hands-on practice writing C++ programs through fourteen lab challenges. Students will not only learn to use data structures to organize, manage, and storage in formats that enable efficient access and modification. A data structure is a collection of data values, the relationships among them, and the functions or operations that can be applied to the data.
    star_border star_border star_border star_border star_border
    Have you ever wondered how software architects, requirements engineers and business analysts sketch and draw out their plans for a software system? In this computer science course, you will gain an in-depth understanding of Unified Modeling Language (UML) class diagrams, which are used to visually represent the conceptual design of a system. You will learn about UML class diagrams and how they are used to map out the structure of a business domain by showing business objects, their attributes, and associations. Taught by an instructor with decades of experience in requirements engineering and domain modelling, this course will equip you with the skill of in-depth understanding of a UML class diagram and will enable you to judge the functional fit of a UML class diagram as blueprint for the development of an enterprise information system. The Unified Modeling Language (UML) has become an in-demand skill in software development and engineering. In fact, some of today’s top jobs, i.e. business analysts, enterprise architects, but also developers, technical consultants and solutions architects, require UML knowledge. Enroll today and gain knowledge in an in-demand skill that will help set you apart from the competition.
      star_border star_border star_border star_border star_border
      This programming course takes a unique approach, as it focuses on learning a systematic programming method rather than a programming language. This practical approach will help you channel your creativity so that you can program well in any language. This course, part of the Software Development MicroMasters Program , presents a core design method with a focus on numbers, strings, images and lists. You will learn techniques to: Develop program requirements Produce programs with consistent structure that are easy to modify later Make your programs more reliable by building tests as an integral part of the programming process. This course concludes with the design of a simple interactive game. Learners who enroll in the Verified track will receive staff grading for the course project and increased interaction with the instructor and staff. Learner Testimonial "I have taken and completed tens of MOOCs on programming and computer science, I have even been and I am currently a TA in some of these courses. Among them are a few that deserve without hesitation the highest rate. But if I had to choose only one at the top of them it would be these two courses on systematic program design." - edX Learner
        star_border star_border star_border star_border star_border
        As the Internet of Things (IoT) continues to grow so will the number of privacy and security concerns and issues. As a professional working in the field, it is essential to understand the potential security risks and how to best mitigate them. In this course, you will learn about security and privacy issues in IoT environments. We’ll explore the organizational risks posed by IoT networks, and the principles of IoT device vulnerabilities. We’ll also look at software and hardware IoT Applications for industry. With billions of devices tracking our every move, privacy is a critical issue. We will explore and discuss the social and commercial implications the IoT brings to society.
          star_border star_border star_border star_border star_border
          Want to produce and record your own music? This course will help you do that by showing you how to apply new technologies to your own creative practice, using freeware and browser based apps. Music Technology Foundations draws on Adelaide’s world-class pioneering expertise in making electronic music, to provide a great foundation to a career in music and to enable any learner to use technology in creative ways. In this course, you’ll learn about the core principles of music technology, including sound, audio, MIDI, effects and sequencing.
            star_border star_border star_border star_border star_border
            Improvements in modern biology have led to a rapid increase in sensitivity and measurability in experiments and have reached the point where it is often impossible for a scientist alone to sort through the large volume of data that is collected from just one experiment. For example, individual data points collected from one gene expression study can easily number in the hundreds of thousands. These types of data sets are often referred to as ‘biological big data’ and require bioinformaticians to use statistical tools to gain meaningful information from them. In this course, part of the Bioinformatics MicroMasters program, you will learn about the R language and environment and how to use it to perform statistical analyses on biological big datasets. This course is part of the Bioinformatics MicroMaster’s program from UMGC. Upon completion of the program and receipt of the verified MicroMaster’s certificate, learners may then transition into the full UMGC Master’s Program in Biotechnology with a specialization in Bioinformatics without any application process or testing. See the MicroMasters program page for more.
              star_border star_border star_border star_border star_border
              In this course, you will learn what AI is and understand its applications and use cases and how it is transforming our lives. You will explore basic AI concepts including machine learning, deep learning, and neural networks as well as use cases and applications of AI. You will be exposed to concerns surrounding AI, including ethics, bias, jobs and the impacts on society. You will take a glimpse of the future with AI, get advice for starting an AI related career, and wrap up the course by demonstrating AI in action with a mini project. This AI for Everyone course does not require any programming or computer science expertise and is designed to introduce the basics of AI to anyone whether you have a technical background or not.
                star_border star_border star_border star_border star_border
                Experimentation is a key capability for any business to develop and master. Learn how to leverage data to build knowledge and apply this knowledge to improve business outcomes and create strategic advantages. This course is part of both the Digital Product Management and Digital Leadership MicroMasters programs. In it, you will learn to develop iterative business experiments using agile methods. This capability is central to digital businesses as it allows them to sustain competitive advantage through both incremental improvements as well as significant, disruptive innovations when opportunities and conditions warrant them. This course focuses on experimentation across the three layers of a digital business: (1) the capacity of the technical infrastructure to provide an iterative and operational process that uses experiments to gather data and develop knowledge (2) the ability to use agile methods and manage the knowledge interfaces among experts at the organizational layer to derive insight from data to create knowledge and ultimately drive improvements in products and processes. (3) the capability to use the technical and organizational infrastructures to drive experimentation at scale in order to deliver digital transformation.
                  star_border star_border star_border star_border star_border
                  JavaScript is the programming language of the World Wide Web. 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. This course, part of the CS Essentials for Software Development Professional Certificate program, provides an introduction to modern web development using JavaScript. In addition to exploring the basics of web page creation using HTML and CSS, you will learn advanced web page layout and responsive design tools such as Bootstrap. You will also learn how browsers represent a web page data using the Document Object Model (DOM) and how to develop dynamic, interactive web pages using JavaScript in the browser. Beyond fundamental JavaScript syntax and advanced language features such as callbacks, events, and asynchronous programming, you will work with jQuery, which provides functionality for simplified DOM manipulation and event handling. This course will also introduce you to modern web frameworks and component-based libraries such as React.js for efficiently developing modular web page components, and D3.js for creating data-driven documents. We will also teach you how to represent and exchange data using JavaScript Object Notation (JSON), and how to access RESTful APIs on the web. Server-side JavaScript is becoming more prevalent in the industry, with web frameworks such as Node.js and Express making it simple to create and deploy complex, data-driven web applications. This course will prepare you to use such frameworks and show you how to integrate them with NoSQL databases such as MongoDB.
                    star_border star_border star_border star_border star_border
                    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.