Computer Science

The registration fee to apply for this course is Ksh. 2,000. Units that registered students will undertake include:

  • Introduction to Computer Science and Programming Using Python
  • Logic and Computational Thinking
  • Python Data Structures
  • Object-Oriented Programming

Introduction to Computer Science and Programming Using Python

About this course

This course is the first of a two-course sequence: Introduction to Computer Science and Programming Using Python, and Introduction to Computational Thinking and Data Science. Together, they are designed to help people with no prior exposure to computer science or programming learn to think computationally and write programs to tackle useful problems. Some of the people taking the two courses will use them as a stepping stone to more advanced computer science courses, but for many it will be their first and last computer science courses. This run features lecture videos, lecture exercises, and problem sets using Python 3.5. Even if you previously took the course with Python 2.7, you will be able to easily transition to Python 3.5 in future courses, or enroll now to refresh your learning.

Since these courses may be the only formal computer science courses many of the students take, we have chosen to focus on breadth rather than depth. The goal is to provide students with a brief introduction to many topics so they will have an idea of what is possible when they need to think about how to use computation to accomplish some goal later in their career. That said, they are not “computation appreciation” courses. They are challenging and rigorous courses in which the students spend a lot of time and effort learning to bend the computer to their will.

What you’ll learn

  • A Notion of computation
  • The Python programming language
  • Some simple algorithms
  • Testing and debugging
  • An informal introduction to algorithmic complexity
  • Data structures

Introduction video:

Logic and Computational Thinking

About this course

This course is part of the Microsoft Professional Program in Entry-Level Software Development.
Understanding how a computer “thinks” is one of the first steps to becoming an excellent computer programmer. A foundation in logic is crucial in developing this understanding. Mastering logic is more than learning a set of rules. It involves learning how to break problems into smaller chunks, figuring out how repeatable processes can save time and improve quality, and understanding how to organize problems into the right size.

In this course, you’ll learn how to do all those things and use computers to make them easier. After all, logical tasks are what computers are best at doing!

This is not a programming course, but it will teach you how to approach critical thinking as both a lifestyle and an aide to better programming and testing.

What you’ll learn

  • Logical form and how to construct arguments
  • Deductive and inductive argument forms 
  • The basics of critical thinking
  • How to break down problems into simpler tasks
  • Recognizing patterns and understanding why this is important
  • How to use an algorithm to solve problems
  • The relation of logic to fundamentals in computer science

Introduction video:


Python Data Structures

About this course

This course will introduce the core data structures of the Python programming language. We will move past the basics of procedural programming and explore how we can use the Python built-in data structures such as lists, dictionaries, and tuples to perform increasingly complex data analysis. This course will cover Chapters 6-10 of the textbook “Python for Everybody”. This course covers Python 3.

What you’ll learn

  • How to open a file and read data from a file
  • How to create a list in Python
  • How to create a dictionary
  • Sorting data
  • How to use the tuple structure in Python

Introduction video:

Object-oriented Programming

About this course

Go beyond the basics of programming to understand object-oriented methodology, the approach to modular and reusable software systems.

Topics Include:

  • Introduction to Object Oriented Programming
  • Classes and Methods
  • Polymorphism
  • Inheritance
  • Standard Library of C++

This course is part of the Fundamentals of Computer Science XSeries Program:

What you’ll learn

  • How to abstract a problem in an object oriented style
  • Object oriented programming, basics to advanced level, using C++
  • How to use the Standard Template Library (STL)

Introduction video: