CS2003 · Diploma / Programming · 4 credits

Modern Application Development I

Building web applications from the ground up — HTML, CSS, Python, Flask, SQL and the mechanics of how the web actually works.

Instructor Prof. Nitin Chandrachoodan & Mr. Thejesh GN Term Every term Prereq CS1002

§ 1Calendar

  • Quiz 1—
  • Quiz 2—
  • End-term examination—

§ 2Previous Year Questions

  • MAD 1 weekwise PYQs

    Past questions sorted by week.

    discourse.onlinedegree.iitm.ac.inby Preethy ParthasarathyDiscourse login required

§ 3Resources

Course material3

Live sessions1

  • TA live sessions

    Sheet of TA sessions with dates, topics and recordings.

    docs.google.comIITM login required

Notes and guides6

CS2003 · Diploma / Programming · 4 credits

Syllabus

The official course syllabus, transcribed from the IITM BS Data Science & Applications course booklet.

§ 1Course Description

Building a modern application involves multiple components, including the front end, transaction handling, data storage, server communication, and API integration. The courses Modern Application Development I, and II address these aspects through a detailed, evolving case study, introducing relevant programming skills as the course progresses.

Lectures-Tutorials-Practicals-Credits: 4-0-0-4

§ 2Faculty

§ 3Week-by-week

Week 1: Applications and architectures; Web fundamentals and protocols; Web servers and performance; Replit development.

Week 2: Information representation; HTML and CSS (styling, selectors, responsive design); Bootstrap.

Week 3: MVC and views; UI/UX design and usability; Tools and accessibility; Jinja2 and command-line usage.

Week 4: Persistent storage and relational databases; ER diagrams; SQL; Flask.

Week 5: Requests and responses; CRUD; Routes and controllers; Database integration (SQLite, SQLAlchemy); Flask structure.

Week 6: API design and REST; OpenAPI and documentation; Flask-RESTful.

Week 7: Memory hierarchy; Data and database search; SQL vs NoSQL; Scaling; Database security; Logging and debugging.

Week 8: Frontend development; Asynchronous updates; Client-side operations and security; Indexing and full-text search.

Week 9: Access control; Security mechanisms; Sessions; HTTPS; Logging; Introduction to JavaScript.

Week 10: Application testing; Levels of testing; Test generation; Pytest; Flask-Security; Testing practices.

Week 11: Advanced frontend - JavaScript, custom elements, frameworks; DB migration.

Week 12: Application architecture; Services; Deployment and containers.