Final Report Csc510 Group Mini Project
Final Report Csc510 Group Mini Project
*Max. 4, min. 3
Project Rubric (Presentation) – CSC 510 (Discrete Structure)
No. Assessment Criteria Excellent (5) Good (4) Satisfactory (3) Poor (2)
1 Depth of knowledge Clear and easily understood. Certain areas show depth of Some understanding of subject but Show a surface knowledge only.
Shows depth of thought. Able to thought. Mostly clear but with little little depth. Somewhat clear and Unclear and confusing. Leaves the
answer questions in an intelligent confusion in the presentation. Able some confusion in the presentation. listener a little lost. Unable to
manner to answer question Able to answer some questions respond to questions
2 Use variety of presentation Presentation material/media are of Most material/media are of high Some materials/media are of high Material/media are inadequate or
materials high quality and useful quality. Some variety in material quality with some questionable barely minimum presentation
used sources materials or too small to see
3 Delivery skills Presenter speaks clearly and loud Presenter speaks clearly and loud Presenter’s voice is relatively clear, Presenter mumbles, mispronounces
enough for all in the audience to enough to be heard by most in the but too low to be heard by those in terms, and makes serious and
hear, makes no grammatical errors, audience, makes relatively few the back of the room. Presenter persistent grammatical errors
pronounces all terms correctly and grammatical errors, and makes some grammatical errors throughout the presentation.
precisely. Excellent eye contact pronounces most terms correctly. and mispronounces some terms. Presenters speak too quietly to be
Good eye contact Some eyes contact. heard by many in the audience. Very
poor eye contact
4 Overall organization of project Presenter has a smooth Presenter provides explanations Presenter provides explanations and There is no presentation flow. Goes
presentation presentation flow and provides and / or elaboration, use time / or insufficient elaboration and use over time limit or does not fully
good explanations and / or wisely of time cover the topics
elaboration, use time wisely
Solution Solution demonstration Very clearly demonstrated Clearly demonstrated Adequately demonstrated Not clearly demonstrated
( / 25) =
CSC510/PROJECT/MAC 2024
Front - Page 2 (Rubric)
No. Assessment Criteria Excellent (2) Good (1.5) Satisfactory (1) Poor (0)
1 Report Submit and complete Submit and almost complete Submit but not complete No submission
2 Introduction Well-defined project Clear project background, Adequate project Unclear project
background, problem problem statement and background, problem background, problem
statement and scope scope statement and scope statement and scope
3 Roles and duty of each member Well-defined Clearly defined Adequate defined No defined
4 Algorithm of system Highly reflect to design Clearly reflect to design Adequately reflect to design Poorly reflect to design
(Flow chart or pseudocode)
5 Interface of system (welcome Professional looking (using GUI- Clear representation of the result. Adequate representation of the Result are no shown or are
screen, sample input output button, text field, radio button, result. inaccurate
etc.) image etc.) and accurate
representation of the result.
6 Analysis of result (result High critical analysis of the result Clear critical analysis of the result Adequate critical analysis of the No critical analysis of the result
discussion) result
7 Conclusion Conclusion includes the Conclusion includes the Conclusion includes the findings, No conclusion or
findings, lesson learned from findings, lesson learned from lesson learned from the project. recommendations were
the project. Future the project. Some recommendations for future included in the report
recommendations to real Recommendations for work is stated
life situations are well stated future work are stated
8 Programming code (All CODE Complete attached (with comment) Completed attached Adequate attached in appendix No attached
should be documented with in appendix (without/inadequate comment) in
comment). appendix
Product Requirement fulfillment Done with correct output Done with partial correct output Done but with incorrect output Not Done
Criteria 1 Criteria 2 Criteria 3 Criteria 4 Criteria 5 Criteria 6 Criteria 7 Criteria 8 Product Total
(max 2m) (max 2m) (max 2m) (max 2m) (max 2m) (max 2m) (max 2m) (max 2m) (max 9m)
( / 25) =
Table of Contents
CONTENTS PAGES
INTRODUCTION 1
ALGORITHM OF SYSTEMS 4
INTERFACE OF SYSTEM 5
ANALYSIS OF RESULT 6
CONCLUSION 7
PRESENTATION LINK 15
i. INTRODUCTION
1
ii. ROLES AND DUTIES
2024793073
2
● Designing the look and feel of
User Interface
digital system interfaces.
Designer
● Conducting user research and
analysis of existing designs in
order to understand user needs
and product goals.
3
iii. Algorithm of the System (Flowchart)
4
iv. Interface of the System
The main purpose of this system is to create a system that can state the
Finite State Machine (FSM) inserted by the user. Since the usage of this FSM is
being used by users, we decided to create a Graphical User-Interface (GUI) session
to ease the concept understanding and the manual of using this machine.After the
user insert the state,input and also next state, ‘Insert button’ need to be pressed and i
will display the informations in a single table.
Not only that, This machine will also collect the inputs inserted and display the
current string that occurs in this machine. When the users wanted to collect the
inputs, the ‘Collect Inputs’ button need to be clicked on, so that it will display the all
the inputs inserted to the table
Finally, we decided that this machine should have the function to determine whether
it can calculate the validation of the string. From that, we created a function where it
can give a string check whether the given string is accepted or rejected by FSM. It
will also give FSM type of the information whether it is DFA or NFA.
5
v. Analysis of the Result
<State-Input-NextState>.
After that , click the insert
button. It will display all the
inputs inserted in a single a
table
6
vi. Conclusion
Last but not least, finite state machines are important in computer program
design in general. They provide a structured and systematic approach to designing
and analyzing complex systems, making them easier to understand, implement, and
maintain. Drawing the state transition diagram and table is relatively simple and
simulating an FSM with real input strings can also be readily done. However,
students should also be able to clearly articulate and intelligibly express the capability
the machine possesses. With the following explanations, students should be better
equipped to understand the true meaning of the machine and why it behaves the way
it does.
7
vii. Programming Code
<!DOCTYPE html>
<html>
<head>
<style>
@font-face{
body {
font-family: sans-serif;
background-image: url(Gambar.jpg);
background-size: cover;
background-attachment: fixed;
height: 100%;
justify-content: center;
display: flex;
align-items: center;
#container {
display: flex;
flex-direction: column;
align-items: center;
background-color: wheat;
padding: 20px;
border-radius: 20px;
8
h2{
font-size: 45px;
margin-top: -10px;
background-color: white;
width: 100%;
text-align: center;
border-radius: 10px;
#input {
margin-bottom: 20px;
justify-content: center;
Table {
border-collapse: collapse;
width: 300px;
margin-bottom: 20px;
Table th,
Table td {
padding: 8px;
text-align: center;
#output-area {
margin-bottom: 20px;
display: flex;
flex-direction: column;
9
align-items: center;
#results {
width: 400px;
padding: 10px;
background-color: white;
border-radius: 10px;
#fsm-input {
border-radius: 10px;
background-color: white;
#input-string {
border-radius: 20px;
border-width: 0px;
width: 100%;
button {
border-radius: 20px;
border-width: 1px;
margin: 5px;
</style>
</head>
<body>
<div id="container">
<div id="input">
10
<label for="fsm-input"><b>Enter FSM
Transitions:</b></label><br>
<button onclick="SubmitBtn()">Insert</button>
</div>
<div id="Table-container">
<table id="Table">
<thead>
<tr>
<th>State</th>
<th>Input</th>
<th>Next State</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
<div id="output-area">
<button onclick="collectInputs()">Collect
Inputs</button>
<div id="results"></div>
</div>
</div>
<script>
let finalState;
function SubmitBtn() {
11
const input =
document.getElementById('fsm-input').value;
const tableBody =
document.getElementById('Table').getElementsByTagName('tbody')[0]
;
tableBody.innerHTML = '';
fsm = {};
isDFA = true;
transitions.forEach(transition => {
if (!fsm[state]) {
fsm[state] = {};
// Check if DFA
if (fsm[state][inputSymbol]) {
isDFA = false;
if (!fsm[state][inputSymbol]) {
fsm[state][inputSymbol] = [];
fsm[state][inputSymbol].push(nextState);
row.insertCell().textContent = state;
row.insertCell().textContent = inputSymbol;
12
row.insertCell().textContent = nextState;
});
function checkString() {
const resultsDiv =
document.getElementById('results');
const inputString =
document.getElementById('input-string').value;
if (inputString.length === 0) {
return;
currentState =
fsm[currentState][inputSymbol][0]; // For DFA, take the first
transition
} else {
valid = false;
13
break;
function collectInputs() {
const rows =
table.getElementsByTagName('tbody')[0].getElementsByTagName('tr')
;
if (cells.length > 1) {
inputs.push(cells[1].textContent);
document.getElementById('input-string').value =
inputString;
</script>
</body>
</html>
14
Link for presentation:
https://youtu.be/XZNDNHPXAkY
15