0% found this document useful (0 votes)
1 views2 pages

Algorithms

The course on Algorithms at the University of Cape Coast aims to introduce students to foundational theories and methods for analyzing and designing efficient algorithms, emphasizing algorithmic thinking in computing. Key topics include algorithm complexity, correctness proofs, numerical algorithms, data structures, and encryption techniques, with a unique focus on traditional African computing through the Oware board. Upon completion, students are expected to perform arithmetic operations, analyze algorithm performance, construct proofs, implement algorithms, and understand machine-level computation.

Uploaded by

obodaibernard02
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1 views2 pages

Algorithms

The course on Algorithms at the University of Cape Coast aims to introduce students to foundational theories and methods for analyzing and designing efficient algorithms, emphasizing algorithmic thinking in computing. Key topics include algorithm complexity, correctness proofs, numerical algorithms, data structures, and encryption techniques, with a unique focus on traditional African computing through the Oware board. Upon completion, students are expected to perform arithmetic operations, analyze algorithm performance, construct proofs, implement algorithms, and understand machine-level computation.

Uploaded by

obodaibernard02
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

University of Cape Coast

College of Agriculture & Natural Sciences


School of Physical Sciences
Department of Computer Science & Information Technology

Second Semester 2024/2025 Algorithms Credit Hours: 3


Lecturer: Prof. Nii Narku Quaynor & Isaac Armah-Mensah

Course Objectives
This course introduces foundational theories and methods for analyzing and designing efficient algorithms. It
emphasizes the significance of algorithmic thinking in practical computing and system design.

Course Description
This course explores fundamental concepts and techniques in algorithm design and analysis. Students will
examine various computational methods including numerical algorithms, sorting and searching techniques,
recursive problem-solving, and data organization through structures like linked lists and graphs.

Theoretical underpinnings such as correctness proofs, invariants, and time/space complexity analysis will be
covered. Students will also gain exposure to encryption techniques and grammar-based algorithms. A unique
component of this course is the exploration of traditional African computing through the Oware board as a
model of algorithmic reasoning.

Expected Learning Outcomes


Upon successful completion of this course, students should be able to:
1. perform arithmetic operations using the Oware board as a computational model.
2. analyze and compare algorithmic performance in terms of time and space complexity.
3. construct rigorous proofs of algorithm correctness using loop invariants and recursion.
4. implement core algorithms and apply fundamental data structures in problem solving.
5. understand basic principles of machine-level computation and language theory.

Course Outline
1. Introduction to Computational Models: The African Calculating Instrument (Oware)
• Explore Oware as an indigenous algorithmic tool.
• Analyze its computational logic and relevance to modern problem solving.
2. Algorithm Complexity: Time and Space Analysis
• Learn to express algorithm efficiency using Big-O notation.
• Study best, worst, and average case performance.
3. Theory of Correctness and Algorithmic Invariants
• Develop formal proofs for algorithm correctness.
• Understand preconditions, postconditions, and loop invariants.
4. Numerical Algorithms and Recursion Techniques
• Explore recursive and iterative methods for common problems.
• Implement algorithms for numerical computations.
5. Searching Techniques and Performance Comparison
• Study linear, binary, and hash-based searching.
• Evaluate time complexity and performance in different contexts.
6. Sorting Algorithms: Stability, Complexity, and Applications
• Learn and compare sorting techniques like merge sort, quicksort.
• Understand sorting algorithm stability and use cases.
7. Introduction to Data Structures: Arrays, Linked Lists, Trees
• Understand how data is organized and accessed efficiently.
• Explore fundamental structures and their operations.
8. Machines and Formal Languages
• Introduction to finite automata and formal grammars.
• Understand the role of abstract machines in computation.
9. Graph Algorithms and Representation
• Study graph traversal algorithms such as BFS and DFS.
• Learn two fundamental graph representations: adjacency lists and adjacency matrices.
• Explore use cases such as shortest path and connectivity.
10. Introduction to Encryption and Cryptographic Algorithms
• Study basic encryption concepts and simple ciphers.
• Understand their importance in data security.

Assessment
Quiz 1 20%
Quiz 2 20%
Exams 60%

Note: Students are encouraged to read beyond the listed materials and participate actively in discussions and
problem-solving sessions.

Reading List
Barne, G., & Del Tongo, L. (2008). Dsa.
Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction to algorithms third edition. MIT Press. ISBN
0-262-03384-4. Section, 23 , 631–638.
Deconinck, S. (2011). The algorithm design manual.
Goodrich, M. T., & Tamassia, R. (2008). Data structures and algorithms in java. John Wiley & Sons.

You might also like