Online Course in Engineering & Technology in USA

View all Online Courses in Engineering & Technology in USA 2017

Engineering & Technology

The USA remains the world’s most popular destination for international students. Universities in the US dominate the world rankings and the country also offers a wide variety of exciting study locations. State university systems are partially subsidized by state governments, and may have many campuses spread around the state, with hundreds of thousands of students.

Online Course in Engineering & Technology in USA

Read More

Course in Statistics with R (Beginner)

Coursera
Online Part time Open Enrollment USA USA Online

You will produce a portfolio of data analysis projects from the Specialization that demonstrates mastery of statistical data analysis from exploratory analysis to inference to modeling, suitable for applying for statistical analysis or data scientist positions. [+]

Online Courses in Engineering & Technology in USA. In this Specialization, you will learn to analyze and visualize data in R and created reproducible data analysis reports, demonstrate a conceptual understanding of the unified nature of statistical inference, perform frequentist and Bayesian statistical inference and modeling to understand natural phenomena and make data-based decisions, communicate statistical results correctly, effectively, and in context without relying on statistical jargon, critique data-based claims and evaluated data-based decisions, and wrangle and visualize data with R packages for data analysis. You will produce a portfolio of data analysis projects from the Specialization that demonstrates mastery of statistical data analysis from exploratory analysis to inference to modeling, suitable for applying for statistical analysis or data scientist positions. Courses Introduction to Probability and Data This course introduces you to sampling and exploring data, as well as basic probability theory and Bayes' rule. You will examine various types of sampling methods, and discuss how such methods can impact the scope of inference. A variety of exploratory data analysis techniques will be covered, including numeric summary statistics and basic data visualization. You will be guided through installing and using R and RStudio (free statistical software), and will use this software for lab exercises and a final project. The concepts and techniques in this course will serve as building blocks for the inference and modeling courses in the Specialization. Inferential Statistics This course covers commonly used statistical inference methods for numerical and categorical data. You will learn how to set up and perform hypothesis tests, interpret p-values, and report the results of your analysis in a way that is interpretable for clients or the public. Using numerous data examples, you will learn to report estimates of quantities in a way that expresses the uncertainty of the quantity of interest. You will be guided through installing and using R and RStudio (free statistical software), and will use this software for lab exercises and a final project. The course introduces practical tools for performing data analysis and explores the fundamental concepts necessary to interpret and report results for both categorical and numerical data. Linear Regression and Modeling This course introduces simple and multiple linear regression models. These models allow you to assess the relationship between variables in a data set and a continuous response variable. Is there a relationship between the physical attractiveness of a professor and their student evaluation scores? Can we predict the test score for a child based on certain characteristics of his or her mother? In this course, you will learn the fundamental theory behind linear regression and, through data examples, learn to fit, examine, and utilize regression models to examine relationships between multiple variables, using the free statistical software R and RStudio. Bayesian Statistics This course describes Bayesian statistics, in which one's inferences about parameters or hypotheses are updated as evidence accumulates. You will learn to use Bayes’ rule to transform prior probabilities into posterior probabilities, and be introduced to the underlying theory and perspective of the Bayesian paradigm. The course will apply Bayesian methods to several practical problems, to show end-to-end Bayesian analyses that move from framing the question to building models to eliciting prior probabilities to implementing in R (free statistical software) the final posterior distribution. Additionally, the course will introduce credible regions, Bayesian comparisons of means and proportions, Bayesian regression and inference using multiple models, and discussion of Bayesian prediction. Statistics with R Capstone The capstone project will be an analysis using R that answers a specific scientific/business question provided by the course team. A large and complex dataset will be provided to learners and the analysis will require the application of a variety of methods and techniques introduced in the previous courses, including exploratory data analysis through data visualization and numerical summaries, statistical inference, and modeling as well as interpretations of these results in the context of the data and the research question. The analysis will implement both frequentist and Bayesian techniques and discuss in context of the data how these two approaches are similar and different, and what these differences mean for conclusions that can be drawn from the data. A sampling of the best final projects will be featured on the Duke Statistical Science department website. Note: Only learners who have passed the four previous courses in the specialization are eligible to take the Capstone. [-]

Course in Responsive Website Development and Design (Beginner)

Coursera
Online Part time 6 - 8 months Open Enrollment USA USA Online

This Specialization covers the basics of modern full stack web development, from UX design, to front-end coding, to custom databases. You’ll build foundational skills in a full range of technologies, including HTML/CSS, Javascript, and MongoDB, and you’ll learn to implement a reactive, multi-user web application using the meteor.js framework. [+]

This Specialization covers the basics of modern full stack web development, from UX design, to front-end coding, to custom databases. You’ll build foundational skills in a full range of technologies, including HTML/CSS, Javascript, and MongoDB, and you’ll learn to implement a reactive, multi-user web application using the meteor.js framework. We’ll also touch on more advanced topics, such as APIs, data visualization, and animation. Upon completing the Specialization and Capstone Project, you’ll have designed and launched your own fully-functioning, responsive web application. Courses Responsive Website Basics: Code with HTML, CSS, and JavaScript In this course you will learn three key website programming and design languages: HTML, CSS and JavaScript. You will create a web page using basic elements to control layout and style. Additionally, your web page will support interactivity. At the end of the course, you will be able to: 1. Define the purpose of HTML, CSS and JavaScript 2. Make a simple web page using HTML 3. Use CSS to control text styles and layout 4. Use CSS libraries such as Bootstrap to create responsive layouts 5. Use JavaScript variables and functions 6. Manipulate web page content using JavaScript 7. Respond to user input using JavaScript In this course, you will complete: 2 assignments writing HTML, CSS and JavaScript, each taking ~1 hour to complete 4 quizzes, each taking ~20 minutes to complete 1 programming exercise~30 minutes to complete multiple practice quizzes, each taking ~5 minutes to complete Participation in or completion of this online course will not confer academic credit for University of London programmes Responsive Web Design In this course you will learn how to apply concepts from interaction design and human computer interaction in order to design and build an interactive, professional looking website. You will learn how to make your web page designs adapt to different screen sizes using responsive grid layouts. You will learn how to add navigation and other design elements, and you will learn how to separate data and display using JavaScript objects and templates. At the end of the course, you will be able to: 1. Explain why users need to know where they are, where they can go and what is on a web page 2. Create wireframe mockups of web pages 3. Identify the key functional elements of web pages 4. Use Bootstrap components to realise page designs 5. Use JavaScript data structures such as arrays and objects to define the data used in a web page 6. Use the Handlebars template library to convert data to HTML 7. Add interactivity to templates using JavaScript event listeners In this course, you will complete: 1 website design assignment taking ~1 hour to complete 1 programming assignment taking ~1 hour to complete 4 quizzes, each taking ~20 minutes to complete multiple practice quizzes, each taking ~5 minutes to complete Participation in or completion of this online course will not confer academic credit for University of London programmes Introduction to Meteor.js Development In this course, you will learn how to create a complete, multi-user web site using the Meteor.js framework and MongoDB. You will implement user authentication, security features, reactive templates and routing using iron router. You will carry out key database operations such as inserting, removing and updating data as well as sorting and filtering. You will see how a complete application can be built, line by line. At the end of the course, you will be able to: 1. Install the Meteor.js system and create a web application 2. Work with the Meteor.js packaging system 3. Write Meteor.js templates that can reactively display data 4. Use insert, remove and update operations on MongoDB 5. Write MongoDB data filters to search for and sort data 6 .Add user authentication functionality to a website 7. Control what is displayed on the page using iron:router 8. Implement basic security features In this course, you will complete: 1 server install assignment taking ~1 hour to complete 1 programming assignment taking ~8 hours to complete 4 quizzes, each taking ~20 minutes to complete multiple practice quizzes, each taking ~5 minutes to complete Prerequisites This course is designed to build on top of the material delivered in the previous two courses in this specialisation. Therefore, we recommend that if you find this course too technically challenging that you first complete the previous courses before re-commencing this one. Specifically, we expect you to be able to code basic HTML, CSS and Javascript before you take this course. Participation in or completion of this online course will not confer academic credit for University of London programmes Web Application Development with JavaScript and MongoDB In this course, you will develop more advanced web application programming skills. You will learn how to control data read and write access using methods, publish and subscribe. You will learn how to access your database and server shells using command line tools. You will use the SimpleSchema system to validate data and generate input forms automatically. You will see a complete collaborative code editing environment, TextCircle, being built from scratch. At the end of this course, you will be able to: - use Meteor methods to control data write access - use publish and subscribe to control data read access - install and use advanced Meteor packages - add user accounts to your applications - implement complex MongoDB filters - use the MongoDB and meteor server shells - define data validations schemas using SimpleSchema - generate data input forms automatically using SimpleSchema In this course, you will complete: 2 programming assignments taking ~4 hours each to complete 4 quizzes, each taking ~20 minutes to complete multiple practice quizzes, each taking ~5 minutes to complete Participation in or completion of this online course will not confer academic credit for University of London programmes Responsive Website Tutorial and Examples In this course, we will show you exciting examples of collaborative, interactive web applications that use various types of media including sound, images and big data. We will show you how to build sites that provide precisely this functionality, using Meteor. We will also provide fully working example application code that you can use for your own commercial web projects. The course also provides a range of advice and suggestions about how to develop bespoke web applications which match the requirements of clients, where clients are people who commission the product or people who use the product. We will take you through the development of the following applications: 1. A portfolio website with collaborative blogging functionality. 2. An interactive, realtime, multi user music remixing system. 3. An interactive, online graffiti wall where users can collaborate to create graphics. 4. An interactive data visualisation platform for exploring and plotting big data in exciting ways. At the end of this course, you will be able to: - Implement animated data visualisations and graphics using advanced user interface libraries such as vis.js - Work with external data sources - Create multi user, realtime, collaborative environments - Use media APIs such as the Web Audio API Participation in or completion of this online course will not confer academic credit for University of London programmes Responsive Website Development and Design Capstone For your Responsive Website Development and Design Specialization Capstone Project, you will create a complete, responsive, multi-user, data-driven website which aims to solve a particular problem. We encourage you to create a website addressing a problem that you are interested in! However, if you don’t have an idea of your own, we have several that we will suggest in the course. In the capstone project, you will: 1. Develop a complete website using the full range of skills learned during the specialisation 2. Work through a structured process from idea generation to product delivery 3. Document and receive feedback on the development of your project from an idea to a fully functional piece of software in a series of structured assignments including peer interactions Participation in or completion of this online course will not confer academic credit for University of London programmes [-]

Course in Cybersecurity (Intermediate)

Coursera
Online Part time Open Enrollment USA USA Online

The Cybersecurity Specialization covers the fundamental concepts underlying the construction of secure systems, from the hardware to the software to the human-computer interface, with the use of cryptography to secure interactions. [+]

Online Courses in Engineering & Technology in USA. The Cybersecurity Specialization covers the fundamental concepts underlying the construction of secure systems, from the hardware to the software to the human-computer interface, with the use of cryptography to secure interactions. These concepts are illustrated with examples drawn from modern practice, and augmented with hands-on exercises involving relevant tools and techniques. Successful participants will develop a way of thinking that is security-oriented, better understanding how to think about adversaries and how to build systems that defend against them. Courses Usable Security This course focuses on how to design and build secure systems with a human-centric focus. We will look at basic principles of human-computer interaction, and apply these insights to the design of secure systems with the goal of developing security measures that respect human performance and their goals within a system. Software Security This course we will explore the foundations of software security. We will consider important software vulnerabilities and attacks that exploit them -- such as buffer overflows, SQL injection, and session hijacking -- and we will consider defenses that prevent or mitigate these attacks, including advanced testing and program analysis techniques. Importantly, we take a "build security in" mentality, considering techniques at each phase of the development cycle that can be used to strengthen the security of software systems. Cryptography This course will introduce you to the foundations of modern cryptography, with an eye toward practical applications. Hardware Security In this course, we will study security and trust from the hardware perspective. Upon completing the course, students will understand the vulnerabilities in current digital system design flow and the physical attacks to these systems. They will learn that security starts from hardware design and be familiar with the tools and skills to build secure and trusted hardware. Cybersecurity Capstone Project This course presents an intensive experience during which students build a software system they intend to be secure, and then attempt to show that other students' projects are insecure, by finding flaws in them. [-]

Course in Applied Data Science with Python (Intermediate)

Coursera
Online Part time Open Enrollment USA USA Online

The 5 courses in this University of Michigan specialization introduce learners to data science through the python programming language. This skills-based specialization is intended for learners who have basic a python or programming background, and want to apply statistical, machine learning, information visualization, text analysis, and social network analysis techniques through popular python toolkits such as pandas, matplotlib, scikit-learn, nltk, and networkx to gain insight into their data. [+]

The 5 courses in this University of Michigan specialization introduce learners to data science through the python programming language. This skills-based specialization is intended for learners who have basic a python or programming background, and want to apply statistical, machine learning, information visualization, text analysis, and social network analysis techniques through popular python toolkits such as pandas, matplotlib, scikit-learn, nltk, and networkx to gain insight into their data. Introduction to Data Science in Python (course 1), Applied Plotting, Charting & Data Representation in Python (course 2), and Applied Machine Learning in Python (course 3) should be taken in order and prior to any other course in the specialization. After completing those, courses 4 and 5 can be taken in any order. All 5 are required to earn a certificate. Courses Introduction to Data Science in Python This course will introduce the learner to the basics of the python programming environment, including how to download and install python, expected fundamental python programming techniques, and how to find help with python programming questions. The course will also introduce data manipulation and cleaning techniques using the popular python pandas data science library and introduce the abstraction of the DataFrame as the central data structure for data analysis. The course will end with a statistics primer, showing how various statistical measures can be applied to pandas DataFrames. By the end of the course, students will be able to take tabular data, clean it, manipulate it, and run basic inferential statistical analyses. This course is number 1 in the Applied Data Science with Python specialization and should be taken before any other courses in the specialization. Applied Plotting, Charting & Data Representation in Python This course will introduce the learner to information visualization basics, with a focus on reporting and charting using the matplotlib library. The course will start with a design and information literacy perspective, touching on what makes a good and bad visualization, and what statistical measures translate into in terms of visualizations. The second week will focus on the technology used to make visualizations in python, matplotlib, and introduce users to best practices when creating basic charts and how to realize design decisions in the framework. The third week will describe the gamut of functionality available in matplotlib, and demonstrate a variety of basic statistical charts helping learners to identify when a particular method is good for a particular problem. The course will end with a discussion of other forms of structuring and visualizing data. This course is number 2 in the Applied Data Science with Python specialization. This course should be taken after Introduction to Data Science in Python and before courses 3-5 in the specialization. Applied Machine Learning in Python This course will introduce the learner to applied machine learning, focusing more on the techniques and methods than on the statistics behind these methods. The course will start with a discussion of how machine learning is different than descriptive statistics, and introduce the scikit learn toolkit. The issue of dimensionality of data will be discussed, and the task of clustering data, as well as evaluating those clusters, will be tackled. Supervised approaches for creating predictive models will be described, and learners will be able to apply the scikit learn predictive modelling methods while understanding process issues related to data generalizability (e.g. cross validation, overfitting). The course will end with a look at more advanced techniques, such as building ensembles, and practical limitations of predictive models. By the end of this course, students will be able to identify the difference between a supervised (classification) and unsupervised (clustering) technique, identify which technique they need to apply for a particular dataset and need, engineer features to meet that need, and write python code to carry out an analysis. This course is number 3 in the Applied Data Science with Python specialization. If you are enrolled in the specialization, Introduction to Data Science in Python (course 1), Applied Plotting, Charting & Data Representation in Python (course 2), and Applied Machine Learning in Python (course 3) should be taken in order and prior to any other course in the specialization. After completing those, courses 4 and 5 can be taken in any order. Applied Text Mining in Python This course will introduce the learner to text mining and text manipulation basics. The course begins with an understanding of how text is handled by python, the structure of text both to the machine and to humans, and an overview of the nltk framework for manipulating text. The second week focuses on common manipulation needs, including regular expressions (searching for text), cleaning text, and preparing text for use by machine learning processes. The third week will apply basic natural language processing methods to text, and demonstrate how text classification is accomplished. The final week will explore more advanced methods for detecting the topics in documents and grouping them by similarity (topic modelling). This course is number 4 in the Applied Data Science with Python specialization. If you are enrolled in the specialization, Introduction to Data Science in Python (course 1), Applied Plotting, Charting & Data Representation in Python (course 2), and Applied Machine Learning in Python (course 3) should be taken in order and prior to any other course in the specialization. After completing those, courses 4 and 5 can be taken in any order. Applied Social Network Analysis in Python This course will introduce the learner to network modelling through the networkx toolset. Used to model knowledge graphs and physical and virtual networks, the lens will be social network analysis. The course begins with an understanding of what network modelling is (graph theory) and motivations for why we might model phenomena as networks. The second week introduces the networkx library and discusses how to build and visualize networks. The third week will describe metrics as they relate to the networks and demonstrate how these metrics can be applied to graph structures. The final week will explore the social networking analysis workflow, from problem identification through to generation of insight. This course is number 5 in the Applied Data Science with Python specialization. If you are enrolled in the specialization, Introduction to Data Science in Python (course 1), Applied Plotting, Charting & Data Representation in Python (course 2), and Applied Machine Learning in Python (course 3) should be taken in order and prior to any other course in the specialization. After completing those, courses 4 and 5 can be taken in any order. [-]

Course in Data Warehousing for Business Intelligence (Advanced)

Coursera
Online Part time 5 months Open Enrollment USA USA Online

This Specialization covers data architecture skills that are increasingly critical across a broad range of technology fields. You’ll learn the basics of structured data modeling, gain practical SQL coding experience, and develop an in-depth understanding of data warehouse design and data manipulation. [+]

Online Courses in Engineering & Technology in USA. Evaluate business needs, design a data warehouse, and integrate and visualize data using dashboards and visual analytics. This Specialization covers data architecture skills that are increasingly critical across a broad range of technology fields. You’ll learn the basics of structured data modeling, gain practical SQL coding experience, and develop an in-depth understanding of data warehouse design and data manipulation. You’ll have the opportunity to work with large data sets in a data warehouse environment to create dashboards and Visual Analytics. You will use of MicroStrategy, a leading BI tool, OLAP (online analytical processing) and Visual Insights capabilities to create dashboards and Visual Analytics. In the final Capstone Project, you’ll apply your skills to build a small, basic data warehouse, populate it with data, and create dashboards and other visualizations to analyze and communicate the data to a broad audience. Courses Database Management Essentials Database Management Essentials provides the foundation you need for a career in database development, data warehousing, or business intelligence, as well as for the entire Data Warehousing for Business Intelligence specialization. In this course, you will create relational databases, write SQL statements to extract information to satisfy business reporting requests, create entity relationship diagrams (ERDs) to design databases, and analyze table designs for excessive redundancy. As you develop these skills, you will use either Oracle or MySQL to execute SQL statements and a database diagramming tool such as the ER Assistant to create ERDs. We’ve designed this course to ensure a common foundation for specialization learners. Everyone taking the course can jump right in with writing SQL statements in Oracle or MySQL. Data Warehouse Concepts, Design, and Data Integration This is the second course in the Data Warehousing for Business Intelligence specialization. Ideally, the courses should be taken in sequence. In this course, you will learn exciting concepts and skills for designing data warehouses and creating data integration workflows. These are fundamental skills for data warehouse developers and administrators. You will have hands-on experience for data warehouse design and use open source products for manipulating pivot tables and creating data integration workflows.You will also gain conceptual background about maturity models, architectures, multidimensional models, and management practices, providing an organizational perspective about data warehouse development. If you are currently a business or information technology professional and want to become a data warehouse designer or administrator, this course will give you the knowledge and skills to do that. By the end of the course, you will have the design experience, software background, and organizational context that prepares you to succeed with data warehouse development projects. In this course, you will create data warehouse designs and data integration workflows that satisfy the business intelligence needs of organizations. When you’re done with this course, you’ll be able to: - Evaluate an organization for data warehouse maturity and business architecture alignment; - Create a data warehouse design and reflect on alternative design methodologies and design goals; - Create data integration workflows using prominent open source software; - Reflect on the role of change data, refresh constraints, refresh frequency trade-offs, and data quality goals in data integration process design; and - Perform operations on pivot tables to satisfy typical business analysis requests using prominent open source software Relational Database Support for Data Warehouses Relational Database Support for Data Warehouses is the third course in the Data Warehousing for Business Intelligence specialization. In this course, you'll use analytical elements of SQL for answering business intelligence questions. You'll learn features of relational database management systems for managing summary data commonly used in business intelligence reporting. Because of the importance and difficulty of managing implementations of data warehouses, we'll also delve into storage architectures, scalable parallel processing, data governance, and big data impacts. Business Intelligence Concepts, Tools, and Applications This is the fourth course in the Data Warehouse for Business Intelligence specialization. Ideally, the courses should be taken in sequence. In this course, you will gain the knowledge and skills for using data warehouses for business intelligence purposes and for working as a business intelligence developer. You’ll have the opportunity to work with large data sets in a data warehouse environment and will learn the use of MicroStrategy's Online Analytical Processing (OLAP) and Visualization capabilities to create visualizations and dashboards. The course gives an overview of how business intelligence technologies can support decision making across any number of business sectors. These technologies have had a profound impact on corporate strategy, performance, and competitiveness and broadly encompass decision support systems, business intelligence systems, and visual analytics. Modules are organized around the business intelligence concepts, tools, and applications, and the use of data warehouse for business reporting and online analytical processing, for creating visualizations and dashboards, and for business performance management and descriptive analytics. Design and Build a Data Warehouse for Business Intelligence Implementation The capstone course, Design and Build a Data Warehouse for Business Intelligence Implementation, features a real-world case study that integrates your learning across all courses in the specialization. In response to business requirements presented in a case study, you’ll design and build a small data warehouse, create data integration workflows to refresh the warehouse, write SQL statements to support analytical and summary query requirements, and use the MicroStrategy business intelligence platform to create dashboards and visualizations. In the first part of the capstone course, you’ll be introduced to a medium-sized firm, learning about their data warehouse and business intelligence requirements and existing data sources. You’ll first architect a warehouse schema and dimensional model for a small data warehouse. You’ll then create data integration workflows using Pentaho Data Integration to refresh your data warehouse. Next, you’ll write SQL statements for analytical query requirements and create materialized views to support summary data management. Finally, you will use MicroStrategy OLAP capabilities to gain insights into your data warehouse. In the completed project, you’ll have built a small data warehouse containing a schema design, data integration workflows, analytical queries, materialized views, dashboards and visualizations that you’ll be proud to show to your current and prospective employers. [-]

Course in iOS App Development with Swift (Intermediate)

Coursera
Online Part time 6 months Open Enrollment USA USA Online

This Specialization covers the fundamentals of iOS application development in the Swift programming language. You’ll learn to use development tools such as XCode, design interfaces and interactions and evaluate their usability, and integrate camera, photo, and location information to enhance your app. [+]

Master Swift, design elegant interactions, and create a fully functioning iOS app. This Specialization covers the fundamentals of iOS application development in the Swift programming language. You’ll learn to use development tools such as XCode, design interfaces and interactions and evaluate their usability, and integrate camera, photo, and location information to enhance your app. In the final Capstone Project, you’ll apply your skills to create a fully-functioning photo editing app for iPhone, iPad, and Apple Watch. A Mac computer is required for success in this course. Courses Introduction To Swift Programming Introduction to Swift Programming is the first course in a four part specialization series that will provide you with the tools and skills necessary to develop an iOS App from scratch. By the end of this first course you will be able to demonstrate intermediate application of programming in Swift, the powerful new programming language for iOS. Guided by best practices you will become proficient with syntax, object oriented principles, memory management, functional concepts and more in programming with Swift. This course is unique in its dedication to teaching Swift programming. With new features and capabilities you will be at the forefront of writing iOS apps. Currently this course is taught using Swift 2. The team is aware of the release of Swift 3 and will be making edits to the course in time. Please be aware that at this time the instruction is entirely with Swift 2. Please note that to take part in this course (and the full specialization) it is required to have a Mac computer and, though not required, ideally an iPhone, iPod, or an iPad. NOTE: This course has been designed and tested (and content delivered) on a Mac. While we are aware of hacks and workarounds for running Mac in a virtual machine on windows we do not recommended a PC. We hope you have fun on this new adventure. iOS App Development Basics iOS App Development Basics, the second course in the iOS App Development with Swift specialization, expands your programming skills and applies them to authentic app development projects. The topics covered in this course include Xcode basics, Core iOS and Cocoa Touch frameworks, simple user interface creation, MVC Architecture and much more. With a focus on using Apple’s components to access sensors like camera, microphone and GPS, by the end of this course you will be able to create a basic App according to specified parameters and guidelines. Currently this course is taught using Swift 2. The team is aware of the release of Swift 3 and will be making edits to the course in time. Please be aware that at this time the instruction is entirely with Swift 2. App Design and Development for iOS In App Design and Development for iOS, the third course of the iOS App Development with Swift specialization, you will be developing foundational programming skills to support graphical element presentation and data manipulation from basic functions through to advanced processing. You will continue to build your skill set to use and apply core graphics, touch handling and gestures, animations and transitions, alerts and actions as well as advanced algorithms, threading and more. By the end of this course you will be able to develop a more advanced, fully functioning app. Currently this course is taught using Swift 2. The team is aware of the release of Swift 3 and will be making edits to the course in time. Please be aware that at this time the instruction is entirely with Swift 2. Build Your Own iOS App In the Build Your Own iOS App capstone you will expand your repertoire of additional features and more advanced functions that may be implemented within the iOS environment. You will refine your development skill set and will apply your accumulated skills over the entire specialization series in an applied application development capstone project. This particular course is project based and structured around you building a high quality app as a capstone to the specialization. Currently this course is taught using Swift 2. The team is aware of the release of Swift 3 and will be making edits to the course in time. Please be aware that at this time the instruction is entirely with Swift 2. [-]

Course in Modern Musician (Beginner)

Coursera
Online Part time 18 weeks Open Enrollment USA USA Online

This Specialization will give you the knowledge and tools you need to record and produce professional sounding music. You will begin by developing your identity, vision, and intention as an artist and producer. Next, you will learn the technical aspects of music production, including how sound is translated into audio signals, recording techniques, and effects such as reverb, delay, and compression. [+]

Online Courses in Engineering & Technology in USA. This Specialization will give you the knowledge and tools you need to record and produce professional sounding music. You will begin by developing your identity, vision, and intention as an artist and producer. Next, you will learn the technical aspects of music production, including how sound is translated into audio signals, recording techniques, and effects such as reverb, delay, and compression. You will also learn how to use the industry standard Digital Audio Workstation, Pro Tools, to create professional recordings. Finally, you will apply the knowledge and tools you gained in a culminating 4-week Capstone where you will complete a project beginning at the pre-production stage through the recording, mixing, and mastering stages. Courses The Art of Music Production Explore the art of record production and how to make recordings that other people will love listening to. This course will teach you how to make emotionally moving recordings on almost any recording equipment, including your phone or laptop. The emphasis is on mastering tangible artistic concepts; the gear you use is up to you. You will learn to develop the most important tool in the recording studio: your ears. You will learn to enhance every aspect of your own productions, both sonically and musically, by employing deeper listening skills. Assignments will include posting your own recordings for peer review, and reviewing your classmates’ work by employing specific tools and strategies. If you use a digital audio workstation to record and mix, that’s great, but as long as you can record into your computer and post an MP3, you can complete the assignments. As you learn about the art of record production in this 4-week course, you will also learn about yourself and who you are as an artist and producer. It is not necessary that you read music or play an instrument to take this course. The Technology of Music Production Learn about the music production process—including recording, editing, and mixing—and the tools available to you to create contemporary music on your computer. With the recent introduction of high-quality-low-cost software and hardware, the tools of music production are now available to the masses. Albums are made in bedrooms as well as studios. On the surface this is liberating. Anyone can make an album for the low cost of a couple pieces of gear and a software package. But, if you dig deeper, you will find that it is not so easy. Producing music requires knowledge, dedication, and creativity. Knowledge is where this course comes in. No matter what kind of music you are making, there is a large set of tools that you will need to use. Each lesson of this course will demonstrate a different set of music production tools, loosely following along the music production process of recording, editing, and mixing. We will start with some background on the nature of sound and how we perceive it. We will then examine the components necessary to record audio into a computer, so that you understand the devices that sound must travel through in a music production process. Once recorded, sound must be organized along a timeline, a process known as editing. It allows us to give the impression of perfect performances and create many of the sounds we hear in contemporary music. The contemporary editing tool is the Digital Audio Workstation (DAW), a piece of software that stores and organizes all the assets of a musical project. We will focus on the editing tools that are essential in contemporary music production and that all DAWs provide. After editing, sounds must be combined or mixed together, so we look to the mixing board—a very creative place if you know how to use it. We will explore the basic functionality of both hardware and software mixing boards, including volume, pan, mute, solo, busses, inserts, sends, and submixes. The mixing process, however, includes more tools than the mixing board provides on its own. Sound must also be processed, modified from its recorded state to fit the context of the music. We will look at compression, equalization, and delay, and examine the many audio effects that are offshoots of these devices and how they are used in a musical context. In the end, the music production process relies on your creativity. Creativity is a product of the mind and will stay there, unexpressed, until the right tools are used in the right way to share it with the world. If you have an idea in your head, it will take numerous steps, each with an important tool, to reach your audience. You bring the dedication and creativity, and this course will bring you the knowledge to make that happen. Pro Tools Basics Producing music is an incredibly creative process, and knowing the tools of the trade is essential in order to transmit the musical ideas in your head into the DAW in a creative and uninhibited way. Whether you have used a computer to create music before, or you have been curious about production for years, this 4-week course will give you an introductory look into the world of Avid Pro Tools and Pro Tools First. Music Production Capstone After successfully completing the three prior courses of the Music Production Specialization, this capstone experience is your chance to use your talent and accumulated knowledge to create and submit a finished, fully produced song. As you go through milestones, you will work on your own or with other musicians to develop a song and vision for the finished product. You will then plan and execute its production, including recording, editing, mixing, and posting the finished product. All along the way, you will receive feedback from the peer review process, allowing you to tweak and refine your finished song. [-]

Course in Software Product Management

Coursera
Online Part time 6 months Open Enrollment USA USA Online

In this Software Product Management Specialization, you will master Agile software management practices to lead a team of developers and interact with clients. In the final Capstone Project, you will practice and apply management techniques to realistic scenarios that you will face as a Software Product Manager. [+]

In this Software Product Management Specialization, you will master Agile software management practices to lead a team of developers and interact with clients. In the final Capstone Project, you will practice and apply management techniques to realistic scenarios that you will face as a Software Product Manager. You will have the opportunity to share your experiences and learn from the insights of others as part of a Software Product Management. Courses Introduction to Software Product Management This course highlights the importance and role of software product management. It also provides an overview of the specialization, as well as its goals, structure, and expectations. The course explains the value of process, requirements, planning, and monitoring in producing better software. Upon successful completion of this course, you will be able to: - Relate software product management to better software products - Recognize the role of a software product manager - Reflect on how Agile principles will improve your own projects Software Processes and Agile Practices This course delves into a variety of processes to structure software development. It also covers the foundations of core Agile practices, such as Extreme Programming and Scrum. Upon successful completion of this course, you will be able to: - Distinguish between different process models for organizing software production. - Gauge the applicability of process models for a software development project. - Apply the fundamentals of Agile software development and management practices. Client Needs and Software Requirements This course covers practical techniques to elicit and express software requirements from client interactions. Upon successful completion of this course, you will be able to: - Create clear requirements to drive effective software development - Visualize client needs using low-fidelity prototypes - Maximize the effectiveness of client interactions - Adapt to changing product requirements Agile Planning for Software Products This course covers the techniques required to break down and map requirements into plans that will ultimately drive software production. Upon successful completion of this course, you will be able to: - Create effective plans for software development - Map user requirements to developer tasks - Assess and plan for project risks - Apply velocity-driven planning techniques - Generate work estimates for software products Reviews & Metrics for Software Improvements This course covers techniques for monitoring your projects in order to align client needs, project plans, and software production. It focuses on metrics and reviews to track and improve project progress and software quality. Upon successful completion of this course, you will be able to: - Apply techniques to measure and visualize project progress - Integrate Agile review practices to increase project visibility - Reflect on lessons learned in software projects through retrospective exercises - Improve project and process quality through ongoing measurement Software Product Management Capstone In this six-week capstone course, you will gain practical management experience in a safe, simulated software production setting. You will apply Agile practices and techniques to conquer industry-inspired challenges. Interacting with a realistic client, you will discern what they want and express what they truly need in software requirements to drive software production. Upon completing the capstone, you will be prepared to advance your career as a confident software product management professional. [-]

Course in Data Structures and Algorithms (Intermediate)

Coursera
Online Part time 6 - 8 months Open Enrollment USA USA Online

The Specialization covers algorithmic techniques for solving problems arising in computer science applications. It is a mix of theory and practice: you will not only design algorithms and estimate their complexity, but you will get a deeper understanding of algorithms by implementing them in the programming language of your choice (C, C++, C#, Haskell, Java, JavaScript, Python2, Python3, Ruby, and Scala). [+]

Online Courses in Engineering & Technology in USA. The Specialization covers algorithmic techniques for solving problems arising in computer science applications. It is a mix of theory and practice: you will not only design algorithms and estimate their complexity, but you will get a deeper understanding of algorithms by implementing them in the programming language of your choice (C, C++, C#, Haskell, Java, JavaScript, Python2, Python3, Ruby, and Scala). This Specialization is unique, because it offers two real-world projects. Advanced Shortest Paths project is offered in the end of the Algorithms on Graphs course. In this project, you'll deal with road network analysis and social network analysis. You'll learn how to compute the fastest route between New York and Mountain View thousands of times faster than classic algorithms and close to those used in Google Maps. Through Genome Assembly culminating project at the end of the Specialization, you'll learn how to assemble genomes from millions of short pieces and how algorithms fuel recent developments in personalized medicine. Courses Algorithmic Toolbox The course covers basic algorithmic techniques and ideas for computational problems arising frequently in practical applications: sorting and searching, divide and conquer, greedy algorithms, dynamic programming. We will learn a lot of theory: how to sort data and how it helps for searching; how to break a large problem into pieces and solve them recursively; when it makes sense to proceed greedily; how dynamic programming is used in genomic studies. You will practice solving computational problems, designing new algorithms, and implementing solutions efficiently (so that they run in less than a second). Data Structures A good algorithm usually comes together with a set of good data structures that allow the algorithm to manipulate the data efficiently. In this course, we consider the common data structures that are used in various computational problems. You will learn how these data structures are implemented in different programming languages and will practice implementing them in our programming assignments. This will help you to understand what is going on inside a particular built-in implementation of a data structure and what to expect from it. You will also learn typical use cases for these data structures. A few examples of questions that we are going to cover in this class are the following: 1. What is a good strategy of resizing a dynamic array? 2. How priority queues are implemented in C++, Java, and Python? 3. How to implement a hash table so that the amortized running time of all operations is O(1) on average? 4. What are good strategies to keep a binary tree balanced? You will also learn how services like Dropbox manage to upload some large files instantly and to save a lot of storage space! Algorithms on Graphs If you have ever used a navigation service to find optimal route and estimate time to destination, you've used algorithms on graphs. Graphs arise in various real-world situations as there are road networks, computer networks and, most recently, social networks! If you're looking for the fastest time to get to work, cheapest way to connect set of computers into a network or efficient algorithm to automatically find communities and opinion leaders in Facebook, you're going to work with graphs and algorithms on graphs. In this course, you will first learn what a graph is and what are some of the most important properties. Then you'll learn several ways to traverse graphs and how you can do useful things while traversing the graph in some order. We will then talk about shortest paths algorithms — from the basic ones to those which open door for 1000000 times faster algorithms used in Google Maps and other navigational services. You will use these algorithms if you choose to work on our Fast Shortest Routes industrial capstone project. We will finish with minimum spanning trees which are used to plan road, telephone and computer networks and also find applications in clustering and approximate algorithms. Algorithms on Strings World and internet is full of textual information. We search for information using textual queries, we read websites, books, e-mails. All those are strings from the point of view of computer science. To make sense of all that information and make search efficient, search engines use many string algorithms. Moreover, the emerging field of personalized medicine uses many search algorithms to find disease-causing mutations in the human genome. Advanced Algorithms and Complexity You've learned the basic algorithms now and are ready to step into the area of more complex problems and algorithms to solve them. Advanced algorithms build upon basic ones and use new ideas. We will start with networks flows which are used in more typical applications such as optimal matchings, finding disjoint paths and flight scheduling as well as more surprising ones like image segmentation in computer vision. We then proceed to linear programming with applications in optimizing budget allocation, portfolio optimization, finding the cheapest diet satisfying all requirements and many others. Next we discuss inherently hard problems for which no exact good solutions are known (and not likely to be found) and how to solve them in practice. We finish with a soft introduction to streaming algorithms that are heavily used in Big Data processing. Such algorithms are usually designed to be able to process huge datasets without being able even to store a dataset. Genome Assembly Programming Challenge In Spring 2011, thousands of people in Germany were hospitalized with a deadly disease that started as food poisoning with bloody diarrhea and often led to kidney failure. It was the beginning of the deadliest outbreak in recent history, caused by a mysterious bacterial strain that we will refer to as E. coli X. Soon, German officials linked the outbreak to a restaurant in Lübeck, where nearly 20% of the patrons had developed bloody diarrhea in a single week. At this point, biologists knew that they were facing a previously unknown pathogen and that traditional methods would not suffice – computational biologists would be needed to assemble and analyze the genome of the newly emerged pathogen. To investigate the evolutionary origin and pathogenic potential of the outbreak strain, researchers started a crowdsourced research program. They released bacterial DNA sequencing data from one of a patient, which elicited a burst of analyses carried out by computational biologists on four continents. They even used GitHub for the project: https://github.com/ehec-outbreak-crowdsourced/BGI-data-analysis/wiki The 2011 German outbreak represented an early example of epidemiologists collaborating with computational biologists to stop an outbreak. In this Genome Assembly Programming Challenge, you will follow in the footsteps of the bioinformaticians investigating the outbreak by developing a program to assemble the genome of the E. coli X from millions of overlapping substrings of the E.coli X genome. [-]

Course in Java Programming and Software Engineering Fundamentals (Beginner)

Coursera
Online Part time 6 - 7 months Open Enrollment USA USA Online

Designed for beginners, this Specialization will teach you core programming concepts and equip you to write programs to solve complex problems. In addition, you will gain the foundational skills a software engineer needs to solve real-world problems, from designing algorithms to testing and debugging your programs. [+]

Take your first step towards a career in software development with this introduction to Java—one of the most in-demand programming languages and the foundation of the Android operating system. Designed for beginners, this Specialization will teach you core programming concepts and equip you to write programs to solve complex problems. In addition, you will gain the foundational skills a software engineer needs to solve real-world problems, from designing algorithms to testing and debugging your programs. Courses Programming Foundations with JavaScript, HTML and CSS Learn foundational programming concepts (e.g., functions, for loops, conditional statements) and how to solve problems like a programmer. In addition, learn basic web development as you build web pages using HTML, CSS, JavaScript. By the end of the course, will create a web page where others can upload their images and apply image filters that you create. After completing this course, you will be able to: 1. Think critically about how to solve a problem using programming; 2. Write JavaScript programs using functions, for loops, and conditional statements; 3. Use HTML to construct a web page with paragraphs, divs, images, links, and lists; 4. Add styles to a web page with CSS IDs and classes; and 5. Make a web page interactive with JavaScript commands like alert, onClick, onChange, adding input features like an image canvas, button, and slider. Java Programming: Solving Problems with Software Learn to code in Java and improve your programming and problem-solving skills. You will learn to design algorithms as well as develop and debug programs. Using custom open-source classes, you will write programs that access and transform images, websites, and other types of data. At the end of the course you will build a program that determines the popularity of different baby names in the US over time by analyzing comma separated value (CSV) files. After completing this course you will be able to: 1. Edit, compile, and run a Java program; 2. Use conditionals and loops in a Java program; 3. Use Java API documentation in writing programs. 4. Debug a Java program using the scientific method; 5. Write a Java method to solve a specific problem; 6. Develop a set of test cases as part of developing a program; 7. Create a class with multiple methods that work together to solve a problem; and 8. Use divide-and-conquer design techniques for a program that uses multiple methods. Java Programming: Arrays, Lists, and Structured Data Build on the software engineering skills you learned in “Java Programming: Solving Problems with Software” by learning new data structures. Use these data structures to build more complex programs that use Java’s object-oriented features. At the end of the course you will write an encryption program and a program to break your encryption algorithm. After completing this course, you will be able to: 1. Read and write data from/to files; 2. Solve problems involving data files; 3. Perform quantitative analyses of data (e.g., finding maximums, minimums, averages); 4. Store and manipulate data in an array or ArrayList; 5. Combine multiple classes to solve larger problems; 6. Use iterables and collections (including maps) in Java. Java Programming: Principles of Software Design Solve real world problems with Java using multiple classes. Learn how to create programming solutions that scale using Java interfaces. Recognize that software engineering is more than writing code - it also involves logical thinking and design. By the end of this course you will have written a program that analyzes and sorts earthquake data, and developed a predictive text generator. After completing this course, you will be able to: 1. Use sorting appropriately in solving problems; 2. Develop classes that implement the Comparable interface; 3. Use timing data to analyze empirical performance; 4. Break problems into multiple classes, each with their own methods; 5. Determine if a class from the Java API can be used in solving a particular problem; 6. Implement programming solutions using multiple approaches and recognize tradeoffs; 7. Use object-oriented concepts including interfaces and abstract classes when developing programs; 8. Appropriately hide implementation decisions so they are not visible in public methods; and 9. Recognize the limitations of algorithms and Java programs in solving problems. 10. Recognize standard Java classes and idioms including exception-handling, static methods, java.net, and java.io packages. Java Programming: Build a Recommendation System Ever wonder how Netflix decides what movies to recommend for you? Or how Amazon recommends books? We can get a feel for how it works by building a simplified recommender of our own! In this capstone, you will show off your problem solving and Java programming skills by creating recommender systems. You will work with data for movies, including ratings, but the principles involved can easily be adapted to books, restaurants, and more. You will write a program to answer questions about the data, including which items should be recommended to a user based on their ratings of several movies. Given input files on users ratings and movie titles, you will be able to: 1. Read in and parse data into lists and maps; 2. Calculate average ratings; 3. Calculate how similar a given rater is to another user based on ratings; and 4. Recommend movies to a given user based on ratings. 5. Display recommended movies for a given user on a webpage. [-]

Course in Full Stack Web Development (Intermediate)

Coursera
Online Part time 6 months Open Enrollment USA USA Online

The first two courses in this Specialization include an orientation to client-side development, covering HTML/CSS, JavaScript/JQuery, and frameworks such as AngularJS and Bootstrap. On the server side, you’ll learn to implement NoSQL databases using MongoDB, work within a Node.js environment, and communicate to the client side through a RESTful API. You’ll also learn to create hybrid mobile applications, using the Ionic framework and Cordova. [+]

Online Courses in Engineering & Technology in USA. Learn front-end and mobile hybrid development, build back-end support, and implement a fully functional application. The first two courses in this Specialization include an orientation to client-side development, covering HTML/CSS, JavaScript/JQuery, and frameworks such as AngularJS and Bootstrap. On the server side, you’ll learn to implement NoSQL databases using MongoDB, work within a Node.js environment, and communicate to the client side through a RESTful API. You’ll also learn to create hybrid mobile applications, using the Ionic framework and Cordova. In the final Capstone Project, you’ll apply your skills to build a fully functional web and hybrid mobile application with back-end support. Courses HTML, CSS and JavaScript This course will teach you the essential elements of web page development, covering HTML, CSS and JavaScript. No previous experience of these technologies is necessary, although it is helpful if you have some prior programming experience. First, HTML together with CSS are discussed and explored. Then we move on to consider the essential components of JavaScript, including variables, arrays, loops, events and functions. Then we explore more advanced elements of JavaScript control, including advanced use of functions, event control, array processing, and DOM manipulation. After completing this course, you will be able to: - Create a web page using HTML elements - Be able to apply CSS (style sheet rules) to parts of a web page, for altering display and behavior - Be able to program interactive JavaScript in a web page Front-End Web UI Frameworks and Tools This course will give you an overview of client-side web frameworks, in particular Bootstrap. You will learn about grids and responsive design, Bootstrap CSS and JavaScript components. You will learn about CSS preprocessors, Less and Sass. You will also learn the basics of Node.js and NPM and learn about Web tools like Bower. At the end of this course, you will be able to: - Set up, design and style a web page using Bootstrap and its components - Create a responsive web page design - Make use of web tools to setup and manage web sites Front-End JavaScript Frameworks: AngularJS This course concentrates mainly on Javascript based front-end frameworks, and in particular, AngularJS, the most popular among them. We will review the model view controller (MVC) design-pattern in the context of AngularJS. You will be introduced to various aspects of AngularJS including two-way data binding and angular directives and filters. You will then be introduced to angular controllers and scopes. UI routing and templates will then be reviewed. Finally we will look at angular modules and services. Single page application (SPA) development using Angular will also be explored. You must have either completed the previous course in the specialization on Bootstrap, or have a working knowledge of Bootstrap to be able to navigate this course. At the end of this course you will: - Be familiar with client-side Javascript frameworks and the MVC design pattern - Be able to implement single page applications in AngularJS - Be able to use various Angular features including directives, filters, controllers, scope and routing - Be able to implement a functional front-end web application using AngularJS Multiplatform Mobile App Development with Web Technologies This course focuses on developing multiplatform mobile applications using the Web skills (HTML5, CSS and Javascript) that you have already acquired so far in the previous courses of this specialization. In particular we make use of the Cordova hybrid application framework to develop and target multiple mobile platforms with a single codebase. We make use of the Ionic framework, one of fastest growing mobile application frameworks, that is built with mobile-optimized HTML5 and CSS based components and AngularJS. You will learn about UI development with Ionic and then using Cordova's modules to access the native mobile platform's capabilities from Javascript. You should have already completed the Bootstrap and the AngularJS courses in this specialization before proceeding with this course. Alternately you should already have sufficient knowledge of Bootstrap and AngularJS before you proceed with this course. At the end of this course you will be able to: - Build mobile applications targeting multiple platforms with a single codebase - Leverage your HTML5, CSS, Javascript and AngularJS skills - Use various features of the Ionic framework to build hybrid mobile applications Server-side Development with NodeJS This course deals with all things server-side. We base the entire course around the NodeJS platform. We start with a brief overview of the Web protocols: HTTP and HTTPS. We examine NodeJS and NodeJS modules: Express for building web servers. On the database side, we review basic CRUD operations, NoSQL databases, in particular MongoDB and Mongoose for accessing MongoDB from NodeJS. We examine the REST concepts and building a RESTful API. We touch upon authentication and security. Finally we review backend as a service (BaaS) approaches, including mobile BaaS, both open-source and commercial BaaS services. At the end of this course, you will be able to: - Demonstrate an understanding of server-side concepts, CRUD and REST - Build and configure a backend server using NodeJS framework - Build a RESTful API for the front-end to access backend services Full Stack Web Development Specialization Capstone Project The Capstone project is the culmination of your journey through the Full Stack Web Development specialization. The Capstone project is aimed at building a fully functional front-end Application (both Web App designed using Bootstrap+AngularJS, and hybrid mobile app implemented using the Ionic framework) and full server-side implementation using Node.js+Express+MongoDB (possibly using a higher level framework). The project provides you an opportunity to demonstrate the skills that you have acquired from the courses within the specialization. As a student in this course, you are being provided the opportunity to access IBM Bluemix® platform-as-a-service trial for up to six months at no-charge with no credit card (up to a $1500 value). [-]

Course in Executive Data Science (Beginner)

Coursera
Online Part time 2 months Open Enrollment USA USA Online

In four intensive courses, you will learn what you need to know to begin assembling and leading a data science enterprise, even if you have never worked in data science before. You’ll get a crash course in data science so that you’ll be conversant in the field and understand your role as a leader. You’ll also learn how to recruit, assemble, evaluate, and develop a team with complementary skill sets and roles. [+]

Assemble the right team, ask the right questions, and avoid the mistakes that derail data science projects. In four intensive courses, you will learn what you need to know to begin assembling and leading a data science enterprise, even if you have never worked in data science before. You’ll get a crash course in data science so that you’ll be conversant in the field and understand your role as a leader. You’ll also learn how to recruit, assemble, evaluate, and develop a team with complementary skill sets and roles. You’ll learn the structure of the data science pipeline, the goals of each stage, and how to keep your team on target throughout. Finally, you’ll learn some down-to-earth practical skills that will help you overcome the common challenges that frequently derail data science projects. Courses A Crash Course in Data Science By now you have definitely heard about data science and big data. In this one-week class, we will provide a crash course in what these terms mean and how they play a role in successful organizations. This class is for anyone who wants to learn what all the data science action is about, including those who will eventually need to manage data scientists. The goal is to get you up to speed as quickly as possible on data science without all the fluff. We've designed this course to be as convenient as possible without sacrificing any of the essentials. This is a focused course designed to rapidly get you up to speed on the field of data science. Our goal was to make this as convenient as possible for you without sacrificing any essential content. We've left the technical information aside so that you can focus on managing your team and moving it forward. After completing this course you will know. 1. How to describe the role data science plays in various contexts 2. How statistics, machine learning, and software engineering play a role in data science 3. How to describe the structure of a data science project 4. Know the key terms and tools used by data scientists 5. How to identify a successful and an unsuccessful data science project 6. The role of a data science manager Building a Data Science Team Data science is a team sport. As a data science executive it is your job to recruit, organize, and manage the team to success. In this one-week course, we will cover how you can find the right people to fill out your data science team, how to organize them to give them the best chance to feel empowered and successful, and how to manage your team as it grows. This is a focused course designed to rapidly get you up to speed on the process of building and managing a data science team. Our goal was to make this as convenient as possible for you without sacrificing any essential content. We've left the technical information aside so that you can focus on managing your team and moving it forward. After completing this course you will know. 1. The different roles in the data science team including data scientist and data engineer 2. How the data science team relates to other teams in an organization 3. What are the expected qualifications of different data science team members 4. Relevant questions for interviewing data scientists 5. How to manage the onboarding process for the team 6. How to guide data science teams to success 7. How to encourage and empower data science teams Managing Data Analysis This one-week course describes the process of analyzing data and how to manage that process. We describe the iterative nature of data analysis and the role of stating a sharp question, exploratory data analysis, inference, formal statistical modeling, interpretation, and communication. In addition, we will describe how to direct analytic activities within a team and to drive the data analysis process towards coherent and useful results. This is a focused course designed to rapidly get you up to speed on the process of data analysis and how it can be managed. Our goal was to make this as convenient as possible for you without sacrificing any essential content. We've left the technical information aside so that you can focus on managing your team and moving it forward. After completing this course you will know how to…. 1. Describe the basic data analysis iteration 2. Identify different types of questions and translate them to specific datasets 3. Describe different types of data pulls 4. Explore datasets to determine if data are appropriate for a given question 5. Direct model building efforts in common data analyses 6. Interpret the results from common data analyses 7. Integrate statistical findings to form coherent data analysis presentations Data Science in Real Life Have you ever had the perfect data science experience? The data pull went perfectly. There were no merging errors or missing data. Hypotheses were clearly defined prior to analyses. Randomization was performed for the treatment of interest. The analytic plan was outlined prior to analysis and followed exactly. The conclusions were clear and actionable decisions were obvious. Has that every happened to you? Of course not. Data analysis in real life is messy. How does one manage a team facing real data analyses? In this one-week course, we contrast the ideal with what happens in real life. By contrasting the ideal, you will learn key concepts that will help you manage real life analyses. This is a focused course designed to rapidly get you up to speed on doing data science in real life. Our goal was to make this as convenient as possible for you without sacrificing any essential content. We've left the technical information aside so that you can focus on managing your team and moving it forward. After completing this course you will know how to: 1. Describe the “perfect” data science experience 2. Identify strengths and weaknesses in experimental designs 3. Describe possible pitfalls when pulling / assembling data and learn solutions for managing data pulls. 4. Challenge statistical modeling assumptions and drive feedback to data analysts 5. Describe common pitfalls in communicating data analyses 6. Get a glimpse into a day in the life of a data analysis manager. The course will be taught at a conceptual level for active managers of data scientists and statisticians. Some key concepts being discussed include: 1. Experimental design, randomization, A/B testing 2. Causal inference, counterfactuals, 3. Strategies for managing data quality. 4. Bias and confounding 5. Contrasting machine learning versus classical statistical inference Executive Data Science Capstone The Executive Data Science Capstone, the specialization’s culminating project, is an opportunity for people who have completed all four EDS courses to apply what they've learned to a real-world scenario developed in collaboration with Zillow, a data-driven online real estate and rental marketplace, and DataCamp, a web-based platform for data science programming. Your task will be to lead a virtual data science team and make key decisions along the way to demonstrate that you have what it takes to shepherd a complex analysis project from start to finish. For the final project, you will prepare and submit a presentation, which will be evaluated and graded by your fellow capstone participants. [-]

Course in Functional Programming in Scala (Intermediate)

Coursera
Online Part time 4 - 5 months Open Enrollment USA USA Online

This Specialization provides a hands-on introduction to functional programming using the widespread programming language, Scala. It begins from the basic building blocks of the functional paradigm, first showing how to use these blocks to solve small problems, before building up to combining these concepts to architect larger functional programs. [+]

Online Courses in Engineering & Technology in USA. Discover how to write elegant code that works the first time it is run. This Specialization provides a hands-on introduction to functional programming using the widespread programming language, Scala. It begins from the basic building blocks of the functional paradigm, first showing how to use these blocks to solve small problems, before building up to combining these concepts to architect larger functional programs. You'll see how the functional paradigm facilitates parallel and distributed programming, and through a series of hands on examples and programming assignments, you'll learn how to analyze data sets small to large; from parallel programming on multicore architectures, to distributed programming on a cluster using Apache Spark. A final capstone project will allow you to apply the skills you learned by building a large data-intensive application using real-world data. Courses Functional Programming Principles in Scala Functional programming is becoming increasingly widespread in industry. This trend is driven by the adoption of Scala as the main programming language for many applications. Scala fuses functional and object-oriented programming in a practical package. It interoperates seamlessly with both Java and Javascript. Scala is the implementation language of many important frameworks, including Apache Spark, Kafka, and Akka. It provides the core infrastructure for sites such as Twitter, Tumblr and also Coursera. In this course you will discover the elements of the functional programming style and learn how to apply them usefully in your daily programming tasks. You will also develop a solid foundation for reasoning about functional programs, by touching upon proofs of invariants and the tracing of execution symbolically. The course is hands on; most units introduce short programs that serve as illustrations of important concepts and invite you to play with them, modifying and improving them. The course is complemented by a series programming projects as homework assignments. Learning Outcomes. By the end of this course you will be able to: - understand the principles of functional programming, - write purely functional programs, using recursion, pattern matching, and higher-order functions, - combine functional programming with objects and classes, - design immutable data structures, - reason about properties of functions, - understand generic types for functional programs Recommended background: You should have at least one year programming experience. Proficiency with Java or C# is ideal, but experience with other languages such as C/C++, Python, Javascript or Ruby is also sufficient. You should have some familiarity using the command line. Functional Program Design in Scala In this course you will learn how to apply the functional programming style in the design of larger applications. You'll get to know important new functional programming concepts, from lazy evaluation to structuring your libraries using monads. We'll work on larger and more involved examples, from state space exploration to random testing to discrete circuit simulators. You’ll also learn some best practices on how to write good Scala code in the real world. Several parts of this course deal with the question how functional programming interacts with mutable state. We will explore the consequences of combining functions and state. We will also look at purely functional alternatives to mutable state, using infinite data structures or functional reactive programming. Learning Outcomes. By the end of this course you will be able to: - recognize and apply design principles of functional programs, - design functional libraries and their APIs, - competently combine functions and state in one program, - understand reasoning techniques for programs that combine functions and state, - write simple functional reactive applications. Recommended background: You should have at least one year programming experience. Proficiency with Java or C# is ideal, but experience with other languages such as C/C++, Python, Javascript or Ruby is also sufficient. You should have some familiarity using the command line. This course is intended to be taken after Functional Programming Principles in Scala: https://www.coursera.org/learn/progfun1. Parallel programming With every smartphone and computer now boasting multiple processors, the use of functional ideas to facilitate parallel programming is becoming increasingly widespread. In this course, you'll learn the fundamentals of parallel programming, from task parallelism to data parallelism. In particular, you'll see how many familiar ideas from functional programming map perfectly to to the data parallel paradigm. We'll start the nuts and bolts how to effectively parallelize familiar collections operations, and we'll build up to parallel collections, a production-ready data parallel collections library available in the Scala standard library. Throughout, we'll apply these concepts through several hands-on examples that analyze real-world data, such as popular algorithms like k-means clustering. Learning Outcomes. By the end of this course you will be able to: - reason about task and data parallel programs, - express common algorithms in a functional style and solve them in parallel, - competently microbenchmark parallel code, - write programs that effectively use parallel collections to achieve performance Recommended background: You should have at least one year programming experience. Proficiency with Java or C# is ideal, but experience with other languages such as C/C++, Python, Javascript or Ruby is also sufficient. You should have some familiarity using the command line. This course is intended to be taken after Functional Program Design in Scala: https://www.coursera.org/learn/progfun2. Big Data Analysis with Scala and Spark Manipulating big data distributed over a cluster using functional concepts is rampant in industry, and is arguably one of the first widespread industrial uses of functional ideas. This is evidenced by the popularity of MapReduce and Hadoop, and most recently Apache Spark, a fast, in-memory distributed collections framework written in Scala. In this course, we'll see how the data parallel paradigm can be extended to the distributed case, using Spark throughout. We'll cover Spark's programming model in detail, being careful to understand how and when it differs from familiar programming models, like shared-memory parallel collections or sequential Scala collections. Through hands-on examples in Spark and Scala, we'll learn when important issues related to distribution like latency and network communication should be considered and how they can be addressed effectively for improved performance. Learning Outcomes. By the end of this course you will be able to: - read data from persistent storage and load it into Apache Spark, - manipulate data with Spark and Scala, - express algorithms for data analysis in a functional style, - recognize how to avoid shuffles and recomputation in Spark, Recommended background: You should have at least one year programming experience. Proficiency with Java or C# is ideal, but experience with other languages such as C/C++, Python, Javascript or Ruby is also sufficient. You should have some familiarity using the command line. This course is intended to be taken after Parallel Programming: https://www.coursera.org/learn/parprog1. Functional Programming in Scala Capstone In the final capstone project you will apply the skills you learned by building a large data-intensive application using real-world data. You will implement a complete application processing several gigabytes of data. This application will show interactive visualizations of the evolution of temperatures over time all over the world. The development of such an application will involve: - transforming data provided by weather stations into meaningful information like, for instance, the average temperature of each point of the globe over the last ten years ; - then, making images from this information by using spatial and linear interpolation techniques ; - finally, implementing how the user interface will react to users’ actions. [-]

Course in Python for Everybody (Beginner)

Coursera
Online Part time 8 months Open Enrollment USA USA Online

This Specialization builds on the success of the Python for Everybody course and will introduce fundamental programming concepts including data structures, networked application program interfaces, and databases, using the Python programming language. [+]

This Specialization builds on the success of the Python for Everybody course and will introduce fundamental programming concepts including data structures, networked application program interfaces, and databases, using the Python programming language. In the Capstone Project, you’ll use the technologies learned throughout the Specialization to design and create your own applications for data retrieval, processing, and visualization. Courses Programming for Everybody (Getting Started with Python) This course aims to teach everyone the basics of programming computers using Python. We cover the basics of how one constructs a program from a series of simple instructions in Python. The course has no pre-requisites and avoids all but the simplest mathematics. Anyone with moderate computer experience should be able to master the materials in this course. This course will cover Chapters 1-5 of the textbook “Python for Informatics”. This course is equivalent to the first half of the 11-week "Programming for Everybody (Python)" course. Once a student completes this course, they will be ready to take more advanced programming courses. This course covers Python 2. Python Data Structures This course will introduce the core data structures of the Python programming language. We will move past the basics of procedural programming and explore how we can use the Python built-in data structures such as lists, dictionaries, and tuples to perform increasingly complex data analysis. This course will cover Chapters 6-10 of the textbook “Python for Informatics”. This course is equivalent to the second half of the 11-week "Programming for Everybody (Python)" course. This course covers Python 2. Using Python to Access Web Data This course will show how one can treat the Internet as a source of data. We will scrape, parse, and read web data as well as access data using web APIs. We will work with HTML, XML, and JSON data formats in Python. This course will cover Chapters 11-13 of the textbook “Python for Informatics”. To succeed in this course, you should be familiar with the material covered in Chapters 1-10 of the textbook and the first two courses in this specialization. These topics include variables and expressions, conditional execution (loops, branching, and try/except), functions, Python data structures (strings, lists, dictionaries, and tuples), and manipulating files. This course covers Python 2. Using Databases with Python This course will introduce students to the basics of the Structured Query Language (SQL) as well as basic database design for storing data as part of a multi-step data gathering, analysis, and processing effort. The course will use SQLite3 as its database. We will also build web crawlers and multi-step data gathering and visualization processes. We will use the D3.js library to do basic data visualization. This course will cover Chapters 14-15 of the book “Python for Informatics”. To succeed in this course, you should be familiar with the material covered in Chapters 1-13 of the textbook and the first three courses in this specialization. This course covers Python 2. Capstone: Retrieving, Processing, and Visualizing Data with Python In the capstone, students will build a series of applications to retrieve, process and visualize data using Python. The projects will involve all the elements of the specialization. In the first part of the capstone, students will do some visualizations to become familiar with the technologies in use and then will pursue their own project to visualize some other data that they have or can find. Chapter 15 from the book “Python for Informatics” will serve as the backbone for the capstone. This course covers Python 2. [-]

Course in Data Science (Beginner)

Coursera
Online Part time 3 - 6 months Open Enrollment USA USA Online

This Specialization covers the concepts and tools you'll need throughout the entire data science pipeline, from asking the right kinds of questions to making inferences and publishing results. In the final Capstone Project, you’ll apply the skills learned by building a data product using real-world data. At completion, students will have a portfolio demonstrating their mastery of the material. [+]

Online Courses in Engineering & Technology in USA. Ask the right questions, manipulate data sets, and create visualizations to communicate results. This Specialization covers the concepts and tools you'll need throughout the entire data science pipeline, from asking the right kinds of questions to making inferences and publishing results. In the final Capstone Project, you’ll apply the skills learned by building a data product using real-world data. At completion, students will have a portfolio demonstrating their mastery of the material. Courses The Data Scientist’s Toolbox In this course you will get an introduction to the main tools and ideas in the data scientist's toolbox. The course gives an overview of the data, questions, and tools that data analysts and data scientists work with. There are two components to this course. The first is a conceptual introduction to the ideas behind turning data into actionable knowledge. The second is a practical introduction to the tools that will be used in the program like version control, markdown, git, GitHub, R, and RStudio. R Programming In this course you will learn how to program in R and how to use R for effective data analysis. You will learn how to install and configure software necessary for a statistical programming environment and describe generic programming language concepts as they are implemented in a high-level statistical language. The course covers practical issues in statistical computing which includes programming in R, reading data into R, accessing R packages, writing R functions, debugging, profiling R code, and organizing and commenting R code. Topics in statistical data analysis will provide working examples. Getting and Cleaning Data Before you can work with data you have to get some. This course will cover the basic ways that data can be obtained. The course will cover obtaining data from the web, from APIs, from databases and from colleagues in various formats. It will also cover the basics of data cleaning and how to make data “tidy”. Tidy data dramatically speed downstream data analysis tasks. The course will also cover the components of a complete data set including raw data, processing instructions, codebooks, and processed data. The course will cover the basics needed for collecting, cleaning, and sharing data. Exploratory Data Analysis This course covers the essential exploratory techniques for summarizing data. These techniques are typically applied before formal modeling commences and can help inform the development of more complex statistical models. Exploratory techniques are also important for eliminating or sharpening potential hypotheses about the world that can be addressed by the data. We will cover in detail the plotting systems in R as well as some of the basic principles of constructing data graphics. We will also cover some of the common multivariate statistical techniques used to visualize high-dimensional data. Reproducible Research This course focuses on the concepts and tools behind reporting modern data analyses in a reproducible manner. Reproducible research is the idea that data analyses, and more generally, scientific claims, are published with their data and software code so that others may verify the findings and build upon them. The need for reproducibility is increasing dramatically as data analyses become more complex, involving larger datasets and more sophisticated computations. Reproducibility allows for people to focus on the actual content of a data analysis, rather than on superficial details reported in a written summary. In addition, reproducibility makes an analysis more useful to others because the data and code that actually conducted the analysis are available. This course will focus on literate statistical analysis tools which allow one to publish data analyses in a single document that allows others to easily execute the same analysis to obtain the same results. Statistical Inference Statistical inference is the process of drawing conclusions about populations or scientific truths from data. There are many modes of performing inference including statistical modeling, data oriented strategies and explicit use of designs and randomization in analyses. Furthermore, there are broad theories (frequentists, Bayesian, likelihood, design based, …) and numerous complexities (missing data, observed and unobserved confounding, biases) for performing inference. A practitioner can often be left in a debilitating maze of techniques, philosophies and nuance. This course presents the fundamentals of inference in a practical approach for getting things done. After taking this course, students will understand the broad directions of statistical inference and use this information for making informed choices in analyzing data. Regression Models Linear models, as their name implies, relates an outcome to a set of predictors of interest using linear assumptions. Regression models, a subset of linear models, are the most important statistical analysis tool in a data scientist’s toolkit. This course covers regression analysis, least squares and inference using regression models. Special cases of the regression model, ANOVA and ANCOVA will be covered as well. Analysis of residuals and variability will be investigated. The course will cover modern thinking on model selection and novel uses of regression models including scatterplot smoothing. Practical Machine Learning One of the most common tasks performed by data scientists and data analysts are prediction and machine learning. This course will cover the basic components of building and applying prediction functions with an emphasis on practical applications. The course will provide basic grounding in concepts such as training and tests sets, overfitting, and error rates. The course will also introduce a range of model based and algorithmic machine learning methods including regression, classification trees, Naive Bayes, and random forests. The course will cover the complete process of building prediction functions including data collection, feature creation, algorithms, and evaluation. Developing Data Products A data product is the production output from a statistical analysis. Data products automate complex analysis tasks or use technology to expand the utility of a data informed model, algorithm or inference. This course covers the basics of creating data products using Shiny, R packages, and interactive graphics. The course will focus on the statistical fundamentals of creating a data product that can be used to tell a story about data to a mass audience. Data Science Capstone The capstone project class will allow students to create a usable/public data product that can be used to show your skills to potential employers. Projects will be drawn from real-world problems and will be conducted with industry, government, and academic partners. [-]