Project consultation pointing to relevant chapters 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Project consultation pointing to relevant chapters



Suleyman Demirel University

_________________________________________________________

 

Student's name and surname: Manar Kurmanov

 

Title of Thesis Work: Dexter – online testing service

DIPLOMA THESIS

 

Specialty 5B070400 – “Computer Systems and Software”

 

Academic supervisor: M.Sc.IT Zhamanov A.M.

Suleyman Demirel University

 

 

Almaty 2013
___________________________________________________________

MINISTRY OF EDUCATION AND SCIENCE OF THE

REPUBLIC OF KAZAKHSTAN

 

Suleyman Demirel University

Faculty of Engineering

______________________________________________________

 

Diploma thesis is admitted for defense

________________________

Dr. Ivanov A.

Head of Department of Computer Engineering

DIPLOMA THESIS

 

Title of Thesis Work: Dexter – online testing service

 

 

Specialty 5B070400 – “Computer Systems and Software”

 

Student's name and surname: Manar Kurmanov

 

Academic supervisor: M.Sc.IT Zhamanov A.M.

Suleyman Demirel University

 

Almaty 2013

Application Form

 

Suleyman Demirel University

 

Faculty: Engineering

Specialization: 5B070400 – “Computer Systems and Software”

Department: Computer Engineering

 

 

TASK

To complete Diploma thesis

 

Student: Manar Kurmanov

Title of Thesis: Dexter – online testing service

 

Approved by the Academic Council of the University:

23.10.2012 protocol # 3 2013

 

Submission date:

 

 

Sources for Diploma Thesis

 

HTML & CSS by Nick Perrit

jQuery & Javascript by Jim Hoskins

Django Basics by Jim Hoskins

Core Python Programming by Wesley J.

 

http://python.org/ - Python Programming Language – Official Website

https://www.djangoproject.com/ - The Django framework Official Website

http://djbook.ru/ - The Django framework full documentation on russian language

http://htmlbook.ru/ - HTML & CSS API database on russian language

 

 

 

Project consultation pointing to relevant chapters

 

Chapter Consultant Duration Signature
Introduction: Research Zhamanov A.M. 01.03.13 – 08.03.13  
Introduction: Idea confirm Zhamanov A.M. 09.03.13 – 22.03.13  
Configure Databases Zhamanov A.M. 23.03.13 – 05.04.13  
Create User Interface Idea Zhamanov A.M. 06.04.13 – 18.04.13  
Create Admin Page Zhamanov A.M. 18.04.13 – 25.04.13  
Create main interface Zhamanov A.M. 26.04.13 – 03.05.13  

 

THESIS PREPARation scheduleS

Chapters or Topics Academic supervisor check date Notes
  INTRODUTION 22.03.2013  
  LEARNING BACKGROUND 05.04.2013  
  DEVELOPMENT BACKGROUND 20.04.2013  
  ARCHITECTURE 03.05.2013  

 

 

Date of task issue: 11.09.2012

 

Preliminary Presentation (Predefense): 04.05.2013

 

 

The task is accepted for execution

 

 

Dean of Faculty ___________________ Dr. Aliyev H.N

(signature)

 

 

Head of Department ___________________ Dr. Ivanov A.

(signature)

 

Academic Supervisor ___________________ Zhamanov A.М.

(signature)


ANNOTATION

 

Dexter - is an idea that is already used by some of our universities as a means of testing the knowledge of students. But everybody call it differently. Basically just a final or midterm. Students came and pass the test, which can only be accessed from the local network of the university. There are exceptions to the rule, but would have all whether they pass the exam or not.

 

My goal is to create online service for testing, a single standard for all who already use or intend to use it in the future, the system of testing knowledge through the Internet. It can be used not only for important exams, but also to compose a simple intermediate, or very underweight tests. There are customizable functions of exams deadlines and students' access to materials, which can give an access to pass the test again and again for learning.

 

I would like to provide a very flexible and reliable system for our teachers. To not have to stand in line for listing, and spend the effort every time over and over again by creating and mixing issues. To students who receive distance learning, or for whatever reasons, could not be present in the building of the University the opportunity to pass the exam.

 

Saving time and effort - that is what we all want in this century. I think, no, I hope that my system will be approved and soon it will be possible to develop online education in this country to unprecedented heights.

Take a step into the future of the educational system, we make it available to anyone, as is already done in the foreign universities.


Аннотация

Dexter – это идея которая уже используется некоторыми нашими университетами, как средство проверки знаний учащихся. Называют правда ее по разному. В основном просто сессия или рубежный контроль. Студенты приходят и сдают тест, доступ которому возможен только из локальной сети университета. Бывают и исключения из правил, но явится должны все вне зависимости от того сдают они экзамен или нет.

 

Моя цель создать сервис онлайн тестирования, некий единый стандарт для всех, кто уже использует или собирается использовать в будущем систему проверки знаний через сеть Интернет. Её можно будет использовать не только на важных экзаменах, но и для составления простых промежуточных, или совсем маловесных проверочных тестах. Можно будет пользуясь функцией времени сдачи экзамена и доступом учащихся к материалам, настроить тесты так, что их можно будет проходить снова и снова, чтобы заучивать.

 

Я бы хотел предоставить очень гибкую и надежную систему для наших преподавателей. Чтобы не приходилось вставать в очереди на распечатку, и тратить усилия каждый раз снова и снова создавая и перемешивая вопросы. Чтобы ученикам, кто получают дистанционное обучение, или по тем или иным причинам не смог присутствовать в здании университета представилась возможность успешной сдачи экзамена.

 

Экономия времени и сил – вот к чему мы все стремимся в этом веке. Думаю, нет, надеюсь, что моя система получит одобрение и в скором времени можно будет развить онлайн-образование в нашей стране до небывалых высот.

 

Сделаем шаг навстречу будущему образовательной системы, сделаем её доступной каждому, как это уже делают зарубежные университеты.


ТҮЙІН

Dexter – қазіргі уақытта біздің елімізде кейбір жоғары оқу орындарда, білім тексеру шарасы сияқты қолданылып жатқан ойым. Әркім әріне әртүрлі атағанмен көбінесе сессия немесе шекара бақылау деп аталады. Студенттер келіп, тек ғана университеттің ішіндегі жүйеде ғана қол жеткізуге болатын тест, тапсырады. Бәлкім ерекшеліктер болар, бірақ қалай болса да студент университетке келуге тиісті.

 

Менің басты мақсатым - онлайн тест өткізу сервисін құру, қазіргі уақытта қолданып жүрген және болашақта қолданатын ойы бардың бәріне біріңғай стандарт енгізу. Тек ғана маңызды емтихандарда емес, жеңілдерге да қолдануға болады. Кейбір функцияларды қолдана отырып, тестті қайтадан қайта өтіп жаттауға болатындай бағыттауға болады.

 

Оқытушыларымызға сенімді және икемді жүйені пайдалануына берейін дегем. Оларға материалдарды басып шығару үшін кезекке тұрмай және қайтадан қайта араластырып әуре болмайтын жағдай жасағым келгені. Сыртылай білім алып жатқан және қандай да болсын жағдаймен келе алмай қалған оқушыларға емтиханды тапсыратын жағдай болсын дегенім.

 

Қазіргі уақытта әркімнің аңсағаны болатын зат – уақыт пен күшті үнемдеу. Ойлағаным, жоқ, аңсағаным – осы жүйе қолдауға алынып елімізде онлайн оқу дәреженің деңгейін жоғары көтеру.

 

Оқу жүйенің болашағына қарай кадамды бірге басып, әркім қолдана алатындай жасайық, шет елдер істеп жатқандай.

 


 

Contents

1. INTRODUCTION....................................................................... 9

Preface 9

Aim 10

Related Works 11

2. Learning Background.................................................... 13

2.1. What is e-assessment?................................................................................................ 13

2.2. Why might e-assessment be so useful?........................................................................... 15

2.3. What can e-assessment do for Learning and Teaching?............................................ 17

3. DEVELOPMENT BACKGROUND........................................... 18

Python 22

Django 25

SQLite 29

3.3.1. What is SQLite?............................................................. 29

3.3.2. Distinctive Features Of SQLite...................................... 30

JQuery 35

3.4.1. Features.......................................................................... 36

3.4.2. Including the library...................................................... 38

3.4.3. Usage styles.................................................................... 39

3.4.4. jQuery plug-ins.............................................................. 41

CSS 42

3.5.1. Syntax............................................................................ 43

3.5.2. Use.................................................................................. 44

3.5.3. Variations....................................................................... 45

3.5.4. Limitations..................................................................... 46

3.5.5. Adavantages.................................................................. 48

4. ARCHITECTURE....................................................................... 50

DBMS 50

Working Principle 52

5. CONCLUSION............................................................................ 57

6. REFERENCES............................................................................ 58


 

 

1. Introduction

 

1.1 Preface

 

Today more and more our universities are incepting testing systems to review grades of the students, ENT was the beginning, every university tries to create its own local applications, but they’re too weak. And don’t confirm with the idea of computer-based testing. Student anyway should attend, and the accessibility, one of the main goal of the online testing is gone.

 

Then I saw the CISCO new educational background, so I wanted for our country have the same, and standard system for any testing, with a big united database. In my opinion together me can do more, than separated, it always was like this, and should always be. Only if will join our ideas, power and knowledge, we can became the leader in educational state of the world. Testing is only the first step, if it will be go on, it should became a part of the great online educational system for distance learning.

 

Because my subject of my diploma thesis is “online testing service" or “e-assessment service” before introducing it I should explain more deeper what the e-assessment is, how we can use it, all it’s advantages and the meaning for learning today.
In addition, I should explain briefly, what is the technologies I am using to gain my goals. To create my diploma project.


1.2

1.2 AIM

 

My goal is to create online service for testing, a single standard for all who already use or intend to use it in the future, the system of testing knowledge through the Internet

 

I would like to provide a very flexible and reliable system for our teachers. To not have to stand in line for listing, and spend the effort every time over and over again by creating and mixing issues

 

Saving time and effort - that is what we all want in this century. I think, no, I hope that my system will be approved and soon it will be possible to develop online education in this country to unprecedented heights.


 

1.3 related works

 

There are a lot of similar projects in the web, more deeper, more complicated.

 

Pic.1 Online testing systems

As mine – independent testing services, but there are more testers, which have been included into the great online educational systems

Pic.2 Online learning platforms

Pic.3 Online learning platforms


 

 

2. learning Background

 

 

2.1 What is e-assessment?

 

E-assessment involves the use of digital devices to assist in the construction, delivery, storage or reporting of student assessment tasks, responses, grades or feedback.

 

E-assessment can be undertaken with many devices, such as traditional desktop computers or laptops, with portable communication devices such as smart mobile phones, with digital devices such as iPads or through the use of electronic gaming devices. E-assessment can use a multitude of formats, including text documents or portable document formats, multimedia formats such as sound, video or images; it can involve complex simulations or games; it can also be undertaken by students in groups or individually and it can occur with large numbers of students in a synchronous or asynchronous manner.

 

Teachers can use computers to construct their assessment tasks, to deliver these tasks to the relevant students and to record and provide feedback and grades to these students. Computers can also be used to analyze the students’ responses, both to provide feedback to the student on the quality and relevance of their response, as well as to provide feedback to the teacher on whether the task can differentiate between students with different abilities.

 

E-assessment can be used to test many different capabilities and skills that are developed by students. There are only a few tasks that might not be suitable for completing and recording electronically, but the number of such tasks is rapidly diminishing as technology becomes more sophisticated and widespread. In many disciplines laboratory equipment can be manipulated remotely and students can undertake real time physical performances that are able to be recorded and used for assessment purposes. We are quickly approaching the stage where our imaginations will be the limiting factor in designing e-assessment tasks.

 

E-assessment can be part of a learning management system such as Blackboard, Sakai or Moodle; it can be a standalone application such as Questionmark Perception or TestPilot. Electronic assessments can be located and delivered from a central server and accessed by students anywhere and anytime through the use of a web browser or they can be isolated on local computers or local area networks (LAN) with limited access gateways.

 

E-assessment is much more than multiple-choice questions. It can involve the use of blogs and wikis, self or peer review; it can use existing social media sites and creator systems associated with Web 2.0; assessments embedded within role plays and scenario-based assessments can be designed; we are able to use virtual worlds such as Second Life to set engaging and sophisticated tasks for students that require the use of multiple capabilities and skills to solve complex problems.

 

In summary, e-assessment involves a rich tapestry of possibilities that allows us to evidence student learning in a much deeper and often more authentic way than has been possible with traditional paper based assessments where students have been expected to use limited resources to respond to tasks.


2.2 Why might e-assessment be so useful?

 

Assessment is a complex activity; meaningful, assessment requires effort on the part of the teacher and student. We can design assessment tasks that are easy to prepare and grade, or we can take the time to design an assessment that has intrinsic worth for both the student and the teacher.

E-assessment offers a range of potential opportunities and advantages for teachers,

 

 

Pic.4 E-assessment advantages

The quickest benefits to be gained from using e-assessments are associated with diagnostic and formative tasks which provide detailed and timely feedback for students to use in a subsequent task. By requiring students to complete assessment tasks early in the course, you can highlight the key concepts that students must understand in order to build new learning experiences. Diagnostic assessments allow students to benchmark their current level of skill development and capabilities against what is required for the current course. You can use students’ responses to diagnostic assessments to gauge which learning activities are appropriate for the first few classes or where you should commence a course so that students are not left behind.

 

Formative tasks allow students to benchmark their learning against the expectations of the teacher. You can use the students’ responses to formative questions to gauge how quickly they can move from one concept or learning activity to the next. In order to encourage students to complete formative tasks many teachers have found it useful to use low stakes summative quizzes for formative purposes by using a databank of e-assessment items and allowing students to attempt the quiz as many times as they wish for formative purposes and only using the highest mark for summative purposes. This has the advantage that students can use the same assessment task for diagnostic, formative and summative purposes thus increasing the efficiency of the assessment process.


2.3 What can e-assessment do for Learning and Teaching?

 

This publication serves as part of a review by the e-Assessment Association in its desire to make a positive contribution to the assessment arena. The eAA advocates that Technology should serve Education and seeks to build on research principles identified by, amongst others, the Assessment Reform Group.

 

In general, the eAA supports a more complex question structure for automated assessment than multiple choice or its variants permits, the effective deployment of fast and accurate feedback as students’ progress through a question and the efficient use of data generated during tests to enhance the whole experience. Pointers to successful deployment of e-assessment indicate a way forward for the efficient and effective delivery of automated assessment.

 

This document has been created following a meeting of e-assessment experts under the auspices of the e-Assessment Association. It aims to set out some defining principles for eassessment, review current practice and outline the way forward for a more educationally rich deployment of electronic assessment. The eAA encourages fast accurate feedback to learners, sensible use of data generated during tests to improve student engagement and sets out a check list of ingredients that have led to successful roll out for automated assessment pointing out where this validates the findings of the Assessment Reform Group and other relevant research.

 

There appear to be two definitions of e-assessment in common use:

 

· E-assessment occurs when there is an automated marking/response, to student input on-screen in a test, informing on the process of answering a question and providing feedback to learners and their teachers through wellcrafted advice and reports. Alternatively,

 

· E-assessment occurs when there is use of technology in testing which encompasses the on-screen computer-marked assessments of above but also includes on-screen human marking of tests, electronic management and presentation of results, moderation and awarding processes with awarding bodies, anti-plagiarism software, tools which enable collaboration on the assessment and feedback processes, voting systems/clickers and e-portfolios

 

 

This difference in scope is not helpful as it confuses those who are not “into eassessment” and even allows experts to talk at crossed purposes at times. So, for this part of the eAA analysis of current practice, definition only will be considered.

 

The differentiation is that which draws on technology to provide automation in the pedagogic process rather than where an assessment still requires significant human intervention at stages of the process.

 

The e-Assessment Association promotes understanding and expertise in applying technology appropriately and effectively to support current developments and innovations in assessment policy and practice. The eAA understands some important distinctions in approaches to assessment and testing as an integral part of teaching and learning, central to achievement and standards across all sectors of education.

 

Assessment, which seeks and interprets evidence for use by students and their teachers to decide where the students are in their learning, where they need to go and how best to get there is essentially formative. The eAA recognises some of the principles set out by the Assessment Reform Group (ARG) and believes that software solutions designed for formative assessment should:

 

• Be part of the effective planning of teaching and learning.

• Focus on how students learn.

• Be able to be central to classroom practice.

• Promote professional skills for teachers.

• Be sensitive and constructive, being aware of emotional impact.

• Foster learner motivation.

• Promote commitment to learning goals and assessment criteria.

• Help learners to know how to improve.

• Develop the learner‟s capacity for self-assessment.

• Recognise a range of educational achievement.

 

This checklist provides good advice for teaching practice and advocates the treatment of learners more as individuals and not merely as members of a larger group. So, where and how can e-assessment enhance the ARG checklist?

 

Summative assessment as used by ARG, is employed by teachers to summarise what learners know or can do at certain times in order to record and report on their achievement and progress.

 

The eAA proposes that software solutions which support such assessment, recording and reporting should facilitate the trend towards giving teachers a more central and professional role in this aspect of their work.

 

While the outcomes of summative tests continue to play an important role (for individuals) in certification and selection and (for organisations) in national and regional bench-marking of system performance, their role in providing evidence for target setting, monitoring and self-evaluation as part of internal organisational improvement is of growing significance. Any assessment software solution would do well to conform to the four criteria spelt out by the ARG:

 

Validity: the assessment must cover all aspects, and only those aspects, of students‟ achievement relevant to a particular purpose.

 

Reliability: it should be designed so that users can have confidence that the results are sufficiently accurate and consistent for their purpose.

 

Impact: it should not only measure performance but have desirable onsequences for teaching, learning and users‟ motivation for learning. Assessment generally has a strong impact on the curriculum and on pedagogy, so it is vital that any adverse effects are minimised.

 

Practicability: the resources required to provide it – teachers‟ time, expertise and cost, and users‟ learning time – should be commensurate with the value of the information for all its participants.

 

One of the eAA experts had some problems with the current definitions of formative, seeing it as: an activity is formative if its outcome causes its actors or observers to adapt their behaviour. so, the expert argued that what is currently referred to as summative assessment and, in particular, high-stakes examining, can be thought of as the most formative of all current assessment activities since its effects are felt in every classroom and every FE and HE course. Thus, the expert pointed to the use of the term informative assessment and the introduction of the ideas about „information value‟ well explained in the article by McBride. McBride believes that assessment of learning, should not be equated to summative assessment only, providing as it does information which may be used to inform self-assessment, teaching or judgements ie across all shades of assessment practice. However, for the remainder of this article, we will retain the notion of formative and summative as described by the ARG.

 

There has been quite a long history of e-assessment to date, its ubiquity in UK public qualifications is still a long way off (particularly in academic qualifications) and it remains a technology nearing the end of the early adopter phase with many technical, pedagogic and assessment hurdles to overcome before its use becomes widespread.

 

It is worth noting that assessment (particularly summative or high stakes assessment) is not an area where innovation is easy because of regulatory and public pressure to avoid the downside of risk-taking. While new approaches are welcomed, they can only be introduced in such a way as to avoid disadvantage for the students pioneering them, and this can act as a brake on progress. For example, the annual furore at the time of primary and secondary school examination results and the media fascination with league tables means there is a desire to identify how results are improving (or otherwise) and with e-assessment seen as a recent phenomenon it is an easy place to lay blame. This also highlights that the use of technology in teaching, learning and assessment are ahead of the curve with younger learners who may be more comfortable with technology but perhaps not with those who are procuring such services. If it is generational then this may constitute a block in the system for the advancement of e-assessment.

 

There have been some notable successes such as ALTA (McAlister, Montgomery) and E-Scape (Ripley) in Primary and Secondary Education, SCHOLAR in Scotland at the school/university interface and in HE projects like CALM (Computer Aided Learning in Mathematics) and the introduction of e-assessment at Newcastle University for both Honours and Service mathematicians (see Foster and Fawcett et al). Even failures of public e-assessment programmes such as the ICT test in England at Key Stage 3 have proved to be useful and added to the lessons learned. E-assessment seems to have been most successful where it has been introduced with good planning but minimal fuss and, of course, where the pedagogic need and “authority for change” are very clearly established.

 

If e-assessment is embedded in an e-learning environment then feedback can direct users to similar examples worked through by an expert. Are our teachers and trainers able to make this shift or has CPD failed to deliver?

 

So, to repeat, this document deals exclusively with definition 1 cited above. In this area sufficient face validity has been established both in the UK and USA (see Greenwood et al, Ashton et al, Sandene et al and Ashton et al, so it is now time to move on.

 


3. Development Background

 

In any type of task or work, we always use different techniques, technologies, which facilitates the job and saves a lot of time.

 

The word technology refers to the making, modification, usage, and knowledge of tools, machines, techniques, crafts, systems, and methods of organization, in order to solve a problem, improve a preexisting solution to a problem, achieve a goal, handle an applied input/output relation or perform a specific function. It can also refer to the collection of such tools, including machinery, modifications, arrangements and procedures. Technologies significantly affect human as well as other animal species' ability to control and adapt to their natural environments. The term can either be applied generally or to specific areas: examples include construction technology, medical technology, and information technology.

 

The human species' use of technology began with the conversion of natural resources into simple tools. The pre-historical discovery of the ability to control fire increased the available sources of food and the invention of the wheel helped humans in travelling in and controlling their environment. Recent technological developments, including the printing press, the telephone, and the Internet, have lessened physical barriers to communication and allowed humans to interact freely on a global scale. However, not all technology has been used for peaceful purposes; the development of weapons of ever-increasing destructive power has progressed throughout history, from clubs to nuclear weapons.

 

Technology has affected society and its surroundings in a number of ways. In many societies, technology has helped develop more advanced economies (including today's global economy) and has allowed the rise of a leisure class. Many technological processes produce unwanted by-products, known as pollution, and deplete natural resources, to the detriment of the Earth and its environment. Various implementations of technology influence the values of a society and new technology often raises new ethical questions. Examples include the rise of the notion of efficiency in terms of human productivity, a term originally applied only to machines, and the challenge of traditional norms.

 

In this document I will explain which technologies I’ve used to create my project. It is the Django Web Framework. Below I’m explaining what does mean both Web Framework and what is Django is.


 

3.1 Python

 

A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely.

 

The earliest programming languages predate the invention of the computer, and were used to direct the behavior of machines such as Jacquard looms and player pianos. Thousands of different programming languages have been created, mainly in the computer field, with many being created every year. Most programming languages describe computation in an imperative style, i.e., as a sequence of commands, although some languages, such as those that support functional programming or logic programming, use alternative forms of description.

 

A programming language is a notation for writing programs, which are specifications of a computation or algorithm. Some, but not all, authors restrict the term "programming language" to those languages that can express all possible algorithms.

 

Here’re some facts, why did I‘ve chosen this language below.

 

Python is a remarkably powerful dynamic programming language that is used in a wide variety of application domains. Python is often compared to Tcl, Perl, Ruby, Scheme or Java. Some of its key distinguishing features include:

 

• very clear, readable syntax

• strong introspection capabilities

• intuitive object orientation

• natural expression of procedural code

• full modularity, supporting hierarchical packages

• exception-based error handling

• very high level dynamic data types

• extensive standard libraries and third party modules for virtually every task

• extensions and modules easily written in C, C++ (or Java for Jython, or.NET languages for IronPython)

• embeddable within applications as a scripting interface

 

Python is powerful... and fast

 

Fans of Python use the phrase "batteries included" to describe the standard library, which covers everything from asynchronous processing to zip files. The language itself is a flexible powerhouse that can handle practically any problem domain. Build your own web server in three lines of code. Build flexible data-driven code using Python's powerful and dynamic introspection capabilities and advanced language features such as meta-classes, duck typing and decorators.

 

Python lets you write the code you need, quickly. And, thanks to a highly optimized byte compiler and support libraries, Python code runs more than fast enough for most applications. The traditional implementation of CPython uses a byte code virtual machine; PyPy supports just-in-time (JIT) compilation to machine code. Also, Jython and IronPython (see below) support JIT compilation on their respective virtual machine implementations.

 

Python runs everywhere

 

Python is available for all major operating systems: Windows, Linux/Unix, OS/2, Mac, Amiga, among others. There are even versions that run on.NET and the Java virtual machine. You'll be pleased to know that the same source code will run unchanged across all implementations.

 

Your favorite system isn't listed here? It may still support Python if there's a C compiler for it. Ask around on news: comp.lang.python - or just try compiling

Python yourself.

 

Python is friendly... and easy to learn

 

The Python newsgroup is known as one of the friendliest around. The avid developer and user community maintains a wiki, hosts international and local conferences, runs development sprints, and contributes to online code repositories.

 

Python also comes with complete documentation, both integrated into the language and as separate web pages. Online tutorials target both the seasoned programmer and the newcomer. All are designed to make you productive quickly. The availability of first-rate books completes the learning package.

 

Python is Open

 

The Python implementation is under an open source license that makes it freely usable and distributable, even for commercial use. The Python license is administered by the Python Software Foundation.

 

 


3.2 Django

A web application framework is a software framework that is designed to support the development of dynamic websites, web applications and web services.

 

The framework aims to alleviate the overhead associated with common activities performed in Web development.

 

Basically, a web framework makes it easier for you to develop your application. Most sites have a common set of functionality (like handling sessions, data validation, etc) and a framework is something that prevents you from re-writing this each time you create a website.

 

LAMP (Linux, Apache, MySQL, PHP/Perl/Python) is a package that contains a web server (Apache). This is a piece of software that actually runs your web application. Frameworks are, in short, libraries that help you develop faster. Flask is a micro framework, which basically means that it is a framework with a small footprint (and meant for small sites, according to its docs). Django & Ruby on Rails are also frameworks. Django and Flask are both frameworks for Python, but Rails is a framework for Ruby.

 

Most developers suggest that we build applications without the help of frameworks, and then jump into using frameworks (which require us to understand principles such as Model-View-Controller, ORM, and so forth).

 

Because I’ve learned a lot of basic principles of building applications I’ve chosen the python-based web framework names Django.

 

In the early days, Web developers wrote every page by hand. Updating a Web site meant editing HTML; a “redesign” involved redoing every single page, one at a time.

 

As Web sites grew and became more ambitious, it quickly became obvious that that situation was tedious, time-consuming, and ultimately untenable. A group of enterprising hackers at NCSA (the National Center for Supercomputing Applications, where Mosaic, the first graphical Web browser, was developed) solved this problem by letting the Web server spawn external programs that could dynamically generate HTML. They called this protocol the Common Gateway Interface, or CGI, and it changed the Web forever. It’s hard now to imagine what a revelation CGI must have been: instead of treating HTML pages as simple files on disk, CGI allows you to think of your pages as resources generated dynamically on demand. The development of CGI ushered in the first generation of dynamic Web sites.

 

However, CGI has its problems: CGI scripts need to contain a lot of repetitive “boilerplate” code, they make code reuse difficult, and they can be difficult for first-time developers to write and understand.

 

PHP fixed many of these problems, and it took the world by storm – it’s now by far the most popular tool used to create dynamic Web sites, and dozens of similar languages and environments (ASP, JSP, etc.) followed PHP‟s design closely. PHP‟s major innovation is its ease of use: PHP code is simply embedded into plain HTML; the learning curve for someone who already knows HTML is extremely shallow.

 

But PHP has its own problems; its very ease of use encourages sloppy, repetitive, ill-conceived code. Worse, PHP does little to protect programmers from security vulnerabilities, and thus many PHP developers found themselves learning about security only once it was too late.

 

These and similar frustrations led directly to the development of the current crop of “third-generation” Web development frameworks. These frameworks – Django and Ruby on Rails appear to be the most popular these days – recognize that the Web’s importance has escalated of late. With this new explosion of Web development comes yet another increase in ambition; Web developers are expected to do more and more every day.

 

Django was invented to meet these new ambitions. Django lets you build deep, dynamic, interesting sites in an extremely short time. Django is designed to let you focus on the fun, interesting parts of your job while easing the pain of the repetitive bits. In doing so, it provides high-level abstractions of common Web development patterns, shortcuts for frequent programming tasks, and clear conventions on how to solve problems. At the same time, Django tries to stay out of your way, letting you work outside the scope of the framework as needed. We wrote this book because we firmly believe that Django makes Web development better. It’s designed to quickly get you moving on your own Django projects, and then ultimately teach you everything you need to know to successfully design, develop, and deploy a site that you’ll be proud of.

 

At its best, Web development is an exciting, creative act; at its worst, it can be a repetitive, frustrating nuisance. Django lets you focus on the fun stuff – the crux of your Web application – while easing the pain of the repetitive bits. In doing so, it provides high-level abstractions of common Web development patterns, shortcuts for frequent programming tasks, and clear conventions for how to solve problems. At the same time, Django tries to stay out of your way, letting you work outside the scope of the framework as needed.

 

First, developers of Django explains, in depth, what Django does and how to build Web applications with it. Second, we discuss higher-level concepts where appropriate, answering the question “How can I apply these tools effectively in my own projects?” By the Django book, you’ll learn the skills needed to develop powerful Web sites quickly, with code that is clean and easy to maintain.

 

Django’s History

 

Before we dive into more code, we should take a moment to explain Django’s history. We noted above that we’ll be showing you how to do things without shortcuts so that you more fully understand the shortcuts. Similarly, it’s useful to understand why Django was created, because knowledge of the history will put into context why Django works the way it does.

 

If you’ve been building Web applications for a while, you’re probably familiar with the problems in the CGI example we presented earlier. The classic Web developer’s path goes something like this:

 

1. Write a Web application from scratch.

2. Write another Web application from scratch.

3. Realize the application from step 1 shares much in common with the application from step 2.

4. Refactor the code so that application 1 shares code with application 2.

5. Repeat steps 2-4 several times.

6. Realize you’ve invented a framework.

 

This is precisely how Django itself was created!

 

Django grew organically from real-world applications written by a Web development team in Lawrence, Kansas, USA. It was born in the fall of 2003, when the Web programmers at the Lawrence Journal-Worldnewspaper, Adrian

 

Holovaty and Simon Willison, began using Python to build applications.

 

The World Online team, responsible for the production and maintenance of several local news sites, thrived in a development environment dictated by journalism deadlines. For the sites – including LJWorld.com, Lawrence.com and KUsports.com – journalists (and management) demanded that features be added and entire applications be built on an intensely fast schedule, often with only days‟ or hours‟ notice. Thus, Simon and Adrian developed a time-saving

 

Web development framework out of necessity – it was the only way they could build maintainable applications under the extreme deadlines.

 

In summer 2005, after having developed this framework to a point where it was efficiently powering most of World Online sites, the team, which now included Jacob Kaplan-Moss, decided to release the framework as open source software. They released it in July 2005 and named it Django, after the jazz guitarist Django Reinhardt.

 

Now, several years later, Django is a well-established open source project with tens of thousands of users and contributors spread across the planet. Two of the original World Online developers (the “Benevolent Dictators for Life,” Adrian and Jacob) still provide central guidance for the framework’s growth, but it’s much more of a collaborative team effort.

 

This history is relevant because it helps explain two key things. The first is Django’s “sweet spot.” Because Django was born in a news environment, it offers several features (such as its admin site, covered in Chapter 6) that are particularly well suited for “content” sites – sites like Amazon.com, craigslist.org, and washingtonpost.com that offer dynamic, database-driven information. Don’t let that turn you off, though – although Django is particularly good for developing those sorts of sites, that doesn’t preclude it from being an effective tool for building any sort of dynamic Web site. (There’s a difference between being particularly effective at something and being ineffective at other things.)

 

The second matter to note is how Django’s origins have shaped the culture of its open source community. Because Django was extracted from real-world code, rather than being an academic exercise or commercial product, it is acutely focused on solving Web development problems that Django’s developers themselves have faced – and continue to face. As a result, Django itself is actively improved on an almost daily basis. The framework’s maintainers have a vested interest in making sure Django saves developers time, produces applications that are easy to maintain and performs well under load. If nothing else, the developers are motivated by their own selfish desires to save themselves time and enjoy their jobs. (To put it bluntly, they eat their own dog food.)


3.3 SQLite

 

What is SQLite?

SQLite is a software library that implements a self-contained, serverless, zeroconfiguration, transactional SQL database engine. SQLite is the most widely deployed SQL database engine in the world. The source code for SQLite is in the public domain.

 

Android default Database engine is Lite. SQLite is a lightweight transactional database engine that occupies a small amount of disk storage and memory, so it's a perfect choice for creating databases on many mobile operating systems such as Android, iOS. It requires only little memory at runtime (approx. 250 KByte).

 

SQLite supports standard relational database features like SQL syntax, transactions and prepared statements.

 

SQLite supports the data types TEXT (similar to String in Java), INTEGER (similar to long in Java) and REAL (similar to double in Java). All other types must be converted into one of these fields before saving them in the database. SQLite itself does not validate if the types written to the columns are actually of the defined type, e.g. you can write an integer into a string column and vice versa.

 


Zero-Configuration

 

SQLite does not need to be "installed" before it is used. There is no "setup" procedure. There is no server process that needs to be started, stopped, or configured. There is no need for an administrator to create a new database instance or assign access permissions to users. SQLite uses no configuration files. Nothing needs to be done to tell the system that SQLite is running. No actions are required to recover after a system crash or power failure. There is nothing to troubleshoot. SQLite just works.

 

Other more familiar database engines run great once you get them going. But doing the initial installation and configuration can be intimidatingly complex.

 

Serverless

Most SQL database engines are implemented as a separate server process. Programs that want to access the database communicate with the server using some kind of interprocess communication (typically TCP/IP) to send requests to the server and to receive back results. SQLite does not work this way. With SQLite, the process that wants to access the database reads and writes directly from the database files on disk. There is no intermediary server process.

 

There are advantages and disadvantages to being serverless. The main advantage is that there is no separate server process to install, setup, configure, initialize, manage, and troubleshoot. This is one reason why SQLite is a "zero-configuration" database engine. Programs that use SQLite require no administrative support for setting up the database engine before they are run. Any program that is able to access the disk is able to use an SQLite database.

 

On the other hand, a database engine that uses a server can provide better protection from bugs in the client application - stray pointers in a client cannot corrupt memory on the server. And because a server is a single persistent process, it is able control database access with more precision, allowing for finer grain locking and better concurrency.

 

Most SQL database engines are client/server based. Of those that are serverless, SQLite is the only one that this author knows of that allows multiple applications to access the same database at the same time.

 

 

Single Database File

 

An SQLite database is a single ordinary disk file that can be located anywhere in the directory hierarchy. If SQLite can read the disk file then it can read anything in the database. If the disk file and its directory are writable, then SQLite can change anything in the database. Database files can easily be copied onto a USB memory stick or emailed for sharing.

 

Other SQL database engines tend to store data as a large collection of files. Often these files are in a standard location that only the database engine itself can access. This makes the data more secure, but also makes it harder to access. Some SQL database engines provide the option of writing directly to disk and bypassing the filesystem all together. This provides added performance, but at the cost of considerable setup and maintenance complexity.

 

Compact

 

When optimized for size, the whole SQLite library with everything enabled is less than 400KiB in size (as measured on an ix86 using the "size" utility from the GNU compiler suite.) Unneeded features can be disabled at compile-time to further reduce the size of the library to under 190KiB if desired.

 

Most other SQL database engines are much larger than this. IBM boasts that its recently released CloudScape database engine is "only" a 2MiB jar file - an order of magnitude larger than SQLite even after it is compressed! Firebird boasts that its client-side library is only 350KiB. That's as big as SQLite and does not even contain the database engine. The Berkeley DB library from Oracle is 450KiB and it omits SQL support, providing the programmer with only simple key/value pairs.

 

 

Manifest typing

 

Most SQL database engines use static typing. A datatype is associated with each column in a table and only values of that particular datatype are allowed to be stored in that column. SQLite relaxes this restriction by using manifest typing. In manifest typing, the datatype is a property of the value itself, not of the column in which the value is stored. SQLite thus allows the user to store any value of any datatype into any column regardless of the declared type of that column. (There are some exceptions to this rule: An INTEGER PRIMARY KEY column may only store integers. And SQLite attempts to coerce values into the declared datatype of the column when it can.)

 

As far as we can tell, the SQL language specification allows the use of manifest typing. Nevertheless, most other SQL database engines are statically typed and so some people feel that the use of manifest typing is a bug in SQLite. But the authors of SQLite feel very strongly that this is a feature. The use of manifest typing in SQLite is a deliberate design decision which has proven in practice to make SQLite more reliable and easier to use, especially when used in combination with dynamically typed programming languages such as Tcl and Python.

 

Variable-length records

 

Most other SQL database engines allocated a fixed amount of disk space for each row in most tables. They play special tricks for handling BLOBs and CLOBs which can be of wildly varying length. But for most tables, if you declare a column to be a VARCHAR(100) then the database engine will allocate 100 bytes of disk space regardless of how much information you actually store in that column.

 

SQLite, in contrast, use only the amount of disk space actually needed to store the information in a row. If you store a single character in a VARCHAR(100) column, then only a single byte of disk space is consumed. (Actually two bytes - there is some overhead at the beginning of each column to record its datatype and length.)

 

The use of variable-length records by SQLite has a number of advantages. It results in smaller database files, obviously. It also makes the database run faster, since there is less information to move to and from disk. And, the use of variable-length records makes it possible for SQLite to employ manifest typing instead of static typing.

 

Readable source code

 

The source code to SQLite is designed to be readable and accessible to the average programmer. All procedures and data structures and many automatic variables are carefully commented with useful information about what they do. Boilerplate commenting is omitted.

 

Public domain

 

The source code for SQLite is in the public domain. No claim of copyright is made on any part of the core source code. (The documentation and test code is a different matter - some sections of documentation and test logic are governed by open-source licenses.) All contributors to the SQLite core software have signed affidavits specifically disavowing any copyright interest in the code. This means that anybody is able to legally do anything they want with the SQLite source code.

 

There are other SQL database engines with liberal licenses that allow the code to be broadly and freely used. But those other engines are still governed by copyright law. SQLite is different in that copyright law simply does not apply.

 

The source code files for other SQL database engines typically begin with a comment describing your license rights to view and copy that file. The SQLite source code contains no license since it is not governed by copyright.

 

SQL language extensions

SQLite provides a number of enhancements to the SQL language not normally found in other database engines. The EXPLAIN keyword and manifest typing have already been mentioned above. SQLite also provides statements such as REPLACE and the ON CONFLICT clause that allow for added control over the resolution of constraint conflicts. SQLite supports ATTACH and DETACH commands that allow multiple independent databases to be used together in the same query. And SQLite defines APIs that allows the user to add new SQL functions and collating sequences.


 

JQUERY

jQuery - is a cross-browser JavaScript library designed to simplify the client-side scripting of HTML. It was released in January 2006 atBarCamp NYC by John Resig. Used by over 43% of the 10,000 most visited websites, jQuery is the most popular JavaScript library in use today.

 

jQuery is free, open source software, dual-licensed under the MIT License and the GNU General Public License, Version 2. jQuery's syntax is designed to make it easier to navigate a document, select DOM elements, create animations, handle events, and develop Ajax applications. jQuery also provides capabilities for developers to create plugins on top of the JavaScript library. Using these facilities, developers are able to create abstractions for low-level interaction and animation, advanced effects and high-level, theme-able widgets. This contributes to the creation of powerful and dynamic web pages.

 

Microsoft and Nokia have announced plans to bundle jQuery on their platforms, Microsoft adopting it initially within Visual Studio for use within Microsoft's ASP.NET AJAX framework and ASP.NET MVC Framework while Nokia has integrated it into their Web Run-Time widget development platform. jQuery has also been used in MediaWiki since version 1.16.


 

 

Features

jQuery contains the following features:

 

· DOM element selections using the cross-browser open source selector engine Sizzle, a spin-off out of the jQuery project

· DOM traversal and modification (including support for CSS 1-3)

· Events

· CSS manipulation

· Effects and animations

· Ajax

· Extensibility through plug-ins

· Utilities - such as browser version and the each function.

· Cross-browser support


Including the library

 

The jQuery library is a single JavaScript file, containing all of its common DOM, event, effects, and Ajax functions. It can be included within a web page by linking to a local copy, or to one of the many copies available from public servers (such as Google or Microsoft CDN).

<script type="text/javascript" src="jquery.js"> </script>

 



Поделиться:


Последнее изменение этой страницы: 2016-08-06; просмотров: 282; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.145.114 (0.467 с.)