A web server computer including a processor and memory, the memory containing computer executable instructions, which when executed by the processor cause the processor to generate web page data and to communicate the web page data across a data communication network to end user computing devices, the web server being communicatively connected to a database, wherein the web page data generated by the processor defines at least a first web page for online learning, the first web page comprising a plurality of topics associated with an online course, each topic including a plurality of challenges and one milestone, each challenge comprising a first series of questions related to the online course, the milestone comprising a second series of questions related to the online course, wherein the milestone is not available to the student until a test score on each of challenges is above a first predetermined percentage.