Class timetable generation program in C#

As a “fun” project for school, I am attempting to create a timetable generation program which will automatically assign students and teachers to lessons and those lessons to one of 5 periods within a day, with a maximum value for how many periods can have a lesson assigned to them. It will then calculate the timetable for each person and assign them a timetable based off of the main lesson timetable. In my school, each class of students has two lessons for each subject with a different teacher, and there may be multiple sets of classes depending on the number of students.

The data is all housed in a School class, which does all the initial sorting after being constructed. The constructor takes an array of teachers, students, lessons offered by the school and a preferred class size (there will likely be more variables added as more constraints are added). The list of teachers is provided in a format where each teacher has a name and an array of subjects they can teach. The list of students is provided in a similar format, but instead of the array of subjects they can teach, they have an array of subjects they want to learn.

To sort the data initially after the School has been constructed, the subjects offered by the school are looped through and on each loop the teachers or students are looped through, checking whether they can teach/want to learn the said subject. If they can/do, they are added to the subject’s teacher/student lists, and for each teacher teaching the subject a new lesson is created for them to teach.

To log all this data, I loop through each subject and their teacher/student lists, printing each person to the console. I then loop through the lessons for each subject and print those too.

So, I have all the teachers and students sorted, now what do I do next? I know I need to somehow assign each student to a lesson with a teacher and make sure they don’t clash or anything, but I’m finding the whole task a little daunting and haven’t a clue how to tackle this next bit.

Thanks for any help or advice, you can rest assured you’ll have made this 16-year old’s headache a little more manageable.

My C# console project can be found at

How do I integrate “Timetable” with “Attendance” in a college ERP system

I am trying to build an ERP system for college management as my minor project. At the moment it’s going to be very simple having 3 modules only.

Notice – For any notice that any faculty can issue and students can view. Timetable – To view the timetable Marks – To view the marks Attendance – To view attendance.

I’m having some trouble thinking about how should I integrate the Timetable to work with the attendance module. Timetable in my college can change quite frequently, sometimes even within a week, under those conditions how should I connect things such that when a teacher logs in to update attendance for a given class on a given day (Eg: 1st May 2019). I know if the teacher had his/her subject class on that day or not.

I’m sorry if I’m not clear enough, I can elaborate more if you don’t understand anything. Any ideas are welcome, this is my first time working on a proper project.


Flixbus timetable

Is there any way to see the timetable for a Flixbus bus route?

On their website I can see the routes map, but I’d me more interested in seeing where the bus is going to stop for a given route.

E.g. if a bus goes from Rotterdam to Amsterdam, I’d like to see each stop.

University timetable optimisation – with a twist

I’ve made a website that helps students at my university optimise their student timetables. Currently, for subjects with not many classes – I can generate and optimise the timetables quite fast. However, some combinations of subjects can result in millions of permutations – which is infeasible with my current method.

Currently, I am taking the cartesian product of my ‘set pool’, i.e. generating every possible timetable, then sorting them by features such as clash count, total day spans, e.t.c.

This set pool is just a list of lists, I need to pick one class from each list, to make a valid timetable.

I would like to know how to approach this problem using a method that isn’t brute force.