Scheduling problems are problems in which jobs are assigned to machines at particular times. A common objective of scheduling is to schedule as many jobs before their deadline as possible, called Throughput Maximization. In this thesis, we provide algorithms for various...