Throughout my module, there’s been many valuable and insightful skills that I’ve learned and internalised - not just in terms of computational thinking. After all, many more topics have been considered, from HTML/CSS to providing a background to programming. Each one is worthy of its own discussion, and has contributed something unique to the learning.
Of course, coding and engagement with computational ideas is going to be at the core of the rest of my module, so learning how to engage with these things is going to be just as important as the actual engagement with the subject itself, owing to the wide range of languages and ideas that are going to be looked at. Consequently, engaging with computational thinking in general was incredibly important in terms of the rest of my learning outcomes.
My first opportunity to put this into practice was in exploring HTML and CSS. I’d never made a website before, or even engaged much with coding, and it showed. On the first website I made for example, I had no idea how to work CSS, had hot-linked every image, used no semantic HTML and I’d spent most of my time simply trying to get it to work – it was a mess. An important mess, too, as learning how to engage with these new concepts would be indicative of my engagement with later languages like Python. To this end, learning about specific web and research tools – like MDN and Stack Overflow – has made independent learning in this regard much easier, and will no doubt be relied upon when I approach future problems.
Outside of the obvious utility in using HTML/CSS to create websites, the most impactful aspect of this topic personally, similar to that of computational thinking, was training myself mentally to engage with a separate English language that has its own set of rules and customs. This was really crucial to the engagement with the introduction of programming later introduced in the module.
Another topic, data representation and number systems, followed on in the trend of the previous two topics by having much of their utility deriving from their relevance as a foundation for future learning. Here, I learned the way a computer interprets data internally, specifically in relation to numbers, which helped explain certain behaviours and errors that a computer might run in to.
While the first half of the module taught me how to approach computational ideas, the latter half gave me much more hands-on experience that directly translated to other modules in my course – specifically in CMT120. After already having looked at things such as iteration and branching generally it became much easier to apply these concepts to direct languages like Python and JavaScript. Rather than starting from scratch, I had the background required to focus instead on the correct way of phrasing these concepts within the language. Loops in particular had been looked at plenty within Computational Thinking, and have been used constantly within JavaScript and Python tasks to varying degrees.