Back to Catalog

Software Engineering Fundamentals

Premium
Beginnercourse

Build the foundation for a software engineering-related career and become conversant about topics in this in-demand field. Explore fundamental principles, processes, architecture, tools, and stacks. Hear software experts discuss their experiences.

Language

  • English

Topic

  • Computer Science & Information Technology

Industries

  • Information Technology

Skills You Will Learn

  • Web Development, Software Engineering, Agile Software Development, Computer Programming, Software Development, Front End Web Development

Offered By

  • IBMSkillsNetwork

Estimated Effort

  • 6 weeks

Platform

  • SkillsNetwork

Last Update

  • September 11, 2024
About This course
Nearly every industry relies on proprietary software to accelerate its growth, providing a wide variety of opportunities. With the importance of software engineers and the skillset required, it isn’t surprising that the salary of a software engineer averages upwards of $100,000 annually in the US. If you want to investigate this sought-after field, this course is for you, no prior skills in software development are required. 
 
The course is intended for beginners who want to learn more about the field, including those just starting their careers, career-switchers, or anyone just wanting to become conversant with their software engineering colleagues about the industry. 

You will learn about the power of the Software Development Lifecycle (SDLC) and software development methodologies such as Agile. You explore fundamental programming principles and foundations of design, architecture, and deployment, investigate skills that a software engineer needs, and identify job opportunities with hands-on projects. You will also learn about programming basics, tools used for software development, and development stacks. 
 
Throughout this course, you’ll hear first-hand experiences from expert software engineers to get a feel for the job and listen to their perspectives. The course offers a number of labs that will help you get important hands-on experience. These include exploring an interactive development environment (IDE) and practicing basic programming concepts by developing the simple “Hello World” program in ten languages. After completing this introductory course, you will understand software engineering fundamentals including the tools, technologies, terminology, processes, and practices used in the industry. 

Course Syllabus

Module 1: What is Software Engineering? 
  • Introduction to the SDLC 
  • Phases of the SDLC 
  • Activity: Phases in the SDLC 
  • Building Quality Software 
  • Requirements 
  • Software Development Methodologies 
  • Software Versions 
  • Software Testing 
  • Software Documentation 
  • Roles in Software Engineering Projects 
  • Insiders' Viewpoint: Job Roles in Software Engineering Teams 
  • The Software Building Process and Associated Roles 
Module 2: Introduction to Software Development 
  • Overview of Web and Cloud Development 
  • Learning Front-End Development 
  • The Importance of Back-End Development 
  • Teamwork and Squads 
  • Insiders' Viewpoint: Teamwork in Software Engineering 
  • Pair Programming 
  • Insiders' Viewpoint: Pair Programming 
  • Activity: Categorizing Front- and Back-End Technologies 
  • Introduction to Development 
  • Application Development Tools 
  • More Application Development Tools 
  • Software Stacks 
  • Hands-on Lab: Getting Started With an IDE 
  • Insiders' Viewpoint: Tools and Technologies 
  • Tools in Software Development 
Module 3: Introduction to Programming 
  • Comparing Compiled and Interpreted Languages 
  • Query and Assembly Languages 
  • Understanding Code Organization Methods 
  • Insiders' Viewpoint: Types of Languages 
  • Activity: Programming Logic and Organizational Methods 
  • Programming Languages and Organization 
  • Branching and Looping Programming Logic 
  • Introduction to Programming  
  • Hands-on Lab: Programming Fundamentals with Python 
  • Introduction to Programming Concepts 
Module 4: Software Architecture, Design, and Patterns 
  • Introduction to Software Architecture 
  • Software Design and Modeling 
  • Object-Oriented Analysis and Design 
  • Insiders' Viewpoint: Importance of Design and Software Architecture 
  • Activity:  Create an Architectural Diagram 
  • Software Architecture and Design 
  • Approaches to Application Architecture 
  • Architectural Patterns in Software 
  • Application Deployment Environments 
  • Production Deployment Components 
  • Insiders' Viewpoint: Deployment Architecture 
  • Software Architecture Patterns and Deployment Topologies 
Module 5: Job Opportunities and Skillsets  
  • What Does a Software Engineer Do? 
  • A Day in the Life of a Software Engineer 
  • Skills Required for Software Engineering 
  • Insiders' Viewpoint: Advice to Future Software Engineers 
  • Insiders' Viewpoint:  Women in Software Engineering 
  • Job Outlook for Software Engineers 
  • Career Paths in Software Engineering 
  • Software Engineering Job Titles 
  • Insiders' Viewpoint: Career Paths 
  • Activity: Matching Roles with Responsibilities 
  • Code of Ethics 

Learning Objectives:

• Describe how the Software Development Lifecycle (SDLC) facilitates software development, and identify the purposes of common development tools, technologies, and stacks used to develop enterprise software. 
• Compare and contrast types of programming languages and generate Python code using basic programming constructs such as loops and conditions. 
• Outline approaches to application architecture and design, patterns, and deployment. 
• Summarize how common soft and technical software engineering skills apply to different related roles and describe possible career pathways stemming from this skillset

Prerequisites 

Basic computer literacy 


Instructors

Rav Ahuja

Global Program Director, IBM Skills Network

Rav Ahuja is a Global Program Director at IBM. He leads growth strategy, curriculum creation, and partner programs for the IBM Skills Network. Rav co-founded Cognitive Class, an IBM led initiative to democratize skills for in demand technologies. He is based out of the IBM Canada Lab in Toronto and specializes in instructional solutions for AI, Data, Software Engineering and Cloud. Rav presents at events worldwide and has authored numerous papers, articles, books and courses on subjects in managing and analyzing data. Rav holds B. Eng. from McGill University and MBA from University of Western Ontario.

Read more