└── 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 |
--------------------------------------------------------------------------------