Introduction to Algorithms

This course is a part of The School of Computer engineering.

Introduction
The understanding of algorithms is one of the key differences between a good programmer and a bad one. The use of proper algorithms, and the knowledge on how to build one, leads to efficient and sturdy programs. In this course, students will become familiar with these ideas and develop good programming techniques.

Due to the open nature of Wikiversity you are free to browse through these courses at whatever pace you desire. However, before you begin this course you should consider reviewing the material covered in the prerequisite courses (listed below) to ensure that you are prepared to learn this content.

In each lesson there is an objective at the top of the page, review these points and keep them in mind as you go through the lesson. At the end there is an assignment to test your understanding and further explain the material. Once you have finished the entire course you may move on to another course in the unofficial degree.

(Note: Many of these lessons are stubs, and they need a lot of help. Please excuse the mess - and help out if you can!).

Prerequisites
''Prerequisites are courses it is suggested you understand before you attempt this course. If you're having a hard time understanding the material in this course, make sure you understand these prerequisites first.''
 * Introduction to Programming

Lessons

 * 1) What is an algorithm?
 * 2) Subalgorithms
 * 3) Variables
 * 4) Efficiency
 * 5) Flow Control
 * 6) Common Algorithms

Students
If you are using this course as a learning resource, please sign below by typing 4 tildes (~). Rickerdydoodah (discuss • contribs) 00:47, 20 April 2015 (UTC) 165.199.181.15 (discuss) 16:04, 13 December 2023 (UTC) Muhammad j yakubu (discuss • contribs) 22:18, 26 December 2016 (UTC) 2601:1C2:500:9561:E05A:C5EC:71E1:E92F (discuss) 22:02, 12 March 2019 (UTC)
 * Ali.samva 21:31, 29 January 2013 (UTC)
 * Har,shini 04:52, 04 July 2018
 * 164.106.228.253 (discuss) 16:04, 30 April 2013 (UTC)
 * 14.139.128.11 (discuss) 10:29, 2 May 2013 (UTC)
 * Forbloggerku (discuss • contribs) 22:48, 11 October 2013 (UTC)
 * Iliketolearn777 (discuss • contribs) 09:08, 31 May 2014 (UTC)
 * Tlozano~enwikiversity (discuss • contribs) 02:17, 16 September 2015 (UTC)
 * Digitalnamshub (discuss • contribs) 06:54, 17 December 2015 (UTC)
 * Quinjica (discuss • contribs 22:54, 11 February 2016 (UTC+1)
 * Alex.RL 10:35, 10 September 2018 (UTC)

Sadicm1 (discuss • contribs) 08:54, 10 April 2017 (UTC) 87.49.146.209 (discuss) 06:25, 27 March 2018 (UTC)

Teachers or Contributors
If you are helping to develop this resource, or want to help mentor enrolled students - Please sign below by typing 4 tildes (~). Kearabilwe (discuss • contribs) 17:08, 10 August 2022 (UTC)
 * Azotochtli (talk) 13:50, 13 August 2012 (UTC)