0% found this document useful (0 votes)
20 views4 pages

FCSP - Semester Project

The project involves creating a console-based application that analyzes complex data objects using sorting and searching algorithms integrated with truth tables and logical propositions. Students can choose any dataset and must implement at least one loop-based and one recursive sorting algorithm, alongside performance analysis and object-oriented design principles. The final submission includes code on GitHub, a presentation, and a written component covering various aspects of the project.

Uploaded by

max.brus.2016
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)
20 views4 pages

FCSP - Semester Project

The project involves creating a console-based application that analyzes complex data objects using sorting and searching algorithms integrated with truth tables and logical propositions. Students can choose any dataset and must implement at least one loop-based and one recursive sorting algorithm, alongside performance analysis and object-oriented design principles. The final submission includes code on GitHub, a presentation, and a written component covering various aspects of the project.

Uploaded by

max.brus.2016
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/ 4

Name: _________________________

Semester Project: Complex Algorithm Analysis and Data Sorting Tool Using Truth Tables (Console-
based application)

Overview

In this project, you will be developing a tool that processes complex data objects and evaluates the efficiency
of various sorting and searching algorithms. These data objects will have both numerical and logical properties,
and your task is to implement sorting that incorporates truth tables and logical propositions. You’ll be working
with object-oriented programming principles while analyzing the performance of your algorithms using loops,
recursion, and a variety of data types.

You have the freedom to choose any dataset that interests you. Whether it’s related to e-commerce, scheduling,
or something entirely different, your goal is to build a system around that dataset, applying appropriate
algorithms to solve a specific problem. The system could involve sorting products, organizing a schedule, or
analyzing complex logical expressions—it's up to you! Some examples recommended by ChatGPT are:

• Student Management System


• E-commerce Inventory Management System
• Task Management System with Time Complexity Analysis
• Library Management System
• Recipe Recommendation System
• Pathfinding in a Maze (Game)
• Social Media Post Analysis System
• Budget Tracking and Financial Management System
• Hospital Patient Management System
• Travel Route Planning System
• E-Learning Platform with Course Recommendation
• Job Matching and Recruitment System
• Fitness Tracking Application
• Virtual Event Management System
• Etc.

Make sure to be creative and innovative.

Performance analysis will be an important part of your project, so make sure to assess how your algorithms
perform as dataset size and logical complexity increase, and understand how recursion and truth table
evaluations impact efficiency.
Name: _________________________

Key Components

1. Sorting Algorithms: Implement at least 1 sorting algorithms (Insertion sort, Merge sort, Selection sort,
etc.), with the following requirements:
o At least one sorting algorithm must use a loop (e.g., Insertion Sort, Bubble Sort).
o At least one sorting algorithm must use recursion (e.g., Merge Sort, Recursive Selection Sort).
o Sorting is based on two layers:
▪ Primary Sorting: Sort based on numerical, string, or float data properties.
▪ Secondary Sorting: Use logical propositions and truth tables as secondary criteria. For
example, sort objects where logical expressions (p ∧ q, p → q) evaluate to True before
those that evaluate to False.
2. Truth Table and Logical Complexity:
o Each object will have an associated logical expression, evaluated using truth tables.
o Propositions and logical operators (∧, ∨, ¬, →, and ↔) will influence the sorting order.
Objects will be sorted first based on their numerical properties, then by the truth table
evaluation of their logical expressions.
o Encourage innovation in how the truth table and logical expressions are implemented and
integrated with the sorting process.
3. Performance Analysis:
o Analyze and compare the time complexity of the implemented sorting algorithms using Big-O
Notation.
o Measure performance for different dataset sizes and levels of logical complexity (i.e., simple
vs. complex logical expressions).
o Visualize the performance impact of adding logical expressions and recursion to the sorting
process.
4. Object-Oriented Design:
o Use OOP principles to design the tool with class objects that best represent your data set and
structure.
o Implement abstraction, inheritance and polymorphism to allow flexibility in adding more
sorting algorithms and types of data.
o Ensure error handling for invalid inputs (e.g., malformed logical expressions or improper data
formats).
o A minimum of 4 objects is required.
5. Data Handling:
o Read datasets from CSV files, with each row containing objects with numerical and logical
fields (e.g., columns for numbers and logical expressions like p ∧ q).
o Use Pandas for efficient data manipulation and integration with the sorting and truth table
processes.
6. User Interaction:
o Allow users to input datasets manually or through file uploads, select which sorting algorithm
to use, and view real-time sorting results and truth table evaluations.
7. Innovation & Complexity:
o Encourage students to develop creative ways to handle complex data objects (e.g., visualize
truth table evaluations or recursive processes).
o Innovation in performance analysis (e.g., visualizing the time taken by recursion) and
extensions such as integrating new sorting criteria will be rewarded.
Submission
o Final code to be pushed to Github. Invite your lecturer as a collaborator. The latest commit
before the deadline will be considered the submission.
o Deadline: The night (23:59) before your last lecture.
o Present your project on the last day of classes during class time.
Name: _________________________

Criteria Description Max Mark


OOP 15
Object- Appropriate implementation of at least 4 objects with good reason in OOP
Oriented design. Proper integration of logical and numerical properties. No more than 3 8
Design key-value pair objects are allowed.
Inheritance Appropriate implementation of at least 1 inheritance between objects 4
Abstraction Appropriate implementation of at least 1abstract classes 1
Appropriate implementation of at least 1 polymorphism either through
Polymorphism 2
sorting or searching
Data 14
At least 4 of the following data types need to be present within one or more
Variable and
objects with appropriate reasons: Boolean, integer, float, and string, complex, 4
Data Types tuple, range, set, dict, type, NoneType, bytes.
At least 2 interface inputs with different data types. All button clicks count as
Inputs 1 input. All string values count as 1 input unless they are cast into their 5
respective data types without error.
Lists,
At least 1 appropriate use of lists of objects AND (dictionary of objects OR
Dictionary, and 5
tuple of objects) needs to be implemented.
Tuples
Algorithms 55
Implementation of at least 1 loop-based algorithm and one recursive
Loop and
algorithm. Proper use of recursion will be assessed. Both recursion and loop 10
Recursion must be implemented for the list of objects in the project.
Correct implementation of at least 2 different sorting algorithms, with added
Sorting complexity from logical expression evaluations and truth table processing.
15
Algorithm One algorithm must use loops, and one must use recursion. Borrowed sorting
from external packages won't be awarded marks.
Correct implementation of 1 or more search algorithm, with added complexity
Searching
from logical expression evaluation. The algorithm must use loops or recursion. 10
Algorithm Must be applied to a list of objects. Borrowed algorithms won't count.
Proper evaluation and integration of truth tables into the sorting or searching
Truth Table
process, including sorting based on logical propositions and logical
and Logical 10
equivalence. At least 2 conditional variables must be used in one algorithm for
Complexity full marks.
At least 2 Measurements and comparison of algorithm performance on
Performance
complex datasets, including the impact of recursion and truth table 10
Analysis evaluations. Innovation in performance visualization will be rewarded.
Miscellaneous 16
Appropriate use of functions internally and externally from objects. More than
Functions 2 methods within an object before marks can be allocated. (Objects: 3 marks 6
max, External to Objects: 3 marks max)
At least 1 correct reading from CSV, manipulation of complex datasets using
Data Handling 5
Pandas, and handling of various input formats. And at least 1 writing to CSV.
Error Handling Appropriate error handling is implemented with user-friendly error messages. 5
Additional 6
Creativity in project execution, such as adding new sorting algorithms,
Innovation visualizing truth table evaluations, or experimenting with innovative data 3
processing features.
Bonus Mark Any show of advanced coding with packages, algorithms, or data structures
(Advanced beyond the syllabus can be awarded bonus marks. Marks are awarded only 3
Python) with proper presentation and sufficient knowledge of the implemented code.
PROJECT TOTAL 100
Name: _________________________

Note: Marks are only awarded if they work. i.e. If the file input and output don’t work, you don’t get
the full marks for that criteria.

Validation criteria Max Mark


Group work items -50
- Missing GitHub repository -50
- Missing contribution on GitHub BEFORE semester break -20
- Less than 2 proper commits -10
- Less than 5 proper commits -5
- Less than 7 proper commits -3
- Missing contribution on GitHub AFTER semester break (if sufficient
contributions were made before the semester break, this section can be
ignored)
- Less than 3 proper commits -10
- Less than 5 proper commits -5
- Less than 8 proper commits -2
Run time items -50
- System crash (-5 per crash) -50

Max Mark
Project Grand Total = Project total – Validation criteria 100

Written Component Max Mark


Object-Oriented Design 10
Variable and Data Types 10
Loop and Recursion 10
Sorting Algorithm 10
Searching Algorithm 10
Truth Table and Logical Complexity 10
Performance Analysis 10
Functions 10
Data Handling 10
Error Handling 10
ORAL TOTAL 100

GP = Group Project Mark


W = Written Mark
Condition = 100 if (GP >= Oral) else 200
Max Mark
2 100
GP − (GP − W)
𝐹𝑖𝑛𝑎𝑙 𝑀𝑎𝑟𝑘 =
𝐶𝑜𝑛𝑑𝑖𝑡𝑖𝑜𝑛

You might also like