CSC 299 Sophomore Lab in Applied Computing

Alexander Vasserman

Fall 2023-2024
Class number: 15861
Section number: 430
MW 1:30PM - 3:00PM
OLSYN CH000 Online Campus


Topic: Building a Search Engine

Meeting Info: Remote on Zoom. Join here. Zoom must already be installed.

Office Hours: Tuesdays 5pm-6:30pm on zoom, or by appointment.

In this course students will build a simplified search engine. While the course avoids some topics that require more background, it will cover and implement all major components of a search engine.

Students will also learn best practices and gain the experinece of building larger software projects. We will continue working in Python building on top of the tools and knowledge from CSC242 or CSC243.

NOTE: The schedule and procedures listed here are subject to change. Please follow announcements on D2L.


Search Engines - Information Retrieval in Practice, W.B. Croft, D. Metzler, T. Strohman, 2015


Class participation: 20%

This is a lab class, so your active participation is needed. The participation will include asking and answering questions in class and outside the class and at the office hours. I believe the ability to ask questions is an underapreciate skill that is critical for any software engineering professional, so I require each student to ask at least one question during or within 24 hours after each lecture. The are no stupid questions, but not all questions will get a response. Purely procedural questions (like "when is the homework due?") are encoraged, but will not be counted towards this requirement. The questions can be about any material covered in class, content of homework assignments, projects, or industry best practices related to any of these. The questions do not have to be very specific. For example, "Could you please explain X one more time?" is a perfectly good question for any subject X related to the class content. The questions can be submitted in Zoom chat during the lecture (please make sure that they are addressed to everyone), on the d2l discussion board, or emailed to me directly to (please include "CSC299 question submission" in the subject). Not all questions will be answered, but if you feel you need your question answered, please start you question with "IMPORTANT", or utilize raise hand feature in zoom.

Homeworks: 40%

Homework assignments will given most weeks prior to the final project part of the course. Assignments will be posted on the D2L course web site and will be due one week after the day they are posted, unless otherwise noted. Details of the submission process will be discussed in class; it is your responsibility to verify that your submitted files are readable and submitted in the correct locations. It is also your responsibility to keep track of the announcements regarding homework on D2L course website. Late assignments will be accepted up to three days late with a 20% late penalty. The assignments will not be accepted after the 3-day grace period. Late penalties will be assessed on the parts of the assignment that were submitted late (the exact definition of which parts as sufficiently different in the assignment is up to the descression of the instructor). Generally, submitting an update to a prior submission will not decrease your grade due to the late penalties, but, of course, changing the correct solution to an incorrect one would. If you are running out of time, submit what you have on time and resubmit once you are done. Any exceptions to these will require explicit permission from the instructor at least 24 hours prior to the due date.

This is a lab class, so you'll be expected to write a fair amount of code, a lot of it as part of the homework. Assignments might be hard, so make sure to start on them several days prior to the due date. Perfection is not expected in this class, so make as much progress as you can. You can consult with your homework partners (who must be students in our class), the instructor, or the CDM tutors on the programming assignments, but you may not under any circumstances submit code that you have not helped to write nor may you consult anyone beyond those specified when completing your assignments. Submissions must be individual, but must include names of people you have collaborated with.

Final project: 40%

Final project will be a group project building on top of the material covered in class. The specifics will be discussed later in the course, but it will require two submissions: 1. A project proposal submitted and presented during the class. 2. Code and a short write up due by the end of the finals week.


CSC242 or CSC243

Prior experience with Python is assumed. If you have not programmed in Python before, but have prior experience with another programming language, please contact me at and describe your prior expereince.

Approximate schedule (subject to change)

Week 1: Introduction

Week 2: Python review

Week 3: Naive search implementations and text processing

Week 4: Search architecture

Week 5: Indexing and TF-IDF ranking

Week 6: Search quality and performance measurements

Week 7+: Final Project and Advanced Topics


Student Participation Guidelines

Camera Use During Zoom Meetings

It’s much easier for us to feel connected as a class and build a sense of community if we can see and hear each other. While I don’t require students to have their cameras on at all times, having your camera on during class meetings is strongly encouraged. During our meetings, I’ll do my best to indicate if there are times when you don’t need to have your camera on. I’ll also provide a heads up if there will be times when it’s particularly important that all participants have their cameras and microphones on (during a small-group discussion activity, for instance). 

Camera-Related Concerns

Please review the tips below. If you’re still unsure about camera use or participation expectations in general after reviewing these guidelines, please contact me so we can identify potential solutions.

Workarounds and Accomodations

  1. Be proactive. If you won’t be able to use your camera or microphone during an upcoming meeting, please email me beforehand so I’m aware. This helps me know if participation levels might be lower than usual so I can plan accordingly.   

  2. Consider using a virtual background. If you have concerns about sharing your space, feel free to use a virtual background if your device supports this feature. When choosing a virtual background, please avoid images or videos that are overly distracting or inappropriate for a class setting.

  3. Add an image to your Zoom profile. For moments when you aren’t able to use your camera, it’s helpful if your classmates and I can see a visual representation of you instead of just your name. By adding a photo to your Zoom profile, we’ll be able to put a face with your name even if you need to turn your camera off temporarily. Ideally, your Zoom profile photo should be relatively professional (selfies are fine) and show your face clearly. If you have reservations about adding a photo to Zoom, let me know so that we can discuss your concerns and find a possible alternative. 

General Tips and Guidelines

  • Treat video conferences as you would a regular class session on campus. Be prepared to be attentive and engaged during meetings.

  • Be on time or notify your instructor if you will be late or unable to attend.

  • Minimize distractions, such as televisions and cell phones, when possible.

  • Don’t engage in other activities during sessions (driving, cooking, cleaning, etc.)

  • Try to put your device at eye level on a solid surface. Holding your device or placing it in your lap can add movement to your video, which can be distracting.

  • Mute your microphone when you’re not speaking to minimize background noise.

  • Use your given or preferred name as your display name. 

  • If you need live captioning in a Zoom meeting, select the CC Live Transcript button in the toolbar to send a request to your instructor.

  • Please note that sharing the meeting link, ID number, or password with anyone outside of the class is prohibited. Sharing meeting screenshots or recordings with anyone outside of the class is also prohibited. 

Code of Student Responsibility 

The Dean of Students Office is committed to partnership in the educational mission of DePaul University. This mission is enhanced by a Code of Student Responsibility, which includes policies that outline expectations and standards of behavior for the student community. Students should report any incidents of behavioral misconduct (including harassment) in video conference meetings to their instructor. Any incident of harassment and/or behavioral misconduct that impedes the teaching & learning environment may be referred to the Dean of Students Office for referral to the student conduct process. This includes sharing meeting links, passwords, screenshots, recordings, or other meeting information in a way that could facilitate harassment or misconduct by others. 

Technology Considerations

  • If you need assistance during a video call, contact DePaul’s Technology Support Center at 312.362.8765. 

  • If connectivity issues impact your audio/video quality, try turning off your camera.

  • If you're experiencing issues with Zoom, you can use a site like to check your internet connection speed. A good minimum upload/download speed for video conferencing is at least 1.5Mbps.

School policies:

Changes to Syllabus

This syllabus is subject to change as necessary during the quarter. If a change occurs, it will be thoroughly addressed during class, posted under Announcements in D2L and sent via email.

Online Course Evaluations

Evaluations are a way for students to provide valuable feedback regarding their instructor and the course. Detailed feedback will enable the instructor to continuously tailor teaching methods and course content to meet the learning goals of the course and the academic needs of the students. They are a requirement of the course and are key to continue to provide you with the highest quality of teaching. The evaluations are anonymous; the instructor and administration do not track who entered what responses. A program is used to check if the student completed the evaluations, but the evaluation is completely separate from the student’s identity. Since 100% participation is our goal, students are sent periodic reminders over three weeks. Students do not receive reminders once they complete the evaluation. Students complete the evaluation online in CampusConnect.

Academic Integrity and Plagiarism

This course will be subject to the university's academic integrity policy. More information can be found at If you have any questions be sure to consult with your professor.

All students are expected to abide by the University's Academic Integrity Policy which prohibits cheating and other misconduct in student coursework. Publicly sharing or posting online any prior or current materials from this course (including exam questions or answers), is considered to be providing unauthorized assistance prohibited by the policy. Both students who share/post and students who access or use such materials are considered to be cheating under the Policy and will be subject to sanctions for violations of Academic Integrity.

Academic Policies

All students are required to manage their class schedules each term in accordance with the deadlines for enrolling and withdrawing as indicated in the University Academic Calendar. Information on enrollment, withdrawal, grading and incompletes can be found at

Students with Disabilities

Students who feel they may need an accommodation based on the impact of a disability should contact the instructor privately to discuss their specific needs. All discussions will remain confidential.
To ensure that you receive the most appropriate accommodation based on your needs, contact the instructor as early as possible in the quarter (preferably within the first week of class), and make sure that you have contacted the Center for Students with Disabilities (CSD) at:
Lewis Center 1420, 25 East Jackson Blvd.
Phone number: (312)362-8002
Fax: (312)362-6544
TTY: (773)325.7296