We may earn an affiliate commission when you visit our partners.
Josh Bernhard , Mike Yi, Judit Lantos, David Drummond, Andrew Paster, Juno Lee, and Luis Serrano
Software engineering skills are increasingly important for data scientists. In this course, you'll learn best practices for writing software. Then you'll work on your software skills by coding a Python package and a web data dashboard.

What's inside

Syllabus

Welcome to Software Engineering for Data Scientists! Learn about the course and meet your instructors.
Learn software engineering practices and how they apply in data science. Part one covers clean and modular code, code efficiency, refactoring, documentation, and version control.
Read more
Learn software engineering practices and how they apply in data science. Part two covers testing code, logging, and conducting code reviews.
Learn the basics of object-oriented programming so that you can build your own Python package.
Create your own Python package and upload your package to PyPi.
Develop a data dashboard using Flask, Bootstrap, Plotly and Pandas.
Customize the data dashboard from the previous lesson to make it your own. Upload the dashboard to the web.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops software engineering practices that are in high demand for data scientists
Provides hands-on experience in developing a Python package and a web data dashboard
Taught by industry experts with proven experience in software engineering for data science
Covers essential topics such as code efficiency, testing, and version control, which are crucial for delivering robust software solutions
Requires a solid foundation in Python and data science concepts, making it suitable for intermediate learners
Does not provide comprehensive coverage of advanced software engineering concepts and design patterns

Save this course

Save Software Engineering 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 Software Engineering with these activities:
Review Python programming basics
Strengthen your understanding of Python before starting the course.
Browse courses on Python Syntax
Show steps
  • Go through online tutorials or resources
  • Focus on understanding the fundamentals and core concepts
  • Complete practice exercises to test your understanding
Attend a workshop on object-oriented programming
Gain practical experience and deepen your understanding of object-oriented programming.
Show steps
  • Research and identify relevant workshops
  • Register for the workshop and attend all sessions
  • Actively participate in the hands-on exercises and discussions
  • Take notes and ask questions to clarify concepts
  • Follow up with the workshop organizers or instructors if you have any further questions
Solve easy Python programming problems
Build your confidence in Python programming by practicing solving programming problems.
Browse courses on Python Programming
Show steps
  • Choose a Python practice platform (e.g., HackerRank, LeetCode)
  • Start with easy-level problems and gradually move to harder ones
  • Focus on understanding the problem statement and breaking it down
  • Implement your solution in Python and test it thoroughly
Four other activities
Expand to see all activities and additional details
Show all seven activities
Join a study group to discuss code reviews
Improve your code review skills and learn from others by engaging in discussions.
Browse courses on Code Review
Show steps
  • Find a study group or online discussion forum
  • Participate in code review discussions, providing your feedback and insights
  • Review the code of others and provide constructive criticism
  • Take notes on best practices and common pitfalls
Write a blog post on software engineering best practices
Reinforce your understanding by explaining software engineering best practices to others.
Show steps
  • Choose a specific software engineering topic to focus on
  • Research the topic thoroughly and gather information
  • Structure your blog post with a clear introduction, body, and conclusion
  • Write in a clear and concise manner, providing examples and explanations
  • Publish your blog post on a reputable platform and share it with others
Create a data dashboard using Flask, Bootstrap, Plotly, and Pandas
Apply your skills by building a functional data dashboard to showcase your abilities.
Browse courses on Data Visualization
Show steps
  • Gather the necessary data and prepare it for visualization
  • Design the dashboard layout and choose appropriate visualizations
  • Implement the dashboard using Flask, Bootstrap, Plotly, and Pandas
  • Test the dashboard and make necessary adjustments
  • Deploy the dashboard on a web hosting platform
Contribute to an open-source software project related to software engineering
Gain hands-on experience in software development and contribute to the open-source community.
Browse courses on Open Source Software
Show steps
  • Identify an open-source project aligned with your interests and skills
  • Familiarize yourself with the project's codebase and contribution guidelines
  • Identify an issue or feature to work on and submit a pull request
  • Collaborate with other contributors and maintainers to improve your contribution
  • Document your contributions and share your experience with others

Career center

Learners who complete Software Engineering will develop knowledge and skills that may be useful to these careers:
Data Analyst
Data Analysts collect, clean, and analyze data to identify trends and patterns. This course may be useful for building a foundation in software engineering practices for data analysis. This course can introduce you to clean and modular code, code efficiency, refactoring, documentation, version control, testing code, logging, and conducting code reviews.
Web Developer
Web Developers design and develop websites. This course may be useful for building a foundation in software engineering practices for web development. This course can introduce you to clean and modular code, code efficiency, refactoring, documentation, version control, testing code, logging, and conducting code reviews.
Machine Learning Engineer
Machine Learning Engineers design and develop machine learning models. This course may be useful for building a foundation in software engineering practices for machine learning. This course can introduce you to clean and modular code, code efficiency, refactoring, documentation, version control, testing code, logging, and conducting code reviews.
Data Scientist
Data Scientists use scientific methods, processes, algorithms, and systems to extract knowledge and insights from data. This course may be useful for building a foundation in software engineering practices for data science. This course can introduce you to clean and modular code, code efficiency, refactoring, documentation, version control, testing code, logging, and conducting code reviews.
Software Engineer
Software Engineers design, develop, deploy, and test software applications. This course may be useful for building a foundation in software engineering practices. This course can introduce you to clean and modular code, code efficiency, refactoring, documentation, version control, testing code, logging, and conducting code reviews.
Project Manager
Project Managers plan and execute projects. This course may be useful for building a foundation in software engineering practices for project management. This course can introduce you to clean and modular code, code efficiency, refactoring, documentation, version control, testing code, logging, and conducting code reviews.
Business Analyst
Business Analysts analyze business needs and develop solutions to improve efficiency and effectiveness. This course may be useful for building a foundation in software engineering practices for business analysis. This course can introduce you to clean and modular code, code efficiency, refactoring, documentation, version control, testing code, logging, and conducting code reviews.
Product Manager
Product Managers manage the development and launch of new products. This course may be useful for building a foundation in software engineering practices for product management. This course can introduce you to clean and modular code, code efficiency, refactoring, documentation, version control, testing code, logging, and conducting code reviews.
Technical Writer
Technical Writers create and maintain technical documentation. This course may be useful for building a foundation in software engineering practices for technical writing. This course can introduce you to clean and modular code, code efficiency, refactoring, documentation, version control, testing code, logging, and conducting code reviews.
Systems Analyst
Systems Analysts design and develop computer systems. This course may be useful for building a foundation in software engineering practices for systems analysis. This course can introduce you to clean and modular code, code efficiency, refactoring, documentation, version control, testing code, logging, and conducting code reviews.
Computer Scientist
Computer Scientists conduct research in the field of computer science. This course may be useful for building a foundation in software engineering practices for computer science research. This course can introduce you to clean and modular code, code efficiency, refactoring, documentation, version control, testing code, logging, and conducting code reviews.
Software Architect
Software Architects design and develop software systems. This course may be useful for building a foundation in software engineering practices for software architecture. This course can introduce you to clean and modular code, code efficiency, refactoring, documentation, version control, testing code, logging, and conducting code reviews.
Information Technology Manager
Information Technology Managers plan and manage the implementation of information technology systems. This course may be useful for building a foundation in software engineering practices for information technology management. This course can introduce you to clean and modular code, code efficiency, refactoring, documentation, version control, testing code, logging, and conducting code reviews.
Database Administrator
Database Administrators manage and maintain databases. This course may be useful for building a foundation in software engineering practices for database administration. This course can introduce you to clean and modular code, code efficiency, refactoring, documentation, version control, testing code, logging, and conducting code reviews.
Network Administrator
Network Administrators manage and maintain computer networks. This course may be useful for building a foundation in software engineering practices for network administration. This course can introduce you to clean and modular code, code efficiency, refactoring, documentation, version control, testing code, logging, and conducting code reviews.

Reading list

We've selected ten 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 Software Engineering.
Provides a practical guide to writing clean and maintainable code. It valuable resource for software engineers of all levels.
Provides a practical guide to developing Python packages. It valuable resource for software engineers who want to learn how to create and distribute their own Python packages.
Provides a comprehensive guide to developing web applications with Flask and Bootstrap. It valuable resource for software engineers who want to learn how to create and deploy web applications.
Provides a comprehensive overview of software engineering best practices. It valuable resource for software engineers who want to learn about the latest best practices in software development.
Provides a comprehensive guide to object-oriented analysis and design. It valuable resource for software engineers who want to learn about the latest techniques in object-oriented development.
Provides a comprehensive overview of design patterns. It valuable resource for software engineers who want to learn about the latest techniques in software design.
Provides a comprehensive overview of agile software development. It valuable resource for software engineers who want to learn about the latest techniques in agile development.
Provides a comprehensive overview of test-driven development. It valuable resource for software engineers who want to learn about the latest techniques in test-driven development.

Share

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

Similar courses

Here are nine courses similar to Software Engineering.
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