Skip to main content
CIT237Sciences3 Unitsintermediate

Programming and Algorithms

This course introduces the methods and concepts of programming and the role of algorithms in programming. It covers programming concepts such as basic data types, algorithms, performance analysis, fundamental data structures, P, NP and NP-Complete Problems and some sorting algorithms. The course aims to equip students with the basic knowledge of writing efficient programs through the use of concise and efficient algorithms.

Transform this course into personalized study materials with AI

150h
Study Time
13
Weeks
12h
Per Week
intermediate
Math Level
Course Keywords
ProgrammingAlgorithmsData StructuresSortingEfficiency

Course Overview

Everything you need to know about this course

Course Difficulty

Intermediate Level
Builds on foundational knowledge
65%
intermediate
📊
Math Level
Moderate Math
🔬
Learning Type
Hands-on Practice

Course Topics

Key areas covered in this course

1

Programming Languages

2

Algorithms

3

Data Types

4

Data Structures

5

Algorithm Analysis

6

Sorting Algorithms

Total Topics6 topics

Requirements

Knowledge and skills recommended for success

Basic computer literacy

Fundamental mathematics

💡 Don't have all requirements? Don't worry! Many students successfully complete this course with basic preparation and dedication.

Assessment Methods

How your progress will be evaluated (3 methods)

assignments

Comprehensive evaluation of course material understanding

Written Assessment

tutor-marked assignments

Comprehensive evaluation of course material understanding

Written Assessment

final examination

Comprehensive evaluation of course material understanding

Computer Based Test

Career Opportunities

Explore the career paths this course opens up for you

Software Developer

Apply your skills in this growing field

Data Analyst

Apply your skills in this growing field

Systems Analyst

Apply your skills in this growing field

Database Administrator

Apply your skills in this growing field

Computer Programmer

Apply your skills in this growing field

Industry Applications

Real-world sectors where you can apply your knowledge

Software DevelopmentData ScienceInformation TechnologyFinancial ServicesHealthcare

Study Schedule Beta

A structured 13-week journey through the course content

Week
1

Module 1: Introduction to Programming and Algorithms

7h

Unit 1: Introduction to Programming

4 study hours
  • Read the introduction to programming.
  • Understand the different levels of programming languages.
  • Outline the conventional features of programming languages.

Unit 2: Programming Concepts

3 study hours
  • Explain program development cycle.
  • Outline the principles of a good programming style.
  • Understand the program execution stages.
Week
2

Module 1: Introduction to Programming and Algorithms

7h

Unit 3: Algorithms

4 study hours
  • Explain what an algorithm is.
  • Differentiate between computational problems and algorithms.
  • Outline the characteristics of an algorithm.

Unit 4: Basic Data Types

3 study hours
  • Outline the data types, which include numeric and non-numeric data types.
  • Outline the constituents of an integer, real-numbers, character data type and string data type.
Week
3

Module 1: Introduction to Programming and Algorithms

7h

Unit 5: Fundamental Data Structure

4 study hours
  • Explain data structures and give related examples.
  • Outline the different types of data structures.
  • Explain the different types of linear data structures.

Unit 6: Practical Exercise I

3 study hours
  • Develop a working algorithm and a corresponding flowchart for the algorithm.
Week
4

Module 1: Introduction to Programming and Algorithms

7h

Unit 7: Fundamental Data Structures

4 study hours
  • Explain the operations of the different types of data structures.
  • Differentiate between trees and graphs.

Unit 8: Exercise I

3 study hours
  • Develop an algorithm and a flow chart for the algorithm.
Week
5

Module 2: Performance Analysis of Algorithms

7h

Unit 1: Performance Analysis Framework

7 study hours
  • State the criteria for estimating the running time of an algorithm.
  • List the efficiency attributes of an algorithm.
  • Describe how time efficiency of an algorithm is measured.
Week
6

Module 2: Performance Analysis of Algorithms

7h

Unit 2: Order of Growth

7 study hours
  • Explain order of growth.
  • Explain the different asymptotic notations.
Week
7

Module 2: Performance Analysis of Algorithms

7h

Unit 3: Worst-case, Best-case and Average-case Efficiencies

7 study hours
  • Explain the three methods that are used to measure the efficiencies of algorithms.
  • Explain how to identify basic operations within an algorithm.
Week
8

Module 2: Performance Analysis of Algorithms

7h

Unit 4: P, NP and NP-Complete Problems

7 study hours
  • Distinguish between a polynomial and non-polynomial problem.
  • Understand some basic issues in algorithm time efficiencies.
  • Understand P, NP, NP –complete problems.
Week
9

Module 2: Performance Analysis of Algorithms

7h

Unit 5: Practical Exercise II

7 study hours
  • Practice estimating the non time growth of an algorithm.
Week
10

Module 3: Sorting and Some Special Problems

7h

Unit 1: Introduction to Sorting and Divide-and-Conquer Algorithm

7 study hours
  • Explain the meaning and significance of sorting.
  • Explain the meaning and practical understanding of divide and conquer algorithms.
Week
11

Module 3: Sorting and Some Special Problems

7h

Unit 2: Merge Sort

4 study hours
  • Give the practical meaning of merge sort.
  • Present the merge sort algorithm.
  • State the performances of the merger sort algorithm.

Unit 3: Quick Sort

3 study hours
  • Evaluate the procedures involved in a quick sort algorithm.
  • Transverse array using the quick sort algorithm.
Week
12

Module 3: Sorting and Some Special Problems

7h

Unit 4: Binary Search

7 study hours
  • Explain how the binary search operates.
  • Explain how the binary search is used to traverse an array of elements.
  • Explain the algorithm of the binary search.
Week
13

Module 3: Sorting and Some Special Problems

7h

Unit 5: Selection Sort

4 study hours
  • Describe how selection sort operates.
  • Explain how selection sort is used to transverse elements in an array.
  • Describe an algorithm of the selection sort.

Unit 6: Bubble Sort

3 study hours
  • Explain how bubble sort operates.
  • Explain how bubble sort is used to transverse array of homogenous elements.
  • Describe the algorithm of bubble sort.

This study schedule is in beta and may not be accurate. Please use it as a guide and consult the course outline for the most accurate information.

Course PDF Material

Read the complete course material as provided by NOUN.

Access PDF Material

Study Tips & Exam Preparation

Expert tips to help you succeed in this course

1

Review all tutor-marked assignments and their solutions to understand key concepts and problem-solving techniques.

2

Create concept maps linking different sorting algorithms (Merge Sort, Quick Sort, Bubble Sort) and their time complexities.

3

Practice writing pseudo-code for common algorithms like binary search and quicksort without referring to the course material.

4

Focus on understanding the differences between P, NP, and NP-complete problems and their implications for algorithm design.

5

Allocate time to practice coding the algorithms discussed in the course, focusing on efficiency and correctness.

6

Study the examples provided in the course material and try to solve similar problems on your own.

7

Create a study schedule that allocates sufficient time for each module and unit, and stick to it.

8

Join online forums or study groups to discuss challenging concepts and problem-solving strategies with other students.

Related Courses

Other courses in Sciences that complement your learning