Chartered Architectural Technologist | MCIAT, MSc. BIM, BSc. Arch. Tech.

Introduction to Computer Science – Week 0

Image Source - CS50 Class Notes Coding Basics

With the power of Autodesk Forge, Revit API, Dynamo, Python, Design Script and even more to push the design sector even further. This is a course to entice a frame of mind to adapt to a changing industry. In this series of blog posts, I will document my learning while keeping it as relevant to understanding Autodesk software and beyond…

Having spent the past 14 months in consultancy and the previous 12 years in technical & design roles across architecture, engineering & construction firms, I have realised that understanding the software that we use more and more is almost obligatory. With new technologies emerging on a daily if not hourly basis, in 5 years time who knows what the role of an architect or engineer will actually entail.

In my spare time I have set out to better understand the science behind the software we use daily, this is why I have embarked on a free online course from Harvard University – “Introduction to Computer Science” through Prior to going on a hiking holiday recently to Finland, I downloaded some of the course videos to pass away some of the long train & airport transit time.

Each lecture runs for 60 – 90minutes and includes videos, class notes and tutorials to get you learning the basics. Languages covered include C, C#, Python, Javascript, HTML, CSS & SQL. It is laid out in quite a practical and easy to understand way, with many analogies for non-programmers.

Starting with the Week 0 lecture, it covered the basics of how binary and computer languages operate. Abstraction was then explained as a problem-solving method to retrieve data, with the example of searching a phone book for a name. Starting with the first letter of the surname, and turning to that page initially, this in principle saves you having to look through every single page of a phonebook and phone number for the name you require. This is the principle of abstraction, as you have minimised your search size. In programming, targeting functions to search for data efficiently works similarly.

With abstraction in mind, functions were explained in a basic coding environment, including what indented lines mean (usually an answer to an if or else statement). And all of these ideas plus functions, conditions, boolean expressions, loops, and more work across several programming languages.

The first assignment is using “Scratch”, and Scratch is relevant because; much like Dynamo it is a visual programming tool, so a relevant learning point there already. Although a lot more basic, it uses similar principles by using “sprites” or objects (in Dynamo these are called nodes). Scratch allows you to run animated functions by connecting these sprites together to understand the terminology of function statements and the principles underlying them. It is a bit basic but the next lecture we move onto learning the programming language “C”.

Stay tuned for more…