Get a head start on program admission

Preview this course in the non-credit experience today! 
Start working toward program admission and requirements right away. Work you complete in the non-credit experience will transfer to the for-credit experience when you upgrade and pay tuition. See How It Works for details.

Cross-listed with DTSA 5507

  • Course Type: Pathway | Breadth
  • Specialization: Software Architecture for Big Data
  • Instructors: Dr. Tyson Gern, Instructor, and Mike Barinek, Instructor
  • Prior knowledge needed: Software engineering or big data experience

View on Coursera

Course Description

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.

Learning Outcomes

  • Identify big data or large, distributed systems.
  • Know when and when not to use big data.
  • Practice software engineering fundamentals.
  • Create an application that uses rest collaboration, event collaboration and/or batch processing.
  • Deploy an application to a continuous integration/delivery environment.

Course Grading Policy

Assignment

Percentage of Grade

Quiz: No Silver Bullet

5%

Peer Review: Simple Aged Cache Coding Exercise

15%

Quiz: Blockchain

5%

Peer Review: Provenance Coding Exercise

15%

Quiz: Deployment Papers

5%

Quiz: Provenance Metrics

5%

Quiz: CAP Theorem

5%

Quiz: The Milk Problem

10%

Quiz: Perspectives on CAP Theorem

5%

CSCA 5008 Fundamentals of Software Architecture for Big Data Final Project

30%

Peer Reviews

A pivotal element of this course is the timely completion of peer reviews.

In the realm of software engineering, code review is more than just a step in the development process; it's an indispensable practice that significantly shapes the quality and reliability of the software product. It's an opportunity to learn, grow, and contribute to the collective quality of the team's work. You, as an aspiring software engineer, are preparing to become a part of this collaborative ethos, where reviewing others' work will be as crucial as coding itself.

Timely peer reviews in our course echo this professional practice, providing a platform for you to develop this critical skill. Each review you complete is not merely a critique of a fellow learner's work, but a step in refining your own understanding, enhancing your analytical skills, and cultivating an eye for code quality. It’s a process that benefits you, your peers, and our entire learning community.

Remember the importance of timely peer reviews and emulate the professional environment we are striving to join. Help more learners complete this course by giving more reviews. Your active participation contributes immensely to our shared goal of learning, growing, and preparing for the dynamic world of software engineering.

All peer review assignments are due 3 days before the end of the session. This deadline ensures there is enough time for your submissions to accrue all required reviews.

Course Content

Duration: 7 hours

In this module, 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.

Students can expect a "no silver bullet" quiz and a peer reviewed coding exercise at the end of this module.

Duration: 5 hours

In this module, 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.

Students can expect a "Blockchain" quiz and a peer reviewed coding exercise at the end of this module.

Duration: 3 hours

In this module, 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.

Students can expect two quizzes in this module, "Deploment Papers" and "Provenance Metrics".

Duration: 5 hours

In this module, you will learn the fundamentals of production quality databases and messaging systems. You will learn to understand the tradeoffs between consistency and availability, how to implement database transactions to improve consistency, and how to implement messaging systems to improve availability.

Students can expect the "Cap Theorem" quiz, the "Milk Problem" quiz and the "Perspectives on CAP Theorem" quiz in this module.

Duration: 2 hours

This module contains materials for the final project. If you've upgraded to the for-credit version of this course, please make sure you review the additional for-credit materials in the introductory module and anywhere else they may be found.

Students will complete the Peer Reviewed Assesment for the final in this module. Submit your file for review from peers and make sur eyou review your peers. Submission of your own assignement for review and reviewing your peers are both required. All peer review assignments are due 3 days before the end of the session. This deadline ensures there is enough time for your submissions to accrue all required reviews.

Notes

  • Cross-listed Courses: Courses that are offered under two or more programs. Considered equivalent when evaluating progress toward degree requirements. You may not earn credit for more than one version of a cross-listed course.
  • Page Updates: This page is periodically updated. Course information on the Coursera platform supersedes the information on this page. Click the View on Coursera button above for the most up-to-date information.