Techniques pertaining to automating generation of curricula for a class of students with blended-learning contents are presented. The blended-leaning contents provide common topics shared by all the students in a class as well as self-learning materials for sub-groups of the class. This approach creates curricula optimally attending to students with different interests and backgrounds. The course materials are selected by searching multiple external sources publically available while filtering the search results through inputs of the students and requirements set by the instructors. The course contents and schedules of the curricula are further optimized by organizing the filtered search results with respect to a set of constraints.