We may earn an affiliate commission when you visit our partners.
Course image
郭 炜, Jiaying Liu 刘家瑛, Ph.D., Ge Li 李戈, Ph.D., and Prof. Ming Zhang 张铭

作为“程序设计与算法”系列专项课程的结业实践项目,我们联合腾讯公司,为大家设计了一个实际应用问题——搜索引擎设计。这是互联网公司中极具代表的实际开发项目。如何高效地进行检索?如何有效地提升搜索的精度?… 将要求你解决一系列搜索引擎设计中面临的实际问题。通过这个项目实践,我们希望能够对你的实际编程能力进行衡量,也希望你能够充分展现自己所学到的知识和技能。我们将在项目展开的过程中提供腾讯资深工程师的专业解答,并从完成项目的学习者中选拔部分同学参与在腾讯公司的现场交流。完成本实践项目,表明你已经具备了在企业承担程序研发工作的能力。

第一期的结业实践项目初步定为2016年6月。

Enroll now

What's inside

Syllabus

欢迎进入程序开发项目
作业1:Read Token Stream
作业2:Storage Index
Read more
作业3:Write Inverted Index
作业4:Iterate and Score Documents on Posting List
作业5:Search Inverted Index
作业6:Composited Scores
作业7:Parse Query

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
深入了解搜索引擎设计,这是互联网公司中极具代表的实际开发项目。
由腾讯公司资深工程师提供专业解答,提升项目的学习质量。
提供腾讯公司现场交流的机会,有利于拓展人脉和学习前沿技术。
旨在培养实战编程能力,为企业研发岗位做好准备。
项目时间安排在2016年6月,可能与当前时间不符,需注意。

Save this course

Save 程序开发项目实践 to your list so you can find it easily later:
Save

Reviews summary

Challenging project-based course

This project-based course offers practical experience in designing a search engine, but it may not be suitable for beginners due to technical difficulties and lack of support.
Students may encounter common issues.
"so many problems during class(for example, can't open some pages) and no administrator to solve."
Students should expect technical difficulties.
"...有一定的技术难度。"
Students may experience a lack of support.
"No Assist, No maintaining"
"课程似乎停止维护了,作业包下载不了,测试平台也无法登陆。"

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in 程序开发项目实践 with these activities:
刷题练习 LeetCode
通过刷题练习 LeetCode,提升算法解决问题的能力,为搜索引擎设计中的算法实现打下基础。
Show steps
  • 选择与搜索引擎设计相关的 LeetCode 题目
  • 尝试独立解决题目,并查阅相关资料
  • 分析和理解题目中的算法思想
学习 Apache Lucene 教程
学习 Apache Lucene 教程,了解搜索引擎的实现技术,为后续的搜索引擎设计项目做好准备。
Show steps
  • 阅读 Apache Lucene 官方教程
  • 动手实践 Lucene 的 API 和功能
  • 探索 Lucene 的高级特性
Show all two activities

Career center

Learners who complete 程序开发项目实践 will develop knowledge and skills that may be useful to these careers:
Software Engineer
This course will equip you with essential programming skills and knowledge indispensable to become a proficient Software Engineer. The course's emphasis on practical application, like the design and implementation of a search engine, aligns well with the role's responsibilities, which often involve developing and maintaining software systems.
Data Engineer
The course's focus on search engine design provides you with a solid foundation in data storage, retrieval, and processing. These skills are highly sought after by Data Engineers responsible for designing, building, and maintaining data pipelines and systems to support data-driven decision-making.
Web Developer
This course gives you a practical understanding of search engine principles, which are crucial for Web Developers. You'll learn to design and implement efficient search functionality for websites, ensuring users can easily find the information they need.
Computational Scientist
The course's emphasis on efficient search algorithms and data structures is highly relevant to Computational Scientists who develop and apply computational methods to solve complex scientific problems. It provides you with skills to handle large datasets and design efficient algorithms for data analysis and visualization.
Quantitative Analyst
This course helps you develop a strong foundation in data analysis and problem-solving essential for Quantitative Analysts. You'll learn techniques for handling large datasets, efficiently retrieving and processing information, and developing statistical models.
Business Analyst
By taking this course, you'll gain insights into search engine design and data analysis principles. This knowledge can be valuable for Business Analysts who need to understand user behavior, identify customer pain points, and make data-driven recommendations to improve business outcomes.
Product Manager
The course's focus on developing user-centric solutions through search engine design principles can be beneficial for Product Managers. It provides you with a framework to understand user needs, gather requirements, and design products that meet those needs.
Data Analyst
This course introduces you to core concepts of data storage and retrieval through the lens of search engine design. This knowledge can be valuable for Data Analysts responsible for collecting, processing, and analyzing large datasets to extract meaningful insights.
Marketing Analyst
Search engine optimization (SEO) is a crucial aspect of modern marketing. This course provides you with a foundation in SEO principles and techniques to improve the visibility and ranking of websites. This knowledge can be valuable for Marketing Analysts who need to drive traffic and increase brand awareness.
Database Administrator
The course's emphasis on data storage and retrieval aligns with the responsibilities of Database Administrators. You'll learn techniques for efficient data management, indexing, and query optimization, essential skills for maintaining and optimizing database systems.
Information Architect
This course may be useful for Information Architects who design and organize information systems for optimal usability and accessibility. It provides insights into the principles of information retrieval and search engine design, which can contribute to the effectiveness of information architecture.
Technical Writer
The course may be helpful for Technical Writers who need to write clear and concise documentation for technical products and systems, including software and data analysis tools. It enhances your ability to understand the underlying concepts and effectively communicate them to non-technical audiences.
Instructional Designer
This course could be beneficial for Instructional Designers who create and develop educational materials and resources. It provides you with a framework to structure and organize information, design effective user experiences, and incorporate search functionality to enhance learning.
Systems Analyst
The course may be useful for Systems Analysts who analyze and design computer systems and applications. It provides insights into the principles of software engineering and data management, which can contribute to the development of efficient and effective systems.
User Experience Designer
This course could be beneficial for User Experience Designers who focus on creating user-centered designs for websites, applications, and other digital products. It provides a foundation in information retrieval and search engine optimization, enabling you to design intuitive and seamless user experiences.

Reading list

We've selected 14 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in 程序开发项目实践.
深入探討 Lucene 搜尋引擎架構的基礎知識,以及如何使用 Java API 建立和調整自己的搜尋引擎。
全面系统地介绍机器学习的基本原理、算法和应用,有助于理解搜索引擎中机器学习技术的使用。
探討大規模資料處理架構和技術的設計原則,有助於理解搜尋引擎後端的資料儲存和處理機制。
本书**从计算机的基本原理出发**,全面阐述了计算机系统的体系结构、组成原理和基本工作原理,有助于读者深入理解计算机系统的实现和设计技术。
本书全面介绍了常用的数据结构和算法,并提供了大量的例题和习题。
本书**全面介绍了 Java 语言的特性和用法**,并提供了大量的例题和习题。
本书深入阐述了计算机网络的基本概念、体系结构、协议、算法和实现技术,并结合了大量的实例和习题。

Share

Help others find this course page by sharing it with your friends and followers:
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser