We may earn an affiliate commission when you visit our partners.
Course image
Tyson Gern and Mike Barinek

The course is intended for individuals looking to understand the basics of software engineering as they relate to building large software systems that leverage big data. You will be introduced to software engineering concepts necessary to build and scale large, data intensive, distributed systems. Starting with software engineering best practices and loosely coupled, highly cohesive data microservices, the course takes you through the evolution of a distributed system over time.

Read more

The course is intended for individuals looking to understand the basics of software engineering as they relate to building large software systems that leverage big data. You will be introduced to software engineering concepts necessary to build and scale large, data intensive, distributed systems. Starting with software engineering best practices and loosely coupled, highly cohesive data microservices, the course takes you through the evolution of a distributed system over time.

This course can be taken for academic credit as part of CU Boulder’s MS in Data Science or MS in Computer Science degrees offered on the Coursera platform. These fully accredited graduate degrees offer targeted courses, short 8-week sessions, and pay-as-you-go tuition. Admission is based on performance in three preliminary courses, not academic history. CU degrees on Coursera are ideal for recent graduates or working professionals. Learn more:

MS in Data Science: https://www.coursera.org/degrees/master-of-science-data-science-boulder

MS in Computer Science: https://coursera.org/degrees/ms-computer-science-boulder

Enroll now

What's inside

Syllabus

Software Engineering Overview
Welcome to Fundamentals of Software Architecture for Big Data. In the first week of this course, you will learn the basics of modern software engineering. You will learn how our industry progresses over time, practice test driven development, and implement widely used data structures.
Read more
Fundamentals of Software Architecture
In this week you will learn the fundamentals of software architecture. You will learn how to evolve an architecture over time, how to work within a large codebase, and a bit about blockchain.
Fundamentals of Production Software
This week you will learn the fundamentals of monitoring software in production. You will learn how to create reliable background jobs, how to calculate and communicate service availability, and how to implement production metrics and monitoring.
Fundamentals of Software Architecture for Big Data
In this last week of the course, you will learn the fundamentals of production quality databases and messaging systems. You will understand the tradeoffs between consistency and availability, how to implement database transactions to improve consistency, and how to implement messaging systems to improve availability.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Learners will gain a solid grasp of software engineering principles, particularly as they relate to data science and computer science fields
Focuses on how software architecture evolves over time and may be modified to meet modern demands, such as blockchain
Introduces students to best practice in monitoring software in production environments
Provides a strong foundation for learners moving from theoretical knowledge of software engineering to implementation in real-world scenarios
Concepts like data microservices, loosely coupled architecture, and blockchain have high relevance to the industry today
Teaches essential skills in data structures, test driven development and working within large codebases

Save this course

Save Fundamentals of Software Architecture for Big Data to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Fundamentals of Software Architecture for Big Data with these activities:
Read "Designing Data-Intensive Applications"
This book provides a comprehensive overview of the principles and techniques used in designing and building data-intensive applications.
View Secret Colors on Amazon
Show steps
  • Read the book cover-to-cover.
  • Take notes on the key concepts.
  • Work through the exercises.
Create a software design document
Creating a software design document will help you solidify your understanding of software architecture principles and best practices.
Browse courses on Software Design
Show steps
  • Identify the system's requirements.
  • Create a high-level design.
  • Develop a detailed design.
  • Document your design.
Follow a tutorial on building a data pipeline
Following a tutorial on building a data pipeline will help you gain practical experience with the tools and techniques used in big data systems.
Browse courses on Data Pipelines
Show steps
  • Find a tutorial that is appropriate for your skill level.
  • Follow the tutorial step-by-step.
  • Test your pipeline to ensure that it is working correctly.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Practice solving LeetCode-style coding problems
Solving LeetCode-style coding problems will help you improve your problem-solving and coding skills.
Browse courses on Data Structures
Show steps
  • Find a set of LeetCode problems that are appropriate for your skill level.
  • Solve the problems.
  • Review your solutions and identify areas for improvement.
Join a study group with other students in the course
Participating in a study group will help you connect with other students and learn from their experiences.
Browse courses on Collaboration
Show steps
  • Find a study group that meets your needs.
  • Participate in the study group regularly.
  • Contribute to the group's discussions.
Build a data-driven web application
Building a data-driven web application will help you apply the concepts you have learned in the course to a real-world project.
Browse courses on Web Development
Show steps
  • Decide on the scope of your project.
  • Gather the necessary data.
  • Design and develop your web application.
Mentor a newer student in the course
Mentoring a newer student will help you solidify your understanding of the course material and develop your leadership skills.
Browse courses on Mentoring
Show steps
  • Find a newer student who is willing to be mentored.
  • Meet with your mentee regularly.
  • Provide guidance and support.

Career center

Learners who complete Fundamentals of Software Architecture for Big Data will develop knowledge and skills that may be useful to these careers:
Software Architect
Software Architects design, build, and maintain the software systems that power modern businesses. They work closely with engineers and other stakeholders to ensure that systems are scalable, reliable, and secure. The Fundamentals of Software Architecture for Big Data course can help you develop the skills and knowledge you need to become a successful Software Architect. This course will teach you about the principles of software architecture, how to design and implement distributed systems, and how to manage and monitor software in production. This specialized knowledge can be highly sought-after in this particular role.
Data Architect
Data Architects design and manage the data systems that businesses use to store and analyze data. They work closely with business stakeholders to understand their data needs and then design systems that can meet those needs. The Fundamentals of Software Architecture for Big Data course can help you develop the skills and knowledge you need to become a successful Data Architect. This course will teach you about the principles of data architecture, how to design and implement data systems, and how to manage and monitor data in production.
Big Data Engineer
Big Data Engineers work with big data technologies to design, build, and maintain data systems. They work closely with data scientists and other stakeholders to ensure that data systems are scalable, reliable, and secure. The Fundamentals of Software Architecture for Big Data course can help you develop the skills and knowledge you need to become a successful Big Data Engineer. This course will teach you about the principles of software architecture, how to design and implement distributed systems, and how to manage and monitor software in production.
Database Administrator
Database Administrators manage and maintain the databases that businesses use to store data. They work closely with database engineers and other stakeholders to ensure that databases are available, reliable, and secure. The Fundamentals of Software Architecture for Big Data course can help you develop the skills and knowledge you need to become a successful Database Administrator. This course will teach you about the principles of database management, how to design and implement databases, and how to manage and monitor databases in production.
Software Engineer
Software Engineers design, build, and maintain software systems. They work closely with other engineers and stakeholders to ensure that software is scalable, reliable, and secure. The Fundamentals of Software Architecture for Big Data course can help you develop the skills and knowledge you need to become a successful Software Engineer. This course will teach you about the principles of software engineering, how to design and implement software systems, and how to manage and monitor software in production.
Data Scientist
Data Scientists use data to solve business problems. They work closely with other stakeholders to understand business needs and then use data to develop solutions. The Fundamentals of Software Architecture for Big Data course may be useful for Data Scientists who want to learn more about the principles of software architecture and how to design and implement data systems.
Product Manager
Product Managers work with engineers and other stakeholders to define, design, and build products. They work closely with customers to understand their needs and then work with engineers to develop products that meet those needs. The Fundamentals of Software Architecture for Big Data course may be useful for Product Managers who want to learn more about the principles of software architecture and how to design and implement software systems.
Business Analyst
Business Analysts work with businesses to identify and solve problems. They work closely with stakeholders to understand business needs and then develop solutions that meet those needs. The Fundamentals of Software Architecture for Big Data course may be useful for Business Analysts who want to learn more about the principles of software architecture and how to design and implement software systems.
Project Manager
Project Managers plan, organize, and execute projects. They work closely with stakeholders to define project scope, timelines, and budgets. The Fundamentals of Software Architecture for Big Data course may be useful for Project Managers who want to learn more about the principles of software architecture and how to design and implement software systems.
Technical Writer
Technical Writers create documentation for software and other technical products. They work closely with engineers and other stakeholders to understand the product and then create documentation that is clear, concise, and easy to understand. The Fundamentals of Software Architecture for Big Data course may be useful for Technical Writers who want to learn more about the principles of software architecture and how to design and implement software systems.

Reading list

We've selected 14 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Fundamentals of Software Architecture for Big Data.
Widely acclaimed in the industry, this book has become a must-have resource for building microservices architecturally. It offers a detailed explanation of designing, building, and deploying microservice-based applications.
Introduces the principles and practices of test-driven development. It provides a step-by-step guide to writing tests and using them to drive the development process.
Provides a comprehensive guide to designing and implementing scalable software systems. It covers topics such as data partitioning, caching, and load balancing.
Provides a comprehensive guide to designing data-intensive applications that can handle large amounts of data effectively and efficiently. It covers topics like data modeling, storage systems, and distributed systems.
Introduces a methodology for designing software systems that are aligned with the domain knowledge of the business. It provides a practical approach to modeling complex domains and implementing them in software.
Novel that tells the story of a fictional company that is struggling to implement software development best practices. It provides a valuable illustration of the challenges and benefits of software engineering.
Provides a comprehensive guide to implementing DevOps in software development. It covers topics such as cultural change, process improvement, and tool integration.
Presents a practical approach to designing software architectures that are maintainable, extensible, and testable. It introduces the concept of Clean Architecture, which separates the business logic from the technical implementation.
Provides a practical guide to implementing site reliability engineering in software development. It covers topics such as monitoring, alerting, and incident response.
Provides a concise and accessible introduction to distributed systems. It covers topics such as consensus, fault tolerance, and distributed coordination.
Classic in the field of software architecture and provides a comprehensive overview of the principles and practices of software architecture. It covers topics like architectural styles, patterns, and analysis techniques.
Is an accessible and engaging introduction to design patterns. It uses a visual approach to explain the concepts and provides numerous examples to illustrate their application.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Fundamentals of Software Architecture for Big Data.
Applications of Software Architecture for Big Data
Most relevant
Software Architecture Patterns for Big Data
Most relevant
Dynamic Programming, Greedy Algorithms
Most relevant
Deep Learning Applications for Computer Vision
Most relevant
When to Regulate? The Digital Divide and Net Neutrality
Most relevant
Fundamentals of Data Visualization
Most relevant
Data Mining Methods
Most relevant
Data Mining Pipeline
Most relevant
Advanced Data Structures, RSA and Quantum Algorithms
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser