ICT - Advanced
MIT Computer and Data Science Courses
Below are free courses and learning resources from MIT OpenCourseWare (OCW) and MITx, created by faculty at the Massachusetts Institute of Technology.
A Gentle Introduction to Programming Using Python
This course will provide a gentle, yet intense, introduction to programming using Python for highly motivated students with little or no prior experience in programming. The course will focus on planning and organizing programs, as well as the grammar of the Python programming language.
Introduction to Computer Science and Programming
This subject is aimed at students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems. It also aims to help students, regardless of their major, to feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class uses the Python 3.5 programming language.
Introduction to Computational Thinking and Data Science
This course is a continuation of Introduction to Computer Science and Programming in Python and is intended for students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems and to help students, regardless of their major, feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class uses the Python 3.5 programming language.
Mathematics for Computer Science
This subject offers an interactive introduction to discrete mathematics oriented toward computer science and engineering.
https://ocw.mit.edu/courses/6-042j-mathematics-for-computer-science-spring-2015/
Software Engineering for Web Applications
This course is for those who already have some programming and software engineering experience. The goal is to give students some experience in dealing with those challenges that are unique to Internet applications, such as: concurrency; unpredictable load; security risks; opportunity for wide-area distributed computing; creating a reliable and stateful user experience on top of unreliable connections and stateless protocols; extreme requirements and absurd development schedules; requirements that change mid-way through a project, sometimes because of experience gained from testing with users; and user demands for a multi-modal interface.
https://ocw.mit.edu/courses/6-171-software-engineering-for-web-applications-fall-2003/
Free Tools for Computer Programming
MIT App Inventor
MIT App Inventor is an intuitive, visual programming environment that allows everyone – even children – to build fully functional apps for Android phones, iPhones, and Android/iOS tablets. Those new to MIT App Inventor can have a simple first app up and running in less than 30 minutes. And what’s more, our blocks-based tool facilitates the creation of complex, high-impact apps in significantly less time than traditional programming environments. The MIT App Inventor project seeks to democratize software development by empowering all people, especially young people, to move from technology consumption to technology creation.
Discover more courses in computer science and programming here!