Before to a few researches done in the

Before coming up with this specific project,
I was assigned to build tools that would help understanding of students regarding
course material. So, I looked up lots of methodologies that might help me
select a proper tool. The other students who were also working on teaching
tools decided to work on building tools that would illustrate search and
decision-making algorithms taught in Artificial Intelligence. I was advised by
my tutor to pursue something different that would make use of client-server
interactions. I then studied at possible methods that can be used in teaching.

My lecturer (also supervisor) would ask us questions during every lecture. I
realised it would be beneficial if the lecturer could post the questions before
the lecture and if the students answer them, the lecturer can assess whether
the students can grasp the knowledge taught. To ensure formative quizzes are
the way forward, I referred to a few researches done in the past.

We Will Write a Custom Essay Specifically
For You For Only $13.90/page!


order now

            Bethany
C. Johnson and Marc T. Kiviniemi 1 studied the effect of online
chapter quizzes on exam performance in an undergraduate social psychology
course. The participants were all undergraduate students in a social psychology
course. They found that performances of students were better when the topics of
those questions were covered in the formative quizzes. They also examined the
correlation between quiz completion and exam performance. They found that as
the number of the quizzes completed increased, the students’ average marks on three
exams also increased.

            John
L. Dobson 2 also studied the use of formative online quizzes to
enhance class preparation and scores on summative exams. He found that the
online quizzes did result in improvements in exam scores and learning. He also
concluded that online quizzes were valid predictors of summative assessment
performance of his students.

            Another
studied I looked into is from J.W. Gikandi, D. Morrow, N.E. Davis 3.

They did a literature review on the nature of online formative assessment. They
addressed fundamental issues of assessments in an online setting. These issues
are validity, reliability and dishonesty. However, J.W. Gikandi et al. recommend online formative
assessments as a good teaching tool because these online assessments have
potential to engage both learners and teachers in meaningful educational
purposes. These online assessments provide pedagogical strategy that builds a
foundation for shifting the assessment culture in techniques that support
diverse learning needs and foster fair and impartial education. They offer
online learners opportunities for improved interactivity and formative
feedback. J.W. Gikandi et al.

concluded that implications for practice are clearly emerging, in particular,
educators need to appreciate and emphasize the merit of embedding assessment
within learning processes.

            Thus,
based on the reading I have done, I decided that building these quizzing sites
is the best way forward in designing worthwhile teaching tools. However,
educators can only ask a finite number of questions at any given session. So,
the probability that the educator might overlook some questions that are useful
is high. In order to overcome this issue, I decided to then design two quizzing
sites, Django Quiz App, and Flask Quiz App.

            The
programming I decided to use is Python 4. This is because the language itself is very logical, requiring little
investment of time or effort to build applications on when compared with Java
or C#. The Python syntax is designed to be readable and straightforward which
makes it an ideal language to teach and learn, thus, allowing people who are
not used to programming to grasp it with ease. This enables coders to spend
more time thinking about the problem they’re trying to solve, rather than
trying to understand the language’s nomenclature. Python is broadly used and supported. Python
runs on every major operating system. Python may not be fast in performance,
but it makes up for it in durability. I was taught Java throughout my master’s
programme. I initially intended it instead, however after reading on the
different frameworks available in Python, I changed my mind.

            The frameworks I decided to use are Django and Flask. Django
5 is a high-level Python web framework that encourages rapid
development and clean, pragmatic design. Django is widely used in web
applications written in Python with a “batteries-included” philosophy. This
means that the
common functionality for building web applications should come with the
framework instead of as separate libraries. This is particularly useful as I
would require administrator and authentication functionalities. I would not
need to design an administrator page manually. Django is also very optimized
compared to other frameworks like Wufoo and there are sufficient reading
materials and tutorials on how to build web applications using this framework. However,
the framework itself has a very high learning curve compared to Flask. This is
expected because the Django is a large project on its own. It has a root folder
and every other folder in the same root represents an application that can be
plugged on the site I am building.

            For
the second quiz site, I used Flask framework. Flask 6 uses Python
as well and is considered a micro-framework as it is less complicated to learn
compared to Django. It is considered a micro-framework because it does not
require particular tools or libraries. It has no database abstraction layer, form
validation and other components where third-party libraries provide common
functions.  Flask is considered more “Pythonic” than
Django is simply because Flask web application code is, in most cases, more
explicit. This makes it the choice of most beginner coders in web development
involving Python. This is due to the lack of roadblocks to getting a simple app
up and running. It is extremely flexible, minimalistic in nature without
sacrificing power, simple to learn, and routing URLs is easy. However, Flask is
relatively new, so there are not many supporting materials for reference.

            The
database I decided to use is PostgreSQL. PostgreSQL 7 is a free,
open-sourced software. It is ACID (Atomicity, Consistency, Isolation,
Durability) compliant. ACID 8 is a set of properties of database
transactions that tries to guarantee validity even when there are errors and
power failures. In context of databases, a series of operations regarding the
database that satisfies these properties can be said to be a single logical
operation called a transaction. Atomicity means that the transaction be “all or
nothing”, meaning if one part of the transaction fails, the entire transaction
would fail, and any changes would be ignored. Consistency is the property that
ensures that any transaction creates a new and valid state of data, or, if any
error occurs, data is returned to its state before the transaction. Isolation
means that a transaction in process which has not been committed yet must be
isolated from other transaction. Finally, durability is a property that makes sure
that committed data saved by the system is made available in its correct state
even in the event of system failure or system restart. Thus, it is important
for the database to comply to these properties. Postgresql is also SQL
compliant. SQL compliance is a standard that a database must adhere to. All the
structured query language guidelines and standards are implemented by SQL
compliance. SQL compliant databases makes it easy to move data between one SQL
compliant database to another. After considering the aspects stated above, and
comparing with other databases such as MySQL, I decided to use PostgreSQL. I
used PGAdmin3 by BigSQL as an intermediary between me and the PostgreSQL
server. PGADmin39 is an open source development and administration
platform than can only be used for PostgreSQL database.