Software Design as an Abstraction (Coursera)

Software Design as an Abstraction (Coursera)

The design step in developing software has some unique characteristics. First of all, it’s the only step where drawing pictures of things is the norm. Why is that? What do pictures do that other representations cannot do? Pictures have varying levels of detail; pictures have context. Pictures…paint a picture. Why are these things important? In this course, too, we begin looking at other disciplines (building architecture is a favorite one) for lessons on design.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

Course 2 of 4 in the Secure Software Design Specialization

Syllabus

WEEK 1
Who needs abstractions?
Contrasted to design as a step in the software development process, a look at design as an abstract representation of the project.

WEEK 2
Focus on the Users
Design considerations to make when users are involved.

WEEK 3
What if there are no users?
Design considerations to make when users are not involved

WEEK 4
Advanced database design
When to create a database in third-normal form, and when not to.

WEEK 5
The Good and Bad of Design Patterns
When and how design patterns are useful and when they are not.

WEEK 6
Language choices
Choose languages and operating systems wisely because you will have to live with them.

WEEK 7
Final Exam
A comprehensive course assessment comprising of 5 quizzes. Each assessment contains a randomized set of questions from different modules of the course.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Java Programming: Principles of Software Design (Coursera) Coursera
Duke University

Java Programming: Principles of Software Design (Coursera)

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.

Jun 8th 2026
4 Weeks
Introduction to Structured Query Language (SQL) (Coursera) Coursera
University of Michigan

Introduction to Structured Query Language (SQL) (Coursera)

In this course, you'll walk through installation steps for installing a text editor, installing MAMP or XAMPP (or equivalent) and creating a MySql Database. You'll learn about single table queries and the basic syntax of the SQL language, as well as database design with multiple tables, foreign keys, and the JOIN operation. Lastly, you'll learn to model many-to-many relationships like those needed to represent users, roles, and courses.

Jun 8th 2026
4 Weeks
Computer Applications of Artificial Intelligence and e-Construction (edX) EdX
Purdue University,PurdueX

Computer Applications of Artificial Intelligence and e-Construction (edX)

Learn the fundamentals of artificial intelligence, machine learning, natural language processing and their applications in e-Construction. This course is the third in a sequence of interrelated courses of the current computer applications in the construction industry. The emphasis of this course is the advanced computational tools including artificial intelligence, machine learning, and natural language processing, and their applications in e-Construction.

Mar 28th 2022
5-12 Weeks
The Software Architect Code: Building the Digital World (edX) EdX
Universidad Carlos III de Madrid - UC3M,UC3Mx

The Software Architect Code: Building the Digital World (edX)

An introductory course aimed at helping you to discover and develop your software talents to succeed within the digital world. Enhance your software skills and capabilities from a software innovation perspective. Do you have a career in the software industry? Are you a founder of a technical startup or even a business executive willing to know what kind of qualified job applicants do you need to recruit? Or are you a software developer who want to unveil your skills in order to build innovative software products with added value? Join us for this 8-week course to find out.

Self Paced
Self-Paced
Relational database systems (Coursera) Coursera
Universidad Nacional Autónoma de México

Relational database systems (Coursera)

Welcome to the specialization course Relational Database Systems. This course will be completed on six weeks, it will be supported with videos and various documents that will allow you to learn in a very simple way how several types of information systems and databases are available to solve different problems and needs of the companies.

Jun 8th 2026
5-12 Weeks
Software Design Methods and Tools (Coursera) Coursera
University of Colorado System

Software Design Methods and Tools (Coursera)

Since many software developers are compulsive coders, they have created software over the years to help them do their job. There are tools which make design and its associated tasks easier. The course introduces some basic tools and techniques to help you with design. Tools aren’t always tangible, however. The last two lessons of this course discuss questions of Ethics in software development. The purpose here is, as with tools, to equip you to better carry our your responsibilities as a designer. Students will be required to have a prior knowledge of writing and delivering software and some programming knowledge in java.

Jun 8th 2026
5-12 Weeks
Relational Database Design (Coursera) Coursera
Illinois Tech

Relational Database Design (Coursera)

This course provides you with the opportunity to learn about relational database design. You will be provided an in-depth understanding of the design principles and methodologies involved in creating well-structured, normalized, and efficient relational databases to manage data for small, medium, and large-scale enterprises.

Jun 8th 2026
4 Weeks
C++ Class Development (Coursera) Coursera
University of Colorado System

C++ Class Development (Coursera)

This course is the third course in the specialization about learning how to develop video games using the C++ programming language and the Unreal game engine on Windows or Mac. This course assumes you have the prerequisite knowledge from the previous two courses in the specialization. You should make sure you have that knowledge, either by taking those previous courses or from personal experience, before tackling this course.

Jun 15th 2026
4 Weeks
Relational Database Design (Coursera) Coursera
University of Colorado Boulder

Relational Database Design (Coursera)

Have you ever wanted to build a database but don't know where to start? This course will provide you a step-by-step guidance. We are going to start from a raw idea to an implementable relational database. Getting on the path, practicing the real-life mini cases, you will be confident and comfortable with Relational Database Design. Let's get started!

Jun 8th 2026
4 Weeks
Engineering Practices for Building Quality Software (Coursera) Coursera
University of Minnesota

Engineering Practices for Building Quality Software (Coursera)

Agile embraces change which means that team should be able to effectively make changes to the system as team learns about users and market. To be good at effectively making changes to the system, teams need to have engineering rigor and excellence else embracing change becomes very painful and expensive. In this course, you will learn about engineering practices and processes that agile and traditional teams use to make sure the team is prepared for change. In additional, you will also learn about practices, techniques and processes that can help team build high quality software. You will also learn how to calculate a variety of quantitative metrics related to software quality.

Jun 8th 2026
4 Weeks
Database Design and Operational Business Intelligence (Coursera) Coursera
Edureka

Database Design and Operational Business Intelligence (Coursera)

Welcome to the course on Database Design and Operational Business Intelligence. This course is strategically crafted to empower you with the skills needed to design a robust database and efficiently manage intricate datasets. Throughout this course, you will acquire the expertise to develop well-formatted databases that are seamlessly designed to integrate with Power BI.

May 25th 2026
4 Weeks