CSCA 5018: Software Architecture Patterns for Big Data
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 5508
- Course Type: Pathway | Breadth (2023-24 catalog), Elective (2024-25 catalog)
- Specialization: Software Architecture for Big Data
- Instructors: Dr. Tyson Gern, Instructor, and Mike Barinek, Instructor
- Prior knowledge needed: Content covered in CSCA 5008: Fundamentals of Software Architecture for Big Data
- Programming languages: Intermediate to advanced experience with Java/Kotlin, Python
- Math: Basic math experience - through college algebra
- Technical requirements: Mac, Linux, VS Code/Intellij
Course Description
The course is intended for individuals looking to understand the architecture patterns necessary to take large software systems that leverage big data to production.
You will transform big data prototypes into high quality tested production software. After measuring the performance characteristics of distributed systems, you will identify trouble areas and implement scalable solutions to improve performance. Upon completion of the course you will know how to scale production data stores to perform under load, designing load tests to ensure applications meet performance requirements.
Learning Outcomes
- Compare, measure, and test big data models for production use.
- Write custom performance tests to measure the characteristics of a distributed system.
- Use queues to horizontally distribute large workloads.
Course Grading Policy
Assignment | Percentage of Grade |
---|---|
Quiz: Predictive Models | 5% |
Peer Review: Predictive Model Coding Exercise | 15% |
Quiz: Considerations for Messaging Queues | 5% |
Peer Review: Performance Test Coding Exercise | 15% |
Peer Review: Performance Test for Business Requirement | 10% |
Quiz: Improvements | 5% |
Quiz: Consistent Hash Exchange Quiz | 5% |
Quiz: CAP Theorem | 5% |
Quiz: High Availability Databases | 5% |
CSCA 5018 Software Architecture Patterns 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 how to write tests that allow you to iterate on predictive models.
Students can expect the "Predictive Models" quiz and "Predictive Model Coding Exercise" peer reviewed assignement in this module.
Duration: 7 hours
In this module, you will learn how to write performance tests to ensure your distributed system operates as expected in production.
Students can expect the"Considerations for Messaging Queues" quiz and the "Performance Test Coding Exercise" peer review assignment in this module.
Duration: 6 hours
In this module, you will learn how to use queues to horizontally distribute large workloads.
Students can expect the "Performance Test for Business Requirement" peer review assignment and the "Improvements" quiz and the "Consistent Hash Exchange" quiz in this module.
Duration: 6 hours
In this module, you will learn the advantages and disadvantages of high availability distributed systems.
Students can expect the "CAP Theorem" quiz and the "High Availability Databases" 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.
For the final project, you will implement a consistent hash exchange in the Email Verifier codebase so to enable it's RabbitMQ messaging component to horizontally scale effectively. This is a peer reviewed assignment.
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.
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.