INF1-IP: Informatics 1 - Introduction to Programming
Welcome to Introduction to Programming!
What is this course about?
This course focusses on developing programming and software engineering skills for students coming in to university without extensive experience in these (see below for more details). We will be learning to code in Python, but focussing on programming and SE skills that apply for any language.
Why? Because this is a really important part of what you need to do to be a good coder. Professional coding is very rarely about hacking code in isolation: it's about being able to plan your approach based on sound coding principles, work well with your team, properly document what you are doing, and explain your approach to coders and non-coders alike.
Learning outcomes
On successful completion of this course, you should be able to:
- identify the syntactic concepts in a program and explain their purpose / role;
- write simple programs according to good Software Engineering (SE) principles, such as readability and reusability;
- test and debug a program;
- evaluate a program against good SE principles, such as efficiency and quality;
- recognise the role and limitations of tools of practice and AI tools.
Should I take this course?
This course is compulsory for Informatics students unless they are allowed to opt out. You can opt out automatically by having an A in Advanced Higher Computing Science or an A/A* in A-level Computer Science. If you think you have coding skills to a similar level, either by studying in a different school system or by doing extensive coding outside school, you can take the Diagnostic Quiz through the Computer Programming Diagnostics course in Learn. If you pass this before week 2 of semester 1, you can ask your student advisor to un-enrol you from the course.
Note that there are some exceptions to this for CS&Maths students. We will contact you directly if this applies to you. There are a small number of other students for whom this course is currently open; please discuss this with your student advisor.
Programming and AI
Generative AI is easily able to generate the code discussed in this course. So why are we making you learn it for yourself? Even if after this course you only ever code by working with GenAI, in order to do this effectively, you will still need a deep understanding of code and how it works, and the only way to build this is to do the coding yourself. In addition, we will discuss some fundamental computing concepts underlying the reasons why programming languages are the way they are, which will form the foundation of the other courses you will take in Informatics.
During this course, we will look at what working with GenAI looks like and what its role in coding is, and you will be allowed to use AI to help with aspects of the coursework - but the course is primarily about you developing your own skills, without the use of AI, so that you can build the skills and knowledge that will need yourself to be an effective Informatics student.
Assessment
This course is 100% coursework and is assessed through class tests and assignments, divided into 3 parts. It is a mastery learning course, which means you have to have mastered the concepts of one part of the course before you can progress to the next part.
We do this because programming is cumulative: you need to have a solid understanding of more basic principles before you can build more advanced principles on top of these. Students learn at different rates, and sometimes students miss parts of the course because of other things going on in their lives - so at every assessment point, some will have developed a thorough understanding of what has been taught, and others will still be developing that. Those that show they have mastered the concepts continue to the next stage; those that haven’t continue to work on the current stage until they have a good understanding of it.
For more information on how this works, see the Assessment tab.
How to get help and support in the course
My (Fiona's) office hour will be in AT6:06 - I'll create a poll at the beginning of the course to find the most popular time slot.
The most important thing is to join EdStem - that's where you can ask any question about the course and get feedback from teaching staff and your fellow students. We release a lot of helpful information about the course and assessment on here, so make sure to join.
The best way to stay up-to-date with the material is to come along to live lectures or watch them online, and attend your weekly tutorial, where your tutors will help you with your tutorial sheets and assignments.
Finally, we provide drop-in support via InfPALS, where you can get help with any aspect of the course.