Programming and Scheduling Techniques