The research outlined in this thesis deals primarily with the introductory computer science curriculum (i.e. the first two years). The topics and objectives are outlined first. This is the body of information that a finishing second year student should be expected to know. The results of the questionnaire given to computer science department members are discussed and then tools used for teaching computer science, both current and future, are describe.