Home / Exam patterns / MAD1
Computed from every MAD1 paper on the practice site (132 papers, 2933 questions), with the topic weights, question types and how much repeats.
| Exam | Papers | Years | Typical marks | Typical no. of questions | Share of questions | Share of marks | Papers with a comprehension block |
|---|---|---|---|---|---|---|---|
| Quiz 1 weeks 1-4 | 43 | 2022-2026 | 50 | 16 | MCQ 81% / MSQ 18% / SA 1% | MCQ 82% / MSQ 17% / SA 1% | 74% |
| Quiz 2 weeks 5-8 | 39 | 2022-2026 | 50 | 16 | MCQ 69% / MSQ 29% / SA 2% | MCQ 67% / MSQ 32% / SA 2% | 51% |
| End Term all 12 weeks | 50 | 2022-2026 | 100 | 32 | MCQ 76% / MSQ 22% / SA 1% | MCQ 75% / MSQ 24% / SA 2% | 88% |
Some uploads on the source site merge two parallel sets, which is why a few papers show double marks. MCQ = one right option, MSQ = one or more right options (strict marking), SA = type the number.
| Week topic | Quiz 1 | Quiz 2 | End Term |
|---|---|---|---|
| 1. How the web works: clients, servers, URLs and HTTP | 100% | 100% | 100% |
| 2. HTML and CSS: building and styling pages | 100% | 87% | 100% |
| 3. Views: Jinja2 templates, Bootstrap and forms | 100% | 100% | 100% |
| 4. Models: databases, SQL, ER diagrams and SQLAlchemy | 84% | 100% | 100% |
| 5. Controllers: Flask routes and business logic | 88% | 100% | 100% |
| 6. APIs and REST: OpenAPI and Flask-RESTful | 58% | 100% | 100% |
| 7. Backend systems: indexing, search, caching and logging | 100% | 100% | 100% |
| 8. The frontend: JavaScript, the DOM and fetch | 26% | 60% | 71% |
| 9. Security: authentication, sessions, tokens and attacks | 16% | 73% | 87% |
| 10. Testing web applications with pytest | 7% | 13% | 100% |
| 11. HTML5, accessibility, encoding and beyond HTML | 65% | 60% | 60% |
| 12. Deployment: Git, WSGI, servers and the cloud | 12% | 0% | 76% |
Share of papers whose concept summary mentions the week's topic (keyword match, so treat it as a guide, not a count of questions).
| Exam | Papers | Exam dates | Question slots | Different questions | Copies of each (average) | Different questions seen on 2+ exam dates |
|---|---|---|---|---|---|---|
| Quiz 1 | 43 | 11 | 697 | 181 | 3.9 | 3 (2%) |
| Quiz 2 | 39 | 10 | 630 | 160 | 3.9 | 1 (1%) |
| End Term | 50 | 12 | 1606 | 467 | 3.4 | 33 (7%) |
Read this carefully. Within one exam date the parallel sets are drawn from the same pool, so each different question appears on several papers (the 'copies' column). Across different dates, questions with identical wording or identical figure files are rare. Matching here is exact, so a re-typed or re-cropped version counts as different; the real overlap in question type is much higher than this table can see. The takeaway: old papers teach you the types and stories that come back with new numbers, they are not a list of answers to memorise.
| Exam dates it appeared on | Question (text-based ones) | |
|---|---|---|
| 4 | Consider the following flask app. Given that `test_request_context()` allows text to be printed on the terminal, which of the following statements is/are correct? ```pyth | open |
| 4 | Consider the following graph that represents the variation in bandwidth of a network for an entire day (24 hours). Three users were connected to the network at three diff | open |
| 3 | Consider the following models Library and Book corresponding to tables library and book in SQLite database. ```python class Library(db.Model): id = db.Column(db.Integer() | open |
| 3 | Consider the following flask resource created using flask_restful. ```python from flask import Flask, request from flask_restful import Api, Resource, reqparse app = Flas | open |
| 3 | Consider a function func, and a set of test cases given below. Filename: test_file.py ```python import pytest def func(x,y): out = x**2+y**2 return out class Test_class0( | open |
| 3 | Consider the following function to be tested and test functions given in the Python code snippet below. test_file.py ```python import pytest def square(x): sum = 0 for co | open |
| 3 | Consider the following python code snippet "app.py", the HTML files, "base.html" and "home.html" residing in "templates" folder. app.py ```python from flask import Flask, | open |
| 2 | THIS IS QUESTION PAPER FOR THE SUBJECT "DIPLOMA LEVEL: MODERN APPLICATION DEVELOPMENT 1" ARE YOU SURE YOU HAVE TO WRITE EXAM FOR THIS SUBJECT? CROSS CHECK YOUR HALL TICKE | open |
| 2 | Consider the following flask application. app.py ```python from flask import Flask, request app = Flask(__name__) @app.route('/calculate') def calculate(): a = request.ar | open |
| 2 | The directory listing of a folder and the content of each of its files are given below. **Directory Listing:** ``` my_dir-| |-- base.html |-- home.html |-- index.html ``` | open |
MAD1 tests whether you can read a small web application and say what it does. Typical stems from the papers (paraphrased):
Order mapped to the table orders. What does this query return?"From matching the real questions (with the code in the screenshots transcribed) to the weeks:
loop.index starting at 1, {% if %} on empty lists, filters such as |upper, and autoescaping.url_for generates, redirect vs render_template, 404 vs 405.NULL comparisons, GROUP BY with HAVING, JOIN row counts, LIMIT/OFFSET.Order of attack: weeks 1 to 5 first (they are worth the most marks in every exam), then weeks 6, 7 and 10, then the rest. For each week do the lesson, its quiz, and the real questions page, saying the output before you open the answer. Run the transcribed code on your own computer when you are unsure: Flask 3, Jinja2 and SQLite are enough for almost every question.