Course Syllabus
INST 408Y: Search Engines
Instructional Staff:
- Professor: Douglas W. Oard (oard@umd.edu).
- Office hours: Mondays 11 AM to noon in Patuxent (PTX) 1109C (except during Spring Break).
- Teaching Assistant: Xin Qian (xinq@umd.edu)
- Office hours: Fridays 3:30-4:30 PM in zoom https://umd.zoom.us/j/8490831868 (except during Spring Break).
Learning Objectives
Upon completion of this course, students will be able to:
- Articulate the capabilities and limitations of search engines.
- Describe design considerations when applying search engines to specific applications.
- Implement a search engine for a specific task.
- Compare the effectiveness of alternative search engine designs.
Modality
This is a face-to-face course that meets from 9:30 to 10:45 AM on Mondays and Wednesdays in ESJ 2309.
Approach
The objective of the course is to give students a detailed understanding of current methods for creating systems that help people search for unstructured content, for which we will adopt text search as our driving example. The course is designed as 7 main modules of 1.5 to 2.5 weeks each. The first four main modules (indexing, traditional methods, evaluation, extensions) will help students build the basic understanding they will need to design, implement and evaluate their term project during the second half of the semester. The second half of the course then focuses on more advanced topics, starting with neural methods, then progressing to Web search, and finally illustrating how similar approaches can be extended to other applications (e.g., searching speech or foreign languages). A typical class session will include a mix of lecture and lab, with the lab session conducted using Google Colab notebooks. Reading assignments in one of two textbooks, and four programming assignments, will supplement the lectures. The course includes a term project in which students will select from a set of retrieval tasks for which suitable resources have been assembled in advance by the instructor; students may also design their own project, subject to instructor approval.
Textbooks
- Bruce Croft, Donald Metzler and Trevor Strohman, Search Engines: Information Retrieval in Practice, 2015 Update. This book is available free on the Web. It will be the main textbook for the class, covering every aspect except the newly introduced neural models.
- Jimmy Lin, Rodrigo Nogueira and Andrew Yates, Pretrained Transformers for Text Ranking: BERT and Beyond, Synthesis Lectures on Human Language Technologies, Morgan & Claypool, to appear. Final preproduction preprint is available as free on the Web as arXiv:2010.06467 v3, August, 2021.
Assignments
Students will complete six assignments, always due before class on a Monday. Students will work individually on the first four assignments and in two-person teams for the last two assignments (which are both parts of the final project). Assignments will be submitted using ELMS.
Final Exam
The final exam will be a two-hour open book, open notes, open-Internet written exam in which the students will answer questions about course concepts. No programming will be required. The final exam will be available from 7 AM on Wednesday May 11, and must be completed and submitted (using ELMS) by 11:59 PM on Saturday May 14; the exam can be completed in any continuous 2-hour period in that time.
Academic Integrity
Students are encouraged to work together to share ideas, approaches, examples, debugging techniques and the like, but everything turned in by each student must be created by that student alone. Students may reuse and modify code from other sources (crediting the original source), but they may not reuse code from other students in this course, and they may not ask people who are not taking this course to write code or portions of reports for them. The one exception is the team project, where the work that will be turned in is from the two-person project team, and that team can divide the work among themselves in whatever way they think best.
All assignments must include the university Honor pledge: "I pledge on my honor that I have not given or received any unauthorized assistance on this assessment." You must hand-type the pledge (no cut and paste) and then hand type your name after it as your signature.
Plagiarism, whether intentional or inadvertent, is a serious offense for which the University imposes severe sanctions. In written work such as project reports, all material that is obtained from any source must be properly cited, and all use of the words from any source must be both properly cited and placed in quotation marks. In programming, all reused or modified code should contain a comment citing the original source.
Grading
- Class participation (for the lab session portion of each class): max of 20 points
- First four assignments: max of 10 points each
- Term project: max of 20 points (5 points for the preliminary report, 15 points for the final project report and code)
- Final exam: max of 20 points
The penalty for late submission of a regular assignment is one point per day or part thereof (e.g., for a 10 point assignment due at 11:59 PM, an assignment submitted one minute late would be graded as usual, and then the grade would be reduced by 1 point for submission a part of one day late). No credit will be awarded after 7 days. The late penalty for the term project or final exam is one point per hour; no credit will be awarded after 20 hours (this tighter timeline is required to meet the university's deadline for submission of final course grades). If an extension to a deadline is needed for exceptional reasons (e.g., illness), you must contact the TA in sufficient time before the original deadline to have your request considered and decided. Late penalties incurred before an extension request is decided will not be waived. Any extension will be to a specific date and time, beyond which late penalties will accrue.
Grades for assignments will normally be available on ELMS within one week. We are always happy to discuss grading decisions. If you have questions or concerns, you should first contact the TA for assignment and project grades, or the Professor for participation or final exam grades. Grade appeals must cite specific aspect(s) of the written assignment that you believe were incorrectly graded, and must be submitted in writing (e.g., by email) within 7 days of receiving your grade. Appeals will result in regrading the entire assignment, and as a result may raise or lower your grade. Appeals will normally be decided within 14 days.
Final course grades will be assigned based on the sum of your participation, assignment, project, and final exam grades, with standard breakpoints (e.g., 90-92 is an A-), with no curve.
Prerequisite
INST 326 (Object Oriented programming for Information Science) or equivalent. Rationale: Knowledge of Python programming is needed.
Technology requirements
In-class lab sessions and at-home programming assignments will be supported by code examples presented using Google Colab notebooks, so students will need a laptop and Internet access to use those cloud services both in class and from home. In the second half of the semester, students will use Colab notebooks for limited access to a GPU or TPU services for the one homework involving neural methods, and more robust GPU services will be available for use in the term project if desired.
Policies
The University's course related policies can be found at http (Links to an external site.):// (Links to an external site.)www.ugst.umd.edu/courserelatedpolicies.html (Links to an external site.).
Accommodations
Students requiring accommodations for accessibility or disability should contact the University's Accessibility and Disability Service for evaluation, and must provide the instructor with sufficient advance notice to arrange for suitable accommodations.