└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # CS-Projects 2 | This repository will hold projects for Computer Science students, designed by me. 3 | 4 | ## Table Of Contents 5 | 1. [Operating Systems](#operating-systems-projects) 6 | * [OS Overhead: System Calls and Signals](#os-overhead--system-calls-and-signals) 7 | * [CPU Virtualization: User Level Threads and Scheduler](#cpu-virtualization-threads-and-scheduler) 8 | 2. [Distributed Computing Projects](#distributed-computing-projects) 9 | * [RPC: The Bulletin Board Web Service](#rpc--the-bulletin-board-web-service) 10 | * [REST: A Restful Web Service](#rest--a-restful-web-service) 11 | * [Map-Reduce: Processing Reddit Data](#map-reduce--word-counting) 12 | * [Networking: Object Store Service](#object-store) 13 | * [Spark: Processing Reddit and Netflix Data](#spark) 14 | 3. [Computer Security Projects](#computer-security-projects) 15 | * [Crypto: Cracking Simple Substitution Ciphers](#cracking-sub-cipher) 16 | * [Encryption: Encrypting Files with Java](#encrypt-files-java) 17 | 4. [Other Sources for CS Projects](#other-sources-for-cs-projects) 18 | * [GeeksForGeeks.org](#geeksforgeeks) 19 | * [Phrack.org](#phrack) 20 | 21 | 22 | 23 | ## Operating Systems Projects 24 | 25 | 26 | ### OS Overhead: System Calls and Signals 27 | In this assignment, students will explore the cost of context switching and OS invocation by timing System Calls and Signal Handling. 28 | 29 | Project Link: https://github.com/DaveedDomingo/OS-Invocation-Assignment 30 | 31 | 32 | ### CPU Virtualization: User Level Threads and Scheduler 33 | In this assignments students will explore CPU virutalization by implementing their own user-level threading library and scheduler. 34 | 35 | Project Link: https://github.com/DaveedDomingo/User-Level-Thread-Library-Project 36 | 37 | 38 | ## Distributed Computing Projects 39 | 40 | 41 | ### RPC: The Bulletin Board Web Service 42 | In this projects, students will explore Remote Procedure Calls using the modern framework of gRPC and Google Protocol Buffers. 43 | 44 | Project Link: https://github.com/DaveedDomingo/GRPC-Bulletin-Board-Project 45 | 46 | 47 | ### REST: A Foodie Web Service 48 | In this project, students will explore RESTful Design by implement a RESTful web service that also makes RESTful requests to external APIs. 49 | 50 | Project Link: https://github.com/DaveedDomingo/Foodie-Web-Service-Project 51 | 52 | 53 | ### Map-Reduce: Processing Reddit Data 54 | In this project, students will explore distributed computing programming by using the Map Reduce framework to perform data processing on real Reddit Data in a distributed manner. 55 | 56 | Project Link: https://github.com/DaveedDomingo/MapReduce-Reddit-Project 57 | 58 | 59 | ### Networking: Remote Object Store Service 60 | In this project, students will explore the complexities of building communication channels as well as remote services by implementing their own remote object storage service. 61 | 62 | Project Link: https://github.com/DaveedDomingo/Object-Store-Project 63 | 64 | 65 | ### Spark: Processing Reddit and Netflix Data 66 | In this project, students will explore distributed computing programming by using the Spark framework to perform data processing on real Reddit and Netflix Data in a distributed manner. 67 | 68 | Project Link: https://github.com/DaveedDomingo/Spark-Reddit-Netflix-Project 69 | 70 | 71 | ## Computer Security Projects 72 | 73 | 74 | ### Crypto: Cracking Simple Substitution Ciphers 75 | In this project, students will explore the complexity of simple substitution ciphers and try and come up with programs that can automatically break them using brute force/frequency analysis. 76 | 77 | Project Link: https://github.com/DaveedDomingo/Cracking-Simple-Ciphers-Project 78 | 79 | 80 | ### Encryption: Encrypting Files with Java 81 | In this assignment, students will explore how to encrypt and decrypt files in Java using public-key cryptography and symmetric key cryptography to carry out secure file sharing. 82 | 83 | Project Link: https://github.com/DaveedDomingo/Cryptr-Java-Encryption-Assignment 84 | 85 | 86 | ## Other Sources for CS Projects 87 | 88 | 89 | ### GeeksForGeeks.org 90 | GeeksForGeeks.org has a good collection of CS Projects covering various topics and programming languages. https://www.geeksforgeeks.org/computer-science-projects/ 91 | 92 | 93 | ### Phrack.org 94 | This hacker magazine could has articles that could inspire some neat computer security projects. 95 | http://www.phrack.org/ 96 | 97 | 98 | ## Ideas 99 | - Distributed Filesystems (https://dl.acm.org/citation.cfm?id=3287473) 100 | - Distributed Key Value Store (http://www.cs.utexas.edu/~vijay/cs380D-s18/project1.pdf) 101 | 102 | --------------------------------------------------------------------------------