Skip to content

Personal project. This program generates random questions for 8 different computer science topics, along with the answers. The purpose of this project is revise, and learn these topics. The method to reach an answer in these topics can also be learned from the source code.

License

Notifications You must be signed in to change notification settings

LeeTaylorLondon/Computer-Science-Exam-Revision

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Revision Software for Module - CSC2032 - Algorithm Design and Analysis

Synopsis

The purpose of this program is to ask the same questions found in the tutorials and quizzes. But with different variables in place. For example tracing depth-first search on a randomly generated graph, or providing the Big O of a randomly generated expression. This purpose has been achieved for some questions, not all.

The topics described in the CSC2032 module are defined as either objects with rules that behave exactly as shown in lectures, or as functions as shown in the lecture notes.

Questions

All questions output correctly calculated answers if answered incorrectly.

  • Big O - evaluate whether two random expressions are equal or not
  • Big O - evaluate whether one random expression has a worse Big O than another random expression
  • Big O - input the Big O term of a random expression
  • Big O - input the Big O classifications in ascending order or descending order
  • Insertion Sort - given blocks of traces user must input which one corresponds to insertion sort
  • Insertion Sort - given an array of random values the user must provide high-level traces of insertion sort applied
  • Insertion Sort - displays an array partially sorted by insertion sort. The original array is display with others that are not the original array. The user must pick out the correct array.
  • Quicksort - input high-level traces applied to an array of randomly generated values
  • Quicksort - input high-level traces of partition algorithm applied to an array of randomly generated values
  • Quicksort - user is presented with low level traces of quicksort. one of the lines may be wrong the user must respond with the line or 'none'.
  • Binary Search - input the high-level traces of searching for a value in a randomly generated array
  • Binary Search Tree - construct a BST from an array of random integers and input each depth
  • Binary Search Tree - input each depth of already constructed BST after inserting a new value
  • Binary Search Tree - input high level traces for searching for a key in a BST
  • Hashing - given an array of random values input the resultant array after inserting them using Linear Probing
  • Hashing - given a LinearProbe's values the user must indicate which array of random values produced the LinearProbe
  • Hashing - input high-level traces for searching for a value in a array of values inserted using Linear Probing
  • Hashing - input the resultant array after deleting a value using Linear Probing and hashing
  • String Searching - input the number of comparisons when brute force is applied to two random strings
  • String Searching - input the Knuth-Morris-Pratt (KMP) table of a randomly generated string
  • String Searching - given a randomly generated KMP table input a string that would generate that table
  • String Searching - input high-level traces of KMP applied to two random strings
  • Graph - input the traversal order of depth-first search for a randomly generated graph
  • Graph - input the traversal order of breadth-first search for a randomly generated graph
  • Graph - input which traversal algorithm will reach a random node in a randomly generated graph first
  • Graph - input the path and sum of the nearest neighbour algorithm for a randomly generated 'city' graph
  • Graph - input the minimal spanning tree nodes and weights for a randomly generated weighted graph

Requirements

  • PyCharm Community Edition (or Higher)
  • Python 3 (or Higher)

How To Use - Entry Point

Fork this project and run main.py. Upon running the program you will be prompted with:

Please enter either of the following strings below: 
    'random' - Questions will be chosen at random
    'order' - Questions will be called in order learned
    'orderx' - Each question will be called x times. Questions are in order learned.

Enter choice: 

Typing 'random' and pressing enter, random questions will be asked to no end.
Typing 'order' and pressing enter, the questions will be presented in the order learned during the module.
Typing 'orderx' and pressing enter, each question programmed will be called x times, where x is equal to user input. Questions are presented in the order learned during the module.

License

See the LICENSE file for license details.

Acknowledgements

  • Jason Steggles - Lecturer of CSC2032 Module and original author of questions featured

Author

  • Name: Lee Taylor

About

Personal project. This program generates random questions for 8 different computer science topics, along with the answers. The purpose of this project is revise, and learn these topics. The method to reach an answer in these topics can also be learned from the source code.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages