Foundations of Software Development - Data Structures and Algorithms

sop-webfb-104-25B

Foundations of Software Development - Data Structures and Algorithms

USD 120 / NGN 100,000

Introduction

Students build a foundation for creating optimized and well-designed systems. Additionally, it addresses technical solutions to common challenges in job interviews. 

Course Description

 This course explores principles of software development, architectural patterns, testing, algorithms, data structures, and time complexity. Throughout the course, we will closely examine systematic thinking and problem-solving to generate optimized code, especially when dealing with large datasets.

Syllabus

Week 1: 

  • Lesson 1: Introduction to Data Structures and Algorithms – Fibonacci Sequence – 9:03 
  • Lesson 2: Python algorithms, arrays, filtering out duplicates – 5:28 
  • Lesson 3: Implementation of the bubble sort algorithm in Python – 4:36 


Assignment 1 

Week 2: 

  • Lesson 1: Selection Sort Implementation in Python – 4:29 
  • Lesson 2: Insertion Sort Implementation in Python – 7:02

Assignment 2 

Week 3: 

  • Lesson 1: Quick Sort Implementation in Python – 7: 39 
  • Lesson 2: Counting Sort algorithm and its Python Implementation – 11:14 

Assignment 3 

Week 4: 

  • Lesson 1: Radix Sort Implementation in Python  - 10:03
  • Lesson 2: Merge Sort Implementation in Python  - 7:31

Assignment 4 


Week 5: 

  • Lesson 1: Search Algorithms and Python Implementation – 14:08 

Quiz 1: 10 % of final grade 


Week 6: 

  • Lesson 1: Linked Lists, and Singly Linked List – 18:51 
  • Lesson 2: Doubly and Circular Linked List – 13:21 

Assignment 5 


Week 7: 

Stacks and Queues 


Assignment 6 

Week 8: 

Hash Tables 

Hash Sets 

Hash Maps 


Assignment 7 

Week 9: 

Tree Data Structure 

Binary Trees and Preorder Traversals 

In-order and post-order traversals 


Quiz 2 : 10% of Final Grade 

Week 10: 

Array Implementation of Binay Trees 

Binary Search trees 


Assignment 8 

Week 11: 

Graph Data Structure, Implementation, and Traversal 


Assignment 9: 

Week 12: 

The Shortest Path Problem 

Technical Solutions 


Assignment 10: 

Week 13: 

  • Lesson 1: The minimum spanning tree problem


Week 13: 

  • Lesson 1: The maximum flow problem


Final Exam: 20% of final grade 

Week 15: 


SDLC model and Phases 

Design Principles (Modularity, reusability, scalability) 

Architectural Patterns (Layered Architecture, Microservices, event-driven architecture) 

Software Testing Build tools 

Coding Style 

Version Control 

API Testing 


Course Outline

Week 1: 

  • Lesson 1: Introduction to Data Structures and Algorithms – Fibonacci Sequence – 9:03 
  • Lesson 2: Python algorithms, arrays, filtering out duplicates – 5:28 
  • Lesson 3: Implementation of the bubble sort algorithm in Python – 4:36 


Assignment 1 

Week 2: 

  • Lesson 1: Selection Sort Implementation in Python – 4:29 
  • Lesson 2: Insertion Sort Implementation in Python – 7:02

Assignment 2 

Week 3: 

  • Lesson 1: Quick Sort Implementation in Python – 7: 39 
  • Lesson 2: Counting Sort algorithm and its Python Implementation – 11:14 

Assignment 3 

Week 4: 

  • Lesson 1: Radix Sort Implementation in Python  - 10:03
  • Lesson 2: Merge Sort Implementation in Python  - 7:31

Assignment 4 


Week 5: 

  • Lesson 1: Search Algorithms and Python Implementation – 14:08 

Quiz 1: 10 % of final grade 


Week 6: 

  • Lesson 1: Linked Lists, and Singly Linked List – 18:51 
  • Lesson 2: Doubly and Circular Linked List – 13:21 

Assignment 5 


Week 7: 

Stacks and Queues 


Assignment 6 

Week 8: 

Hash Tables 

Hash Sets 

Hash Maps 


Assignment 7 

Week 9: 

Tree Data Structure 

Binary Trees and Preorder Traversals 

In-order and post-order traversals 


Quiz 2 : 10% of Final Grade 

Week 10: 

Array Implementation of Binay Trees 

Binary Search trees 


Assignment 8 

Week 11: 

Graph Data Structure, Implementation, and Traversal 


Assignment 9: 

Week 12: 

The Shortest Path Problem 

Technical Solutions 


Assignment 10: 

Week 13: 

  • Lesson 1: The minimum spanning tree problem


Week 13: 

  • Lesson 1: The maximum flow problem


Final Exam: 20% of final grade 

Week 15: 


SDLC model and Phases 

Design Principles (Modularity, reusability, scalability) 

Architectural Patterns (Layered Architecture, Microservices, event-driven architecture) 

Software Testing Build tools 

Coding Style 

Version Control 

API Testing 


Level
difficult
Duration
15 weeks
Commitment
12-15 hrs per week
Prerequisite
Python Fundamentals
Fee
USD 120 / NGN 100,000
Learning style
<p><b>Format</b> : Online</p><p><b>Tools Required:</b> A PC with an Internet connection. While a phone can be used to complete this course, assignments can be challenging to complete on it.</p><p><b>Week start </b>: Sunday, 4 pm US Eastern Time</p><p><b>Week end</b>:  Sunday 3:59 PM US Eastern Time</p><p>Pre-recorded Lesson videos will be uploaded every Sunday. Students can log in any day of the week to watch lesson videos and complete graded activities.  Live classes will be held via Zoom periodically, based on student demand, for 2 hours per week.</p>

Instructor

Mildred Ojomah-Christopher

Master of Liberal Arts: Software Engineering - Harvard University

Graduate Certificate: Data Science - Harvard University

BSc(Hons) : Mathematical Sciences (Computer Science Major) - Kogi State University

Batches

  • Batch B Closed

    sop-webfb-104-25B 9 Nov 2025 to 1 Feb 2026 93 places left

    Enrollment is closed for this batch.