Skip to content

Students will implement a simple database-like system from scratch, exploring the implementation of concepts and data structures discussed in lectures and readings. Each assignment builds upon the previous one, culminating in a comprehensive understanding and a functioning system by the end of the course.

Notifications You must be signed in to change notification settings

VivekMalipatel/Advanced-Database-Organisation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Advanced-Database-Organisation

Programming Assignments for CS525

Organization

This repository contains the programming assignments for CS525. Students will implement a simple database-like system from scratch, exploring the implementation of concepts and data structures discussed in lectures and readings.

Each assignment builds upon the previous one, culminating in a comprehensive understanding and a functioning system by the end of the course. The assignments must be implemented using C.

Assignments Overview

  • Assignment 1 - Storage Manager: Create a storage manager for reading/writing blocks to/from a file on disk.
  • Assignment 2 - Buffer Manager: Develop a buffer manager to handle blocks in memory, including block replacement strategies.
  • Assignment 3 - Record Manager: Implement a record manager for navigating, inserting, and deleting records.
  • Assignment 4 - B+-Tree Index: Implement a disk-based B+-tree index structure.

Optional Assignments

Students may choose to undertake an optional assignment for extra credit. These assignments are designed to expand upon the skills and systems developed in the core assignments.

Server Account

All students will be provided with an account on fourier.cs.iit.edu for testing their code. The TAs will use this environment to evaluate submissions.

Docker Image

A docker image is available for creating a consistent testing environment. More details can be found here: cs525-docker.

Source Code Management

Students will work in groups of three. Each group will receive a private repository named cs525-s23-group on GitHub for collaboration and submission. Code must be submitted by midnight on the due date.

Grading

Assignments will be graded based on:

  • Functionality: Completion of all specified tasks.
  • Documentation: Clear and comprehensive documentation.
  • Code Organization: Logical structuring of code.
  • Innovation: Use of novel ideas and techniques.

Plagiarism will not be tolerated and will result in severe consequences.

Late Policy

  • 1-3 days late: 10% deduction
  • 4-7 days late: 20% deduction
  • More than 7 days late: No credit

Optional Assignment Ideas

Suggestions for optional assignments include, but are not limited to, implementing standard operator algorithms like:

  • Nested loop join
  • Merge join
  • Sorting aggregate
  • Hash aggregate
  • Union

Recommended Tools and Resources

Students should familiarize themselves with the following:

  • *nix operating systems and C standard library
  • System calls for file management
  • Debugging tools like gdb, LLDB, and valgrind
  • Docker for virtualized testing environments

The docker image for testing can be found at cs525-docker.

Resources

A resources page will be provided with links to relevant documentation and tutorials.

About

Students will implement a simple database-like system from scratch, exploring the implementation of concepts and data structures discussed in lectures and readings. Each assignment builds upon the previous one, culminating in a comprehensive understanding and a functioning system by the end of the course.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published