Indian Institute of Technology Madras
BS Degree Programme · Examination & Study Paper
Modern Application Development II
All 2025 papers
Examination Instructions & Guidelines
- Solve on notebook/paper first before checking solutions.
- MCQ: Exactly 1 option is correct. Negative marking applies.
- MSQ: One or more options correct. Select all to score.
- NAT: Numerical response. No negative marking.
- Scientific calculator allowed for all calculations.
- Official answer key is sealed at the end of this sheet.
Quiz 1 · 26 Oct 2025 (AN)Quiz 1
- Q1MSQ2 Marks·Choose all correct options
Which of the following Vue 2 template syntaxes are valid?
- A

- B

- C

- D

- A
- Q2MSQ2 Marks·Choose all correct options
Which of the following statements about Vue 2 templates are correct?
- Av-if removes elements from DOM when false
- Bv-show toggle initiates re-render of the Vue component
- Cv-bind can bind attributes and class dynamically
- DVue 2 templates must use double curly braces for all text interpolation
- Q3MCQ3 Marks·Choose one option

- ARahul - Priya - Amit
- BPriya - Rahul - Amit
- CAmit - Rahul - Priya
- DPriya - Amit - Rahul
- Q4MCQ3 Marks·Choose one option

- A['Amit', 'Chirag']
- B['CHIRAG', 'AMIT']
- C['AMIT', 'CHIRAG']
- D['AMIT', 'Bhavna', 'CHIRAG']
- Q5MCQ3 Marks·Choose one option

- Aclicked picture of Dog
- Bclicked picture of Deer
- Cclicked picture of Cat
- Dclicked picture of undefined
- Q6MCQ3 Marks·Choose one option

- A1-C, 2-D, 3-A, 4-E, 5-B
- B1-A, 2-C, 3-B, 4-D, 5-E
- C1-C, 2-A, 3-D, 4-B, 5-E
- D1-E, 2-A, 3-D, 4-C, 5-B
- Q7MCQ3 Marks·Choose one option

- A

- B

- C

- D

- A
- Q8MSQ3 Marks·Choose all correct options

- A

- B

- C

- D

- A
- Q9MSQ3 Marks·Choose all correct options

- AA
- BB
- CC
- DNone
- Q10NAT3 Marks·Write the number
Your answer: - Q11MCQ4.5 Marks·Choose one option

- A

- B

- C

- D

- A
- Q12MCQ4.5 Marks·Choose one option

- A

- B

- C

- D

- A
- Q13MSQ4.5 Marks·Choose all correct options

- A

- B

- C

- D

- E

- A
- Q14MSQ4.5 Marks·Choose all correct options

- A

- B

- C

- D

- A
Read the passage below, then answer Q15–Q16
Q15MCQ2 Marks·Choose one option
- A

- B

- C

- D

- A
- Q16MSQ2 Marks·Choose all correct options

- A

- B

- C

- D

- A
End Term · 31 Aug 2025 (FN)End Term
- Q17MCQ2 Marks·Choose one option
In a message queue system, if the consumer is slower than the producer, what is likely to occur first?
- AMessages will be dropped
- BThe producer will block until the consumer is ready
- CMessages will accumulate in the queue
- DThe consumer will speed up automatically
- Q18MCQ2 Marks·Choose one option

- AThe component will reload when data changes
- BThe DOM updates automatically when the underlying reactive data changes
- CAll function calls become asynchronous
- DIt disables direct access to state
- Q19MCQ2 Marks·Choose one option
In Flask, what is the main benefit of using the @cache.cached() decorator?
- AIt stores output in session storage
- BIt skips route execution for repeated inputs
- CIt enables token authentication
- DIt sends compressed response headers
- Q20MCQ2 Marks·Choose one option
What is the primary purpose of CORS (Cross-Origin Resource Sharing)?
- ATo encrypt data between client and server
- BTo control which domains can access resources
- CTo compress HTTP responses
- DTo authenticate users across applications
- Q21MSQ2 Marks·Choose all correct options
Which of the following practices help protect against supply chain attacks?
- AVersion pinning
- BStoring keys only in environment variables
- CReduce Dependencies
- DUsing only packages with over 1000 stars on GitHub
- Q22MSQ2 Marks·Choose all correct options
Which of the following factors directly affect the speed and performance of a web page load?
- AThe number of CSS selectors in the stylesheet
- BNumber of HTTP requests made
- CFile size of resources (like images, JS)
- DUse of semantic HTML tags
- Q23MSQ2 Marks·Choose all correct options
Which of the following is/are the potential benefits of using a message broker?
- AA message broker allows two servers in a network to directly communicate with each other, without an intermediary.
- BA message broker makes the network scalable for adding more servers to the network.
- CA message broker can be used for batch processing of messages.
- DA message broker is not suited in case of traffic spikes, as messages are retained in the queue until processed.
- Q24MSQ2 Marks·Choose all correct options
Which statements about webhooks are correct?
- AThey enable real-time data delivery
- BThey require polling from the client
- CThey use HTTP POST requests typically
- DThey're designed for server-to-server communication
- Q25MCQ3 Marks·Choose one option
A popular e-commerce platform needs to notify multiple third-party services (inventory management, email marketing, analytics) whenever a customer places an order. The development team is considering different approaches to handle these notifications. Scenario: When an order is placed, the system needs to: ● Update inventory levels in an external warehouse system ● Send a welcome email through a third-party email service ● Log analytics data to an external tracking service ● Update customer loyalty points in a CRM system Which of the following statements about using webhooks for this scenario is MOST accurate?
- AWebhooks are not suitable for this use case because they require the e- commerce platform to continuously poll each third-party service to check if they're ready to receive data, which would create unnecessary network overhead.
- BWebhooks provide an ideal solution as they allow the e-commerce platform to push real-time notifications to all subscribed third-party services immediately when an order is placed, eliminating the need for these services to repeatedly poll for updates.
- CWebhooks should be avoided in this scenario because they operate synchronously, meaning the customer's order placement would be delayed until all third-party services have successfully processed their notifications.
- DWebhooks are primarily designed for read-only operations and cannot handle complex data payloads like order information, making them unsuitable for e-commerce transaction notifications.
- Q26MCQ3 Marks·Choose one option
What is the main advantage of using caching in a Flask-based web application?
- AIt eliminates the need for client-side rendering
- BIt encrypts data transmission between server and client
- CIt avoids the need for database interactions completely
- DIt reduces server load by reusing responses for repeated requests
- Q27MCQ3 Marks·Choose one option

- AR P Q S
- BP R S Q
- CR P S Q
- DR S P Q
- Q28MCQ3 Marks·Choose one option

- A

- B

- C

- D

- A
- Q29MCQ3 Marks·Choose one option

- A

- B

- C

- D

- A
- Q30MCQ3 Marks·Choose one option

- Aobject, undefined, true, false
- Bnull, undefined, false, false
- Cobject, undefined, false, false
- Dnull, undefined, true, true
- Q31MCQ3 Marks·Choose one option

- AAdmin component
- BUnauthorized component
- CBlank screen
- DVue throws a routing error
- Q32MCQ3 Marks·Choose one option

- A

- B

- C

- D

- A
Read the passage below, then answer Q33–Q35


Based on the above data, answer the given subquestions.
Q33MCQ3 Marks·Choose one optionAfter step 2 (selecting two tasks), what is the value of selectedTasks.length?
- A0
- B1
- C2
- D3
- Q34MCQ3 Marks·Choose one option
What happens when the user clicks "Select" on Design UI again (step 3)?
- AIt is added again, making the total 3
- BIt replaces the previous task
- CNothing changes, no duplicate is added
- DVue throws a warning about duplicate keys
- Q35MSQ3 Marks·Choose all correct options
Which of the following statements about this component setup are true?
- A

- B

- C

- D

- A
- Q36MSQ3 Marks·Choose all correct options
Which factors directly impact the Lighthouse "Performance" score?
- AFirst Contentful Paint (FCP)
- BHTTPS usage
- CTime to Interactive (TTI)
- DLayout Shift
- Q37MSQ3 Marks·Choose all correct options
Which statements are true about handling background tasks in Flask with Celery?
- ACelery allows long-running tasks to be executed asynchronously
- BPolling is a strategy to check task status periodically
- CUsing time.sleep() blocks the event loop and is recommended for async tasks
- DFlask + Celery + Redis is a common stack for async task management
- Q38MSQ3 Marks·Choose all correct options
Which of the following are true about mutations and actions in Vuex?
- AMutations can be asynchronous
- BActions can be asynchronous
- COnly actions can call APIs through fetch call
- DMutations should modify state directly
- Q39MSQ3 Marks·Choose all correct options

- AThe class "active" will only be applied to the div element if the variable "isActive" evaluates to true.
- BThe class "text-bold" will always be applied to the div element regardless of the "hasBoldText" variable value.
- CThe class "disabled" will be applied to the div element when the variable "isEnabled" evaluates to false.
- DAll three classes ("active", "text-bold", "disabled") will always be applied to the div element.
- EThe class "text-bold" will only be applied if the variable "hasBoldText" exists and evaluates to a truthy value.
- FIf "isEnabled" is undefined, the "disabled" class will not be applied to the div element.
- Q40MCQ4.5 Marks·Choose one option

- A

- B

- C

- D

- A
- Q41MCQ4.5 Marks·Choose one option

- A

- B

- C

- D

- A
- Q42MCQ4.5 Marks·Choose one option

- A

- B

- C

- D

- A
- Q43MCQ4.5 Marks·Choose one option
If requests for user IDs 1, 2, 1 are made within 5 minutes, what's the total response time?- A15 seconds
- B10 seconds
- C5 seconds
- D0 seconds
- Q44MCQ4.5 Marks·Choose one option

- A

- B

- C

- D

- A
- Q45MCQ4.5 Marks·Choose one option

- AResult: null
- BError: HTTP 404, Result: null
- CError: HTTP 404
- DUnhandled promise rejection
- Q46MCQ4.5 Marks·Choose one option
Consider the following JavaScript program that demonstrates web storage operations:

- A

- B

- C

- D

- A
Read the passage below, then answer Q47–Q48
Answer the given subquestions.
Q47MCQ3 Marks·Choose one option
- AThe password will be stored as plain text "mypassword123" in the database because WTF_CSRF_ENABLED = False
- BThe password will be hashed using bcrypt with the salt "this-is-a-salt-key" before being stored in the database
- CThe password will be hashed using SHA-256 algorithm since no specific hashing method is configured
- DThe password will be encrypted using the SECRET_KEY and stored in the session only
- Q48MCQ4.5 Marks·Choose one option

- A200, 200, 200
- B200, 401, 403
- C200, 401, 401
- D401, 401, 403
End Term · 31 Aug 2025 (AN)End Term
- Q49MCQ2 Marks·Choose one option
In a message queue system, if the consumer is slower than the producer, what is likely to occur first?
- AMessages will be dropped
- BMessages will accumulate in the queue
- CThe consumer will speed up automatically
- DThe producer will block until the consumer is ready
- Q50MCQ2 Marks·Choose one option
What does "reactivity" mean in the context of frontend frameworks like Vue.js?
- AThe component will reload when data changes
- BAll function calls become asynchronous
- CIt disables direct access to state
- DThe DOM updates automatically when the underlying reactive data changes
- Q51MCQ2 Marks·Choose one option
In Flask, what is the main benefit of using the @cache.cached() decorator?
- AIt stores output in session storage
- BIt enables token authentication
- CIt sends compressed response headers
- DIt skips route execution for repeated inputs
- Q52MCQ2 Marks·Choose one option
What is the primary purpose of CORS (Cross-Origin Resource Sharing)?
- ATo encrypt data between client and server
- BTo compress HTTP responses
- CTo authenticate users across applications
- DTo control which domains can access resources
- Q53MSQ2 Marks·Choose all correct options
Which of the following practices help protect against supply chain attacks?
- AStoring keys only in environment variables
- BVersion pinning
- CUsing only packages with over 1000 stars on GitHub
- DReduce Dependencies
- Q54MSQ2 Marks·Choose all correct options
Which of the following factors directly affect the speed and performance of a web page load?
- AThe number of CSS selectors in the stylesheet
- BUse of semantic HTML tags
- CNumber of HTTP requests made
- DFile size of resources (like images, JS)
- Q55MSQ2 Marks·Choose all correct options
Which of the following is/are the potential benefits of using a message broker?
- AA message broker makes the network scalable for adding more servers to the network.
- BA message broker allows two servers in a network to directly communicate with each other, without an intermediary.
- CA message broker is not suited in case of traffic spikes, as messages are retained in the queue until processed.
- DA message broker can be used for batch processing of messages.
- Q56MSQ2 Marks·Choose all correct options
Which statements about webhooks are correct?
- AThey enable real-time data delivery
- BThey use HTTP POST requests typically
- CThey're designed for server-to-server communication
- DThey require polling from the client
- Q57MCQ3 Marks·Choose one option
A popular e-commerce platform needs to notify multiple third-party services (inventory management, email marketing, analytics) whenever a customer places an order. The development team is considering different approaches to handle these notifications. Scenario: When an order is placed, the system needs to: ● Update inventory levels in an external warehouse system ● Send a welcome email through a third-party email service ● Log analytics data to an external tracking service ● Update customer loyalty points in a CRM system Which of the following statements about using webhooks for this scenario is MOST accurate?
- AWebhooks are not suitable for this use case because they require the e- commerce platform to continuously poll each third-party service to check if they're ready to receive data, which would create unnecessary network overhead.
- BWebhooks should be avoided in this scenario because they operate synchronously, meaning the customer's order placement would be delayed until all third-party services have successfully processed their notifications.
- CWebhooks provide an ideal solution as they allow the e-commerce platform to push real-time notifications to all subscribed third-party services immediately when an order is placed, eliminating the need for these services to repeatedly poll for updates.
- DWebhooks are primarily designed for read-only operations and cannot handle complex data payloads like order information, making them unsuitable for e-commerce transaction notifications.
- Q58MCQ3 Marks·Choose one option
What is the main advantage of using caching in a Flask-based web application?
- AIt eliminates the need for client-side rendering
- BIt reduces server load by reusing responses for repeated requests
- CIt encrypts data transmission between server and client
- DIt avoids the need for database interactions completely
- Q59MCQ3 Marks·Choose one option

- AR P Q S
- BP R S Q
- CR S P Q
- DR P S Q
- Q60MCQ3 Marks·Choose one option

- A

- B

- C

- D

- A
- Q61MCQ3 Marks·Choose one option
Consider the following javascript program.
What will be the output of the above program on the browser’s console?- A

- B

- C

- D

- A
- Q62MCQ3 Marks·Choose one option

- AApp 1 only shows data
- BBoth show “Hello from App 2”
- CBoth show “Hello from App 1”
- DEach renders its own message independently
- Q63MCQ3 Marks·Choose one option

- A

- B

- C

- D

- A
- Q64MSQ3 Marks·Choose all correct options
Which factors directly impact the Lighthouse "Performance" score?
- AFirst Contentful Paint (FCP)
- BTime to Interactive (TTI)
- CLayout Shift
- DHTTPS usage
- Q65MSQ3 Marks·Choose all correct options
Which statements are true about handling background tasks in Flask with Celery?
- AUsing time.sleep() blocks the event loop and is recommended for async tasks
- BCelery allows long-running tasks to be executed asynchronously
- CPolling is a strategy to check task status periodically
- DFlask + Celery + Redis is a common stack for async task management
- Q66MSQ3 Marks·Choose all correct options
Which of the following are true about mutations and actions in Vuex?
- AActions can be asynchronous
- BOnly actions can call APIs through fetch call
- CMutations should modify state directly
- DMutations can be asynchronous
- Q67MSQ3 Marks·Choose all correct options

- AThe class "active" will only be applied to the div element if the variable "isActive" evaluates to true.
- BThe class "disabled" will be applied to the div element when the variable "isEnabled" evaluates to false.
- CThe class "text-bold" will always be applied to the div element regardless of the "hasBoldText" variable value.
- DAll three classes ("active", "text-bold", "disabled") will always be applied to the div element.
- EIf "isEnabled" is undefined, the "disabled" class will not be applied to the div element.
- FThe class "text-bold" will only be applied if the variable "hasBoldText" exists and evaluates to a truthy value.
Read the passage below, then answer Q68–Q70


Scenario
1. The component is loaded.
2. User clicks "Mark Complete" for the task named Build Project.
3. User clicks "Show Completed" button again.
Q68MCQ3 Marks·Choose one optionAfter step 2 (Mark Completed is clicked), what tasks are shown?
- ALearn Vue
- BLearn Vue, Build Project, Test App
- CTest App only
- DNone
- Q69MCQ3 Marks·Choose one option
After step 3 (Mark Complete is clicked on Build Project), how many completed tasks are reported in the UI?
- A1
- B2
- C3
- D0
- Q70MSQ3 Marks·Choose all correct options
Which of the following are true about this component’s behavior?
- A

- B

- C

- D

- A
- Q71MCQ4.5 Marks·Choose one option

- A

- B

- C

- D

- A
- Q72MCQ4.5 Marks·Choose one option

- A

- B

- C

- D

- A
- Q73MCQ4.5 Marks·Choose one option

- AUserProfile
- BUser
- CNotFound
- DUserSettings
- Q74MCQ4.5 Marks·Choose one option

- ARequest succeeds
- BCORS error occurs
- C404 error
- DThe server crashes
- Q75MCQ4.5 Marks·Choose one option

- A

- B

- C

- D

- A
- Q76MSQ4.5 Marks·Choose all correct options
Assuming that the root Vue instance has already been created and mounted to div app. Which of the following statements are CORRECT?- AThe header slot will display "Welcome John" when loading is true
- BThe content slot will render 3 list items with "item1 (3 total)", "item2 (3 total)", "item3 (3 total)"
- CThe default slot will display "No data available" from the fallback prop
- DIf we change isLoading: true in data-provider, the header will show "Loading..."
- EChanging v-slot:default to just v-slot in parent-component would break the functionality
Read the passage below, then answer Q77–Q78
Answer the given Subquestions:
Q77MCQ4.5 Marks·Choose one optionConsider the following Vue Router configuration in a Vue 2 application:
In a Vue component, you have these navigation methods:
What URLs will be generated when the user clicks each navigation element?- AUser button: /user, Product button: /product, Home link: /home
- BUser button: /user/123, Product button: /product/electronics/456, Home link: /
- CUser button: /UserProfile/123, Product button: /ProductDetail/electronics/456, Home link: /Home
- DUser button: /user?id=123, Product button: /product?category=electronics&id=456, Home link: /
- Q78MSQ4.5 Marks·Choose all correct options
Using the same Vue Router configuration from the previous question, Select ALL correct statements about these navigation methods.
- AThe "View User" link will navigate to /user/789 and match the UserProfile route
- BThe navigateOne() method will create URL /user/555?tab=settings
- CThe $router.replace() method adds a new entry to the browser history
- DThe $router.go(-1) method navigates to the previous page in browser history
Read the passage below, then answer Q79–Q80
Prashant and Nikita are creating a quiz question paper collaboratively. They are each working on different sections — and complete their tasks in parallel. Meanwhile, Mayur is enjoying a single- player game that finishes when the game loop ends.
To compare productivity:
● If Prashant and Nikita (together) finish faster than Mayur, the winner is "Team".
● If Mayur finishes faster, he wins.
● If both take the same time, Mayur wins by default.
You are simulating this scenario in the browser.Prashant and Nikita are represented using parallel Promises. Mayur is represented using a single Promise. The frontend must calculate who finishes first using asynchronous logic, and display the result.

Based on the above data, answer the given subquestions.
Q79MCQ3 Marks·Choose one optionIf Prashant and Nikita finish together in 3 seconds (since Promise.all waits for both), and Mayur finishes in 4 seconds, who wins?
- AMayur
- BTeam
- CNikita
- DRace condition prevents output
- Q80MCQ3 Marks·Choose one option
The Team takes 5 seconds in total. Mayur takes 2 seconds. According to the logic of app2.js, who is the winner?- AMayur
- BTeam
- CNikita
- DError due to async logic
Quiz 2 · 3 Aug 2025 (AN)Quiz 2
- Q81MCQ2 Marks·Choose one option

- A

- B

- C

- D

- A
- Q82MSQ2 Marks·Choose all correct options
Which of the following statements are true?
- A

- B

- C

- D

- A
- Q83MSQ2 Marks·Choose all correct options
Which of the following statement(s) about Web Storage APIs is/are correct?
- A

- B

- C

- D

- A
- Q84MSQ2 Marks·Choose all correct options
Which of the following statement(s) is/are true regarding Single Page Applications (SPA) and Progressive Web Apps (PWA)?
- ASPAs use client-side routing to dynamically update content without full page reloads.
- BPWAs can work offline using service workers.
- CSPAs always require a server-side language to handle routing.
- DPWAs can be added to a device’s home screen like native apps.
- Q85MCQ3 Marks·Choose one option

- ATotal Score: 80
- BTotal Score: 90
- CTotal Score: 120
- DTotal Score: NaN
- Q86MCQ3 Marks·Choose one option

- ADashboard only
- BStats Component only
- CDashboard Stats Component
- D404 Not Found
- Q87MCQ3 Marks·Choose one option

- A

- B

- C

- D

- A
- Q88MCQ3 Marks·Choose one option

- A

- B

- C

- D

- E

- A
- Q89MCQ3 Marks·Choose one option

- A

- B

- C

- D

- E

- A
- Q90MSQ3 Marks·Choose all correct options

- A

- B

- C

- D

- E

- A
- Q91MSQ3 Marks·Choose all correct options

- A

- B

- C

- D

- E

- A
- Q92MCQ4.5 Marks·Choose one option

- ABoth will show Dashboard
- B1: Dashboard, 2: 404 Not Found
- C1: Dashboard, 2: Stats Component
- DBoth will show 404 Not Found
- Q93MCQ4.5 Marks·Choose one option

- A

- B

- C

- D

- A
- Q94MCQ4.5 Marks·Choose one option

- A

- B

- C

- D

- A
Read the passage below, then answer Q95–Q96
You are given the following HTML and JavaScript code that uses Vue 2 via CDN along with Vue Router. Read the code carefully and answer the given subquestions.

Q95MCQ4.5 Marks·Choose one option
- A

- B

- C

- D

- A
- Q96MCQ3 Marks·Choose one option
Suppose the button is clicked multiple times quickly, the message area flickers unexpectedly. How can you improve the code to ensure proper async behavior and prevent overlapping fetches?
- A

- B

- C

- D

- A
Official KeyMaster Answer Key & Explanations
Official answer keys from IIT Madras BS past papers. Click any question to review.
Reveal KeyCollapse Key
Master Answer Key & Explanations
Official answer keys from IIT Madras BS past papers. Click any question to review.