Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Software Engineering for Data Scientists and Programmers
Rating: 3.4 out of 5(4 ratings)
598 students

Software Engineering for Data Scientists and Programmers

Engineer software projects from scratch as a data scientist or as a programmer and excel as a Software Engineer.
Last updated 11/2021
English
English [Auto],

What you'll learn

  • Gain an in-depth understanding of Software Engineering including its importance.
  • Learn Scrum, Kanban, Agile, Waterfall, Prototyping, Incremental, RAD and Spiral Software Process Models.
  • Learn to perform systematic Software Requirement Engineering.
  • Learn Context, Process, Behavioral, Semantic Data and Object system models using Unified Modeling Language (UML).
  • Learn to architect software systems using client-server and distributed system architecture.
  • Learn to design real-time systems.
  • Learn Component-based Engineering for working on large Software projects.
  • Learn about Unit, Module, Sub-system, System and Acceptance Software Testing.
  • Learn Software Cost Estimation methods such as COCOMO, Machine Learning, Delphi, etc.

Course content

1 section12 lectures1h 38m total length
  • Welcome to the course!2:23

    Explore software engineering for data scientists and programmers, covering process models (waterfall, prototyping, incremental, rad, spinal), agile methods, unified modeling language, architecture, testing, and cost estimation.

  • What is Software Engineering?8:09

    Explore how software engineering uses scientific methods to design and deliver quality software, not programming, addressing the software crisis and emphasizing quality attributes such as correctness and portability.

  • Software Process Models15:12

    Explore five software process models—linear sequential (waterfall), prototyping, rapid application development, incremental, and spiral—covering their workflows, advantages, and when to apply each in real projects.

  • Agile Development Model10:30

    Master the agile development model and its principles, including working software, incremental delivery, customer collaboration, and responding to change, with Kanban and Scrum frameworks.

  • Software Requirement Engineering7:25

    Explore a four-step process of software requirements engineering—feasibility, elicitation and analysis, specification, and validation—aligning client needs with contracts through user, system, and software design specifications, plus functional and non-functional constraints.

  • System Modeling15:14

    Explore system modeling by analyzing context models, process models, data flow diagrams, behavioral models (data processing and state machines), semantic data models, and object models to design clear software architectures.

  • Software Architectural Designs8:49

    Explore how software architectural designs define components and interfaces, covering two-tier and three-tier client-server models, thin versus fat clients, and distributed system architecture with object request broker.

  • Real-time System Design6:12

    Learn real-time system design by mapping sensors and actuators to timely responses for periodic and unpredictable stimuli, using cooperative processes and a real-time operating system to meet strict timing constraints.

  • Component-based Engineering5:41

    Explore component based software engineering (CBC) by identifying candidate components, defining their interfaces, and composing them through sequential, hierarchical, and additive methods to deliver a scalable system with reusable components.

  • Software Testing4:29

    Explore the full spectrum of software testing, from unit and model tests to integration, system, and acceptance testing, guided by test plans and debugging, and maintenance testing.

  • Software Cost Estimation14:39

    Explore software cost estimation techniques, from algorithmic models like Kokomo to expert judgment and Delphi, top-down and bottom-up methods, and learning oriented approaches using regression and machine learning.

  • Bonus Lecture0:11

Requirements

  • No programming experience is required.

Description

The 'Software Engineering for Data Scientists and Programmers' course is the most comprehensive, up-to-date, and concise course on software engineering available to date. It covers all the fundamental plus advanced topics needed to excel as a software engineer in both a data scientist and a programmer role.

The course starts with an introduction to Software Engineering and highlights its importance. You're also taught about different software process models right from the start including Scrum and Kanban, which are two of the most used software process models in the present day.

After you receive a complete overview of what Software Engineering looks like, you will move on to learn how to systematically perform requirement engineering. You will also learn to represent the gathered requirements using system models such as Context models and Object models through the Unified Modeling Language (UML).

The course teaches you multiple topics including software architectural design, software testing, software cost estimation, and much more to widen your knowledge as a full-fledged Software Engineer.

Why you should take this course?

  • Updated 2026 course content: All our course content is updated as per the latest technologies and tools available in the market

  • Guided support: We are always there to guide you through the Q/As so feel free to ask us your queries.

Who this course is for:

  • Programmers looking to excel themselves and move into project manager roles.
  • Data Scientists looking to take a systematic approach for engineering Machine Learning projects.
  • Project Managers looking to refresh and update their Software Engineering knowledge.