This course explores fundamental concepts in computer science, including programming, algorithms, data structures, and software development. We work with multiple programming languages and learn how to approach complex problems systematically. The class emphasizes both theoretical understanding and practical application through hands-on projects.
Misinformation spreads fastest when people are actively reading — on social media, news sites, or anywhere on the web. Existing fact-checking tools require users to copy text, open a new tab, and search separately, which completely breaks reading flow. By the time someone finishes that process, they have often already moved on, carrying inaccurate information with them. Our team identified a clear gap: there was no tool that could fact-check claims in context, right on the page where the user encountered them, without interrupting their experience.
InfoGuard is designed for anyone who reads and critically evaluates content online — students conducting research, journalists verifying sources, educators fact-checking materials, and general readers who want to know whether what they are reading is supported by academic evidence. The primary target audience is students and researchers who regularly encounter claims on the web and need a fast, reliable way to evaluate their credibility against peer-reviewed literature.
InfoGuard is a Chrome extension that fact-checks any selected text on any webpage against academic literature in real time. The user highlights a sentence or paragraph, opens the extension popup, and clicks Verify. The selected text is sent to a Flask backend, which runs it through a three-step pipeline:
The result streams back to the popup via Socket.IO, and the original text on the page is highlighted in a color that reflects the verdict's confidence level, making the fact-check immediately visible without ever leaving the page.
The MVP focused on the core verify loop: a user selects text, clicks Verify, and receives a verdict. To achieve this, the MVP included a working Chrome extension popup with a Verify button, a Flask backend capable of receiving the selected text, keyword extraction via NLTK, a single call to the Semantic Scholar API to retrieve relevant abstracts, and an LLM inference call to Groq returning a plain-text verdict. Page highlighting and streaming via Socket.IO were added once the core pipeline was confirmed to work end-to-end.
Research: The team began by surveying existing fact-checking tools and their limitations, noting that none operated in-context on arbitrary webpages. We researched the Semantic Scholar API for academic paper retrieval and evaluated several LLM providers before selecting Groq for its low-latency inference, which was essential for a real-time browser tool.
Design: We designed the system as a three-layer pipeline, which includes the browser extension, backend server, and AI inference, so each layer could be developed and tested independently. Early mockups of the popup UI prioritized simplicity. The color-coding system for page highlights was designed to give users an at-a-glance verdict without requiring them to re-open the popup.
Implementation: The Chrome extension was built using Manifest V3, with a content script to read selected text and inject highlights, and a popup for user interaction. Flask handled routing, Socket.IO managed real-time streaming of results, and the NLTK pipeline was tuned to extract keywords without over-stripping meaningful technical terms. Prompt engineering for the Llama model was iteratively refined to produce consistent, structured verdicts.
Testing: We tested the pipeline on a range of claim types, including scientific facts, statistics, and contested claims, verifying that the LLM verdicts were consistent and that Semantic Scholar results were relevant. Edge cases like very short selections, highly technical jargon, and claims with no matching literature were handled by routing to an Inconclusive verdict rather than producing a potentially misleading result.
If the PDF does not load, click here to open it.
This project is a simple NES side-scrolling shooter game written in 6502 assembly and built with the ca65/ld65 toolchain. The player controls a spaceship that can move in four directions and shoot bullets while the screen scrolls horizontally. Enemies spawn periodically from the right side of the screen and move left toward the player. The game includes collision detection between bullets and enemies, as well as between enemies and the player. The player starts with three lives, gains temporary invulnerability after being hit, and the game ends when all lives are lost. Core NES features such as sprites, palettes, controller input, scrolling, and NMI-based frame updates are implemented.
View PDF