class: center, middle ### COMP26020 Programming Languages and Paradigms -- Part 1/C *** # Logistics --- # Part 1/C Organisation **Blended approach**: live sessions + asynchronous videos & exercises
--- # Part 1/C Organisation 1. **Lecture materials**: - Live lecture every Thursday 11am-12pm, located in *Crawford House Lecture Theatre 1* - A set of videos to watch every week **after the lecture** -- 2. **Formative assessment** (not graded), every week: - A quiz (theory) - Autocorrected programming exercises (practice) -- 3. **Summative assessment** (marked): 1 lab exercise, to be done at home and/or during lab sessions -- 4. **Drop-in Lab (AKA support) sessions** - Optional, come if you have any questions about the course or want to work on exercises - Every other week starting week of 02/10, Monday 12pm-2pm; Tuesday 2pm-4pm; and Friday 12pm-2pm, in *Kilburn 1.8 + 1.10* --- # Course Website .large[On Blackboard: https://bit.ly/3RFI935] - **Everything regarding part 1/C can be accessed from there:** - Schedule (what to do each week) - Videos, including live sessions recordings - Lecture slides & lecture notes - Summative lab exercise brief - Formative autocorrected programming exercises - Formative quizzes - Discussion board - Reading list --- # Required Software All programming exercises should be done in a Linux π§x86-64 (i.e. Intel CPU) environment with GCC 9/10/11. Several solutions: - **Use the Department's machines** - **Run Linux in an x86-64 VM** - Grab a VirtualBox VM image here: https://bit.ly/3UGN45i -- - **Install Linux natively on your x86-64 machine** - If you know what you are doing - Ubuntu 20.04/22.04 recommended -- - **Do NOT use native Windows/Mac or WSL environments** - Won't provide support on these and you may loose marks because of toolchain difference -- - **Users of MacBooks with non Intel (i.e. M1) CPUs**: the general advice is to come on campus and use lab machines --- # Lecture Videos - Videos and slides available on Blackboard here: https://bit.ly/3RnA42M -- - When watching videos/attending lecture, **access the slides for code examples you can run in your browser**: - https://olivierpierre.github.io/comp26020-lectures/ - You will also find **lecture notes** there -- - Using the bottom-right links you can: - Download the file by clicking on its name - Get instructions on how to load and run it in a container that should run on Mac/Windows by clicking on the GitHub logo
```c #include
int main() { printf("hello, world!\n"); return 0; } ``` .codelink[
`00-logistics/sample-code.c`
] --- # Feedback on Lectures - Each slides deck ends with a link to a small optional feedback form - It's fully anonymous, feel free to use it to tell what you think about the lecture in question - Your feedback will help to make the course better!
--- # Lab Assignment (marked) - Subject is already on Blackboard: https://bit.ly/3RsQln8 - Development of a matrix processing library in C - Weight: 6.5% of the final COMP26020 mark - **50/50 coursework/exam weight split for the C part** --- # Autocorrected Programming Exercises (not marked) .center[https://olivierpierre.github.io/comp26020/] - A few exercises per week - Divided into **essential** and **additional** exercises - You should really try at least to do the essentials -- - Autocorrected with `check50` - To trigger autocorrection, have your source code in the local folder and type on the command line: ```bash check50 -l --ansi-log
``` - URL is per-exercise, given on the page of each exercise --- # Installing Check50 - To install check50 on a recent Ubuntu/Debian distribution, open a terminal and type: ```bash sudo apt update sudo apt install python3-pip git pip3 install check50 echo "export PATH=$PATH:$HOME/.local/bin" >> ~/.bashrc source ~/.bashrc ``` - On a Department's machine: ```bash pip3 install check50 echo "export PATH=$PATH:$HOME/.local/bin" >> ~/.bashrc source ~/.bashrc ``` --- # Quizzes - A small quiz to complete each week, after having seen all the lecture materials - On Blackboard: https://bit.ly/3EKYb3C - Formative (unmarked) --- background-image: url(include/plagiarism.png) --- # How to Get Help? - Any question? in increasing order or urgency: - Step 1: Come to the next lab session (check your timetable) - Step 2: Discussion boards on Blackboard - https://bit.ly/3LqL37w - **Do not post answers there!** - Step 3 or if urgent: [pierre.olivier@manchester.ac.uk](mailto:pierre.olivier@manchester.ac.uk)