SCC.111 Software Development Course Intro

Document Details

StrongestSalamander4051

Uploaded by StrongestSalamander4051

Lancaster University

Adrian Friday, Nigel Davies, Hansi Hettiarachchi, Saad Ezzini

Tags

software development programming computer science course intro

Summary

This document is an introduction to the SCC.111 Software Development course at Lancaster University. It covers the course structure, assessment details, and learning culture. The document also highlights the importance of programming and its role in various fields.

Full Transcript

SCC.111 Software Development Adrian Friday, Nigel Davies, Hansi Hettiarachchi, Saad Ezzini Pre-existing experience survey Why this course matters Software developmen...

SCC.111 Software Development Adrian Friday, Nigel Davies, Hansi Hettiarachchi, Saad Ezzini Pre-existing experience survey Why this course matters Software development is a core skill For many its essential to their future career and aspirations Getting good at developing software will also massively reduce your coursework pain (is core to most courses that follow) And it can be really fun, eventually… More than ‘just a programming course’ “This module aims to instil the knowledge, understanding and skills expected of a principled computer programmer. More specifically it aims to develop a coherent understanding of the principles and practice of imperative programming, the software development lifecycle and its associated tools and https://tinyurl.com/scc111spec techniques.” programming is the tool you use to realise your and other people’s dreams ! 4 programming... it’s like playing the guitar 5 programming is fiercely creative and collaborative – you are creating new things that didn’t previously exist! 6 Who is teaching you? How this Course is Taught There are two lectures per week (repeated once) You *must* attend your practical class each week You *may* attend other practicals if there is space and you need more help You *should* expect to work outside the labs and seek help using the moodle forum (please respect working hours) – the lab will not be enough for most tasks… 8 Course timetable (majors) 9 Course timetable (minors) 10 How this Course is Assessed There is an exam (70%) and coursework (30%) – the coursework helps you pass! Coursework consists of: on-line tests and programming activities (week 5, 10, 15, 20) a more open ended coding project (weeks 21-25) Exam is during the summer term and is worth a lot Coursework is submitted online and checked for plagiarism automatically. We catch multiple cases each year 11 Learning culture A mix of experience and ability in the class (from 0 to lots!) If you’ve little or no experience, that’s ok – try not to panic and don’t worry if others are ahead, that’s normal! If you’ve more/ lots, do the more advanced exercises, help others 1 2 A word on academic integrity The course is designed to help you learn It needs to be ‘your work’, not LLM/AI, not your friends’, not someone on the Internet, your family, your partner, or your hyperintelligent dog Working on non-group work or individual assessments as a group is malpractice By all means discuss, learn and study from each other, but no code or answers should be exchanged! All submitted code is checked for plagiarism! Integrity matters! 13 Learning through feedback and ‘good learning practice’ Formative lab exercises – show us your code in each weekly lab session for detailed feedback keep (paper) notes so you can reflect and improve week on week Summative Assessment (Quizzes, Project) Quiz marks back normally the following week (barring handling of extensions etc.) Project coursework due week 25, marks back within 4 weeks If you have extenuating circumstances, talk to the SCC Teaching Office (TO) We want to see what you can do Integrity (your work, no faking results) and aspire to do well (effort!): Keep up to date with the course (well, all courses ;)) Attend Get the textbook (second hand/ https://onesearch.lancaster- university.uk/) – going beyond will only benefit you Check understanding by asking us questions – there are no silly questions Start the coursework when it is set, not when it is due What is a program anyway? Consider this... STEP 1: Heat oven to 190C/fan 170C/gas 5. Butter two 20cm sandwich tins and line with non-stick baking paper. STEP 2: In a large bowl, beat 200g caster sugar, 200g softened butter, 4 beaten eggs, 200g self-raising flour, 1 tsp baking powder and 2 tbsp milk together until you have a smooth, soft batter. STEP 3: Divide the mixture between the tins, smooth the surface with a spatula or the back of a spoon. STEP 4: Bake for about 20 mins until golden and the cake springs back when pressed. Recipe courtesy: https://www.bbcgoodfood.com/recipes/classic-victoria-sandwich-recipe Let’s try something together… Just how many people actually came to this lecture ? How many people are at this lecture ? linear time complexity The Algorithm Set counter to zero While not at last seat, do… If someone in the seat, add one to counter Move onto next seat End 20 What features does our algorithm illustrate? BTW - that was nearly a program :) It was certainly an algorithm… Program A step in the process Decision flow A program… “A detailed plan or procedure for solving a problem with a computer” more specifically, “an unambiguous, ordered sequence of computational instructions necessary to achieve such a solution.” courtesy, Encylopedia Brittanica. Imperative programming… In computer science, imperative programming is a programming paradigm of software that uses statements that change a program's state (Wikipedia) So, a critical step is to think through what to represent (what) – a total, a brightness, a geo-location, a time, an audio sample, a command for a robot… As well as, how our program should manipulate this (how) We’re going to practice this *a lot* “C” This term we start with an imperative programming language called C. First created in 1970s to build UNIX. C is compact, low-level, and is used to generate fast, efficient code that exploits hardware features well. C is the ancestor, the parent, the inspiration – very much still with us! Windows 10 (2015) – 55 million lines of code (loc) Windows 11 60-100m estd Linux - ~15m Mac OS X ~85m The kernel is written in what language? C is a ‘compiled language’ In C we will use standard tools to form a “tool chain”, we use a text editor to write and edit the code a compiler which translates the code into something the computer can understand (only if the program syntax is correct!) a resulting executable we can run In C there is an explicit compilation phase where syntax is validated and low-level executable code is created iff syntax is correct Meeting our first C program #include $ gcc -o helloworld helloworld.c int main() { printf("Hello, world\n"); } The C Programming Language (2nd Edition) Brian W. Kernighan and Dennis Ritchie The definitive Language Reference Available online via the library collection, see course moodle page and, https://onesearch.lancaster-university.uk Summary You should know how the course is structured, how it is assessed and how you’ll get feedback You should really, really want to be a great programmer :) You should be really looking forward to your lab sessions and getting started with C! Next lecture: the key building blocks of C 3 3

Use Quizgecko on...
Browser
Browser