Indian Institute of Technology Madras
BS Degree Programme · Examination & Study Paper
Modern Application Development II
End Term · 31 Aug 2025 (Afternoon)
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.
- Scientific calculator allowed for all calculations.
- Official answer key is sealed at the end of this sheet.
- Q1MCQ2 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
- Q2MCQ2 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
- Q3MCQ2 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
- Q4MCQ2 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
- Q5MSQ2 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
- Q6MSQ2 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)
- Q7MSQ2 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.
- Q8MSQ2 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
- Q9MCQ3 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.
- Q10MCQ3 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
- Q11MCQ3 Marks·Choose one option

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

- A

- B

- C

- D

- A
- Q13MCQ3 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
- Q14MCQ3 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
- Q15MCQ3 Marks·Choose one option

- A

- B

- C

- D

- A
- Q16MSQ3 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
- Q17MSQ3 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
- Q18MSQ3 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
- Q19MSQ3 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 Q20–Q22


Scenario
1. The component is loaded.
2. User clicks "Mark Complete" for the task named Build Project.
3. User clicks "Show Completed" button again.
Q20MCQ3 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
- Q21MCQ3 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
- Q22MSQ3 Marks·Choose all correct options
Which of the following are true about this component’s behavior?
- A

- B

- C

- D

- A
- Q23MCQ4.5 Marks·Choose one option

- A

- B

- C

- D

- A
- Q24MCQ4.5 Marks·Choose one option

- A

- B

- C

- D

- A
- Q25MCQ4.5 Marks·Choose one option

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

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

- A

- B

- C

- D

- A
- Q28MSQ4.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 Q29–Q30
Answer the given Subquestions:
Q29MCQ4.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: /
- Q30MSQ4.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 Q31–Q32
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.
Q31MCQ3 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
- Q32MCQ3 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
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.