Programming and scheduling techniques