This course aims to understand information retrieval algorithms and identify challenging problems on the Web. It provides a functional view of information retrieval, types of information retrieval systems, design issues: keyword-based retrieval, file structures, and thesaurus construction. Information retrieval data structures and algorithms: lexical analysis, stemming, term weighting, associative indexing, Boolean operations, and string searching and matching techniques. Applications and case studies. It also aims to cover basic and advanced retrieval models, such as Document modeling and Inverted index construction and compression. Vector space model and ranking methods. Probabilistic and language models. Then, the course will look at the evaluation methods and the relevance feedback, and query expansion. The course also covers the Web Search fundamentals. Examples of topics include Web search engine architecture, Web crawling and indexing, and Web structure, and usage analytics.