- Designed solutions to problems, and express them using pseudo-code and algorithms. - Wrote useful code using Python and Java, two of the best programming languages to learn as they’re used throughout the industry to create various web and mobile applications. - Understood and applied computer science fundamentals, including data structures such as heaps, stacks and lists. - Other fundamentals covered include algorithms for sorting and hashing, and using Big O Notation to analyse the performance of an algorithm. - Used established algorithms to implement machine learning. - Used agile development for software development projects. - Designed, planned, built, tested, debugged, refactored, deployed and maintained a software system. - Used established design patterns and Git to ensure version control.