INFO-I 211 at Indiana University Bloomington is led by Alexander Hayes.
Course structure
The course runs as a standard 16-week in-person course at Indiana University Bloomington between August 24th and December 18th.
Lectures meet twice per week, and topics are split into three units (with a “Zeroth Unit” on “Prerequisite Concepts” during the first two weeks).
Quizzes
Quizzes are held four times through the semester, and cover material up to that point (“summative” style). Like the rest of i211, topics build. Quizzes are sort of cumulative — it’s hard to truly separate later topics like web servers from earlier Linux topics — but with emphasis on recent material.
Quizzes are instructor-published and authoritative for the version of INFO-I 211 taught by Alexander Hayes. Old quizzes can help you get a sense of “writing style” or “question wording”, but provide NO guarantees for what will be on any future quiz.
Current Course Stack
The course covers a full-stack development approach for understanding modern software systems, i.e., user-facing software with a front end, a back end, and a database.
- Linux/Unix and command-line interfaces
- HTML/CSS/Bootstrap (and a tiny bit of JavaScript)
- Git and IU GitHub Enterprise
- Python and Flask
- Jinja and templating
- MariaDB and SQL
Prerequisites
Prerequisites from the 2026–2027 bulletin includes completing a programming foundations course (INFO-I 210 or CSCI-C 200 or C 211 ). However, some of those prerequisites also have prerequisites, so we assume some earlier knowledge by transitivity:
- General computer literacy: files/folders, file editing, typing, keyboard shortcuts
- Basic HTML and web structure: enough to manipulate HTML and load CSS/JavaScript
- Discrete structures: graphs, trees, sets, relations, and functions
- Programming fundamentals: functions, variables, conditionals, loops, data structures (lists, dictionaries, sets, strings), and modules
Alexander typically shows a flowchart like the following during the first couple lectures.
Does i211 teach Perl?
No.
i211 has gone through quite a few revisions over the years, but focuses on aspects of distributed systems in general, and web applications (with a database) in particular. The web is a flexible medium, so between 2007–2012 it was taught in a variety of languages, including Perl, PHP, and Python. Some old pages can still be found in the Wayback Machine, and this list was started based on YY Ahn’s summary:
- 2007, Fil Menczer, Perl. https://carl.cs.indiana.edu/fil/Class/i211/
- 2011, John Paolillo, PHP. https://web.archive.org/web/20120124232707/http://i211.soic.indiana.edu/pmwiki/pmwiki.php/Main/HomePage
- 2012, YY Ahn, Python. https://web.archive.org/web/20220930062516/http://yongyeol.com/courses/2012F-I211/