Call for Graduation Projects

The prospective team may propose an idea within the following fields. The proposal may be accepted if it meets certain standards. In particular, the proposed idea must be challenging, and the challenging aspects must include thought and/or theory (that is, the challenging aspect may not be solely the difficulty of "programming"). Prospective teams who choose instead one of the proposed ideas below will be subjected to a programming task which they must accomplish within a given time period in order to be accepted. All teams members are expected to contribute significantly to the project, and those members who are identified as "free-riders", i.e., not contributing anything to the project, will receive a grade of zero in their evaluation.

Accepted fields:

  1. Cryptography
    Recommended reading:
    1. Coursera cryptography course, taught by Jonathan Katz, one the authors of "Introduction to Modern Cryptography", the textbook used for Selected Topics-3 (Cryptography) in our department.
    2. O. Goldreich, Cryptography and Cryptographic Protocols. [PDF]
    3. Jonathan Katz and Yehuda Lindell, Introduction to Modern Cryptography, Second Edition, (Chapman & Hall/CRC Cryptography and Network Security Series). [Errata]
    4. CS495 course
  2. Privacy
    Recommended reading:
    1. C. Dwork and A. Roth, The algorithmic foundation of Differential Privacy, 2014. [PDF, DOI: 10.1561/0400000042]
  3. Social Networks
  4. Peer-to-peer systems
  5. High Performance Computing
  6. Distributed Systems
  7. Operating Systems (in particular, related to the development of ArabOS)

Suggested Projects:

# Title Difficulty Recommended group size* Summary
1 File system for ArabOS Medium 5-6 The goal is to implement a basic file system for the kernel of ArabOS. The project will include finding a suitably simple/minimalistic file system or subset of a known file system to implement. The implementation will include code in C++ (for the file system logic and thread-safety) and in x86 assembly (for the low-level hardware interfacing).
2 Timetabling for FCIH lectures and examinations Low 5-6 The goal is to implement a timetabling application that will generate the timetables for lectures and exams according to the students' registered courses, available classrooms, and availability of professors. Sections will also be taken into account. Generated timetables will not contain conflicts and will be optimized against some optimization criteria. The program will use an external SAT solver for graph coloring and GLPK for linear programming; since implementing those is beyond the scope of this project. The project will be implemented in C++ using GCC on Linux.
3 Delegating Computation using Fully Homomorphic Encryption (FHE) High 5-6 Cloud security is a common concern in many markets today, including the Egyptian Ministry of Communication. Many users today worry for their data and/or trade-secret algorithms that they are not willing to submit them to the cloud for execution even if they need to. The aim of this project is to allow a user to send his program to the cloud for execution, while preserving the secrecy of both, his data, and his algorithm. The approach to this problem will employ Fully Homomorphic Encryption (see the list of references below) to implement an LLVM virtual machine, that will be able to execute any application, given it was compiled to LLVM, and then encrypted using an FHE scheme.
Warning: needs math.

Notes and Footnotes:

* Group sizes eventually abide by the regulations decided by the department. The team is responsible of verifying whether their chosen group size and/or composition (cross-department, etc.) is allowed by the most recent regulations. Group sizes indicated here are obligatory, but may be negotiable for special cases or very talented students.

There is a maximum of 3 teams per staff member. Any idea will only be pursued by a single team: if the idea is already taken by another team, your team will have to choose another idea. Allocation is first-come-first-served.

References for Project #3:

  1. Accelerating Fully Homomorphic Encryption on GPUs
  2. Attribute-based Encryption for Fine-Grained Access Control of Encrypted Data
  3. Fully Homomorphic Encryption without Bootstrapping (BGV)
  4. Implementing Gentry's Fully-Homomorphic Encryption Scheme
  5. Improved Delegation of Computation Using Fully Homomorphic Encryption