M30299 Programming
Suggested extra programming exercises – Python
Some of you may have already studied programming and Python and may be familiar with many of
the concepts covered in this module. For this purpose, we have collected a series of activities to
further improve your programming skills and add some impressive examples to your CV/Portfolio.
Make sure to complete the weekly worksheets before attempting the exercises here – you must
still attend all classes and get feedback on your efforts on the worksheets in the practicals.
Feel free to skip this document if you are relatively new to programming.
Practice for (placement) job interviews
LeetCode
LeetCode is an online platform offering over 2950 real-world coding problems, covering a wide
range of topics such as data structures and algorithms. It provides a practical way to enhance your
coding and problem-solving skills, which are crucial for technical interviews. By practising on
LeetCode, you’ll gain experience with the types of challenges you may encounter during placement
interviews.
NeetCode
NeetCode is a similar online platform and provides more organised study plans and roadmaps,
which are curated lists of problems that are essential for coding interviews. You can write code
solutions in 14 different languages, including Python.
There are other platforms for you to compare your skills with people around the world:
● Codewars: You can learn by completing programming challenges known as kata. These
exercises train a range of skills in a variety of programming languages.
● CodinGame: Improve your coding skills by solving the World's most challenging problems,
learn new concepts, and get inspired by the best developers.
Git and GitHub
Learning Git and GitHub is an essential skill for all programmers. Git is a distributed version control
system that helps you manage and keep track of your code changes, making it easier to revert to
previous versions if needed. GitHub, a web-based hosting service built around Git, provides a
platform for you to host, share, and manage your code files on the Internet.
By learning these tools, you can manage your code changes, collaborate with others, gain
industry-standard skills, and build an impressive portfolio, especially for a placement.
GitHub Skills includes a range of tutorials teaching you how to create and use your GitHub account
or how to make your own portfolio webpage.
LinkedIn Learning
There’s no need to pay for online courses while you are a registered student. There are more than
14,000 courses available for free on LinkedIn Learning. Some courses will relate directly to your
course, while others can help improve your general skills or boost your employability. Use the
above link to learn more about this offer. The page also contains a login link, which takes you to
sign up for a LinkedIn account if you don’t have one already or connect to an existing one.
Introduction to Algorithms
A knowledge of algorithms is fundamental to programming. Understanding algorithms can help
you solve complex problems more easily and make your Python programs run more efficiently.
Below are two recommended resources. By exploring them and gaining a solid understanding of
algorithms, you’ll be able to enhance your problem-solving skills.
Project Euler
Project Euler is a platform that offers a series of challenging mathematical/computer programming
problems. It’s a great resource for students who want to delve into unfamiliar areas and learn new
concepts. The problems range in difficulty, allowing you to gradually work your way through them.
Use the link above to access the problems and to track your progress, it is necessary to register and
have an account with them.
Grokking Algorithms
Grokking Algorithms is a fully illustrated guide that teaches you how to apply common algorithms
to practical programming problems. It’s a friendly take on this core computer science topic, making
it easy to learn how to use the most important algorithms effectively in your own programs. It is
available as a book in the library.
Microsoft Learn
Microsoft Learn is a comprehensive online learning platform that offers free career paths for most
IT jobs. It provides detailed explanations of what each job entails and offers learning paths to help
you acquire the necessary skills and enhance your CV. To get started, open the link above, click on
“Career Paths”, and explore the listed careers.
Flask
Flask is a web framework written in Python. It's known for its simplicity and lightweight nature,
making it an excellent choice for beginners to understand the fundamentals of web development.
For those familiar with web development concepts, Flask is to Python what [Link] is to JavaScript.
With Flask, you can build a wide range of web applications, from simple portfolio sites to more
complex platforms with user authentication and database interactions.
The linked tutorial guides you through creating a blog application. You will learn how to set up a
project, handle user registration and logins, and allow users to create, edit, and delete their posts.
IBM: Python Basics for Data Science
This beginner-friendly Python course will quickly take you from zero to programming in Python in a
matter of hours and give you a taste of how to start working with data in Python.
Upon its completion, you'll be able to write your own Python scripts and perform basic hands-on
data analysis using our Jupyter-based lab environment. If you want to learn Python from scratch,
this course is for you.
You can start creating your own data science projects and collaborating with other data scientists
using IBM Watson Studio. When you sign up, you will receive free access to Watson Studio. Start
now and take advantage of this platform and learn the basics of programming, machine learning,
and data visualisation with this introductory course.
Build an image recognition AI using Python
This is a very difficult tutorial and advanced knowledge of Python is required. You also need to be able to
use Jupyter Notebook, Google Collab or similar environments.
In the rapidly evolving world of technology, Machine Learning (ML) and Artificial Intelligence (AI)
have emerged as a significant area of interest. By learning AI, you’ll be able to create systems that
can learn from data, identify patterns, and make decisions, which is a highly sought-after skill in
today’s job market.
PyTorch is a leading tool in this field and is being used by industry giants like Amazon, Tesla, Meta,
and Open AI. Mastering PyTorch can enhance your CV, demonstrating your ability to work with
advanced algorithms and cutting-edge technology. The tutorial linked above takes around 1 hour
to complete, and you will learn to train a small neural network to classify images.