syllabus
About the Me!!!
Name | PAUL OFFEI |
poffei@st.ug.edu.gh | |
Office | IT Lab |
Office Hours | Wednesday and Thursday |
Virtual Meetings | Microsoft Team |
Webpage | ntow.netlify.app |
Course Syllabus
Course Description:
- You know the basics of programming. You're proficient in variables, functions, control flow, basic defined data structures, and file IO. With these concepts, you can train a computer to complete nearly any task you can imagine. So what's next?
- Writing large programs! You will learn how to write and organize large pieces of software focusing on Unit Testing or Test Driven Development, Object-Oriented Concept and Data Structures & Algorithms
- This course will cover abstract data types and basics of algorithms, Linked lists, stacks, queues, hash tables, trees, heaps, and graphs. Students will also be taught how to derive big-Oh analysis of basic algorithms. All assignments will be in Rust as way to introduce you to a new language. Programming languages are just tools to translate our ideas in practice, so students are encourage to use any language of choice to implement their ideas.
Course Topics
- Data Structures and ADTs:
- lists
- stacks
- queues
- sets
- dictionaries
- arrays
- linked lists
- trees
- hash tables
- priority queues
- binary heaps
- disjoint sets
- Algorithm analysis:
- Big O Notation
- Asymptotic analysis
- P and NP complexity
- Dynamic Programming optimization
- Sorting algorithms:
- selection
- insertion
- merge
- quick
- more…
- Graphs and graph algorithms:
- graph search
- shortest path
- minimum spanning trees
Prerequisites
- Introductory programming course
Course Announcements
All the course announcement and additional materials or tutorials to help you learn the cource will be posted in the blog page of the course website.
Homework late policy
Every assignment in this course is due at exactly the time stated and while I will grade late assignments, there will be a marks deduction.
Evaluation
The course evaluation will be a weighted mask score on class attenance and participation, homework, quizes, projects and exams.
Test Book
- Data Structures and Abstractions with Java by Frank M. Carrano, Timothy M. Henry
- Data Structures and Algorithm Analysis in Java by Mark A. Weiss
- Introduction to Algorithms, Fourth Edition by Cormen, Leiserson, Rivest and Stein
- Algorithms by Robert Sedgewick, Kevin Wayne
- Algorithm Design Manuel by Steven S. Skiena