The Student Room Group

A Level Computer Science

Hey I'm really interested in doing a degree in Computer Science. I currently take the following A-Levels: Computer Science, Maths and Physics and I'm slightly concerned about the programming project that makes up 20% of the CS grade. I'm currently in year 12 and I do OCR computer science and am very interested in coding etc. but I still want to improve my skills in coding as I don't think I have the skillset to be able to make a fully functioning program yet. Are there any books, websites etc. that could help? I also don't really understand what the programming project is meant to be? Do we decide what to make or is it like the GCSE's NEA where we were given a task?

(Also, currently, I code in Python)
Firstly, if you're going to be studying Computer Science at university, then everything you do at A-level will make your life easier when you get to university.

Programming is something that you can teach yourself in your own time at your own pace. Here's some good links for learning Python and general programming:

https://www.py4e.com/
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-0001-introduction-to-computer-science-and-programming-in-python-fall-2016/
http://greenteapress.com/wp/think-python-2e/
https://docs.python.org/3/tutorial/index.html
https://pythonforbiologists.com/29-common-beginner-errors-on-one-page/


Also remember that a programming language is just a tool. Learning the syntax and structure of a programming language is obviously important, but that alone isn't really enough to 'be a programmer' (certainly not enough at university level anyway). The real skill in programming is all about Computational thinking, and being able to use a language to get the computer to solve problems for you. There's only one way to pick up that skill, which is just to keep on practicing until everything starts to 'click'.

Here's some good links worth looking at where you can practice solving various programming challenges:
https://www.hackerrank.com/domains/python
https://leetcode.com/problemset/all/
https://projecteuler.net/archives


The 2nd year programming project at A-Level is a project that you get to decide upon yourself. Broadly speaking you need to find some kind of "real world" type problem to solve. Usually that means writing some kind of app or other bit of software . You can pretty much choose from anything and any kind of technology; it could be a Web app, mobile app, desktop app, text-based console app, or maybe even something running on a microcontroller like Arduino.

In terms of the kinds of apps that the exam boards expect to see, people usually go for something where they're able to replicate some kind of existing well-known app/website, write a game, or build some kind of software which ties into something related to their other courses or interest (e.g. a mathematical or physics simulation). For example:
- Some kind of "information management" app with a database - e.g. A web app for to manage employees/warehouse/products/sales/etc.
- A social media type app - e.g. user profiles, messaging, emails, media sharing, network communication
- A game (e.g. using PyGame in Python to create some kind of 2D game like space invaders, or a card game, etc).
- Any other kind of app based on something you might frequently use on your phone/laptop, or based on a web app you use frequently
(but also don't forget that the coursework also has a report element which is really important for getting the marks -- you need to define what your project is all about in quite a lot of detail, including its objectives, requirements, testing, design, etc.)


When it comes to writing a fully functional project, there are a lot of guides and tutorials you can follow - for example, using Python you can very quickly and easily get web app up and running through Visual Studio using the 'Flask' web framework following these 5 tutorials:
- https://docs.microsoft.com/en-us/visualstudio/python/learn-flask-visual-studio-step-01-project-solution?view=vs-2017
(Visual Studio 2017 Community Edition is free and includes full support for Python. Also the "Polls" template project is pretty good for seeing what kind of web apps you can build with Python )
- There's another good set of video tutorials for web apps in Python here too: https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world


That's not to say you need to build a web app - you could build a game in PyGame, or a UI app in TkInter. There are tonnes of frameworks and tools out there which will get you started, and lots of "getting started" type tutorials which will help you build some basic apps to get you going without needing to spend months learning all the heavy detail. You will however still need to spend a lot of time on Google and StackOverflow to get your head around the basics of these tools/frameworks though, and seeing what their capabilities are.


Also, one extremely important skill you NEED to learn as a programmer is how to use the debugger for the programming language and whichever IDE you've got for that language. e.g. debugging Python in Visual Studio:
https://docs.microsoft.com/en-us/visualstudio/python/tutorial-working-with-python-in-visual-studio-step-04-debugging?view=vs-2017
https://docs.microsoft.com/en-us/visualstudio/python/debugging-python-in-visual-studio?view=vs-2017
If you've never used a debugger and breakpoints before then it's worth 15-20 minutes of your time to learn about it.

If you use some other Python IDE like IDLE and PyCharm then you'll have the same debugging/breakpoints capability in those too.
Reply 2
Wow, thank you so much!!!! I will definitely look into these websites. This has actually made me excited to get back into coding again! :smile:
Original post by winterscoming
Firstly, if you're going to be studying Computer Science at university, then everything you do at A-level will make your life easier when you get to university.

Programming is something that you can teach yourself in your own time at your own pace. Here's some good links for learning Python and general programming:

https://www.py4e.com/
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-0001-introduction-to-computer-science-and-programming-in-python-fall-2016/
http://greenteapress.com/wp/think-python-2e/
https://docs.python.org/3/tutorial/index.html
https://pythonforbiologists.com/29-common-beginner-errors-on-one-page/


Also remember that a programming language is just a tool. Learning the syntax and structure of a programming language is obviously important, but that alone isn't really enough to 'be a programmer' (certainly not enough at university level anyway). The real skill in programming is all about Computational thinking, and being able to use a language to get the computer to solve problems for you. There's only one way to pick up that skill, which is just to keep on practicing until everything starts to 'click'.

Here's some good links worth looking at where you can practice solving various programming challenges:
https://www.hackerrank.com/domains/python
https://leetcode.com/problemset/all/
https://projecteuler.net/archives


The 2nd year programming project at A-Level is a project that you get to decide upon yourself. Broadly speaking you need to find some kind of "real world" type problem to solve. Usually that means writing some kind of app or other bit of software . You can pretty much choose from anything and any kind of technology; it could be a Web app, mobile app, desktop app, text-based console app, or maybe even something running on a microcontroller like Arduino.

In terms of the kinds of apps that the exam boards expect to see, people usually go for something where they're able to replicate some kind of existing well-known app/website, write a game, or build some kind of software which ties into something related to their other courses or interest (e.g. a mathematical or physics simulation). For example:
- Some kind of "information management" app with a database - e.g. A web app for to manage employees/warehouse/products/sales/etc.
- A social media type app - e.g. user profiles, messaging, emails, media sharing, network communication
- A game (e.g. using PyGame in Python to create some kind of 2D game like space invaders, or a card game, etc).
- Any other kind of app based on something you might frequently use on your phone/laptop, or based on a web app you use frequently
(but also don't forget that the coursework also has a report element which is really important for getting the marks -- you need to define what your project is all about in quite a lot of detail, including its objectives, requirements, testing, design, etc.)


When it comes to writing a fully functional project, there are a lot of guides and tutorials you can follow - for example, using Python you can very quickly and easily get web app up and running through Visual Studio using the 'Flask' web framework following these 5 tutorials:
- https://docs.microsoft.com/en-us/visualstudio/python/learn-flask-visual-studio-step-01-project-solution?view=vs-2017
(Visual Studio 2017 Community Edition is free and includes full support for Python. Also the "Polls" template project is pretty good for seeing what kind of web apps you can build with Python )
- There's another good set of video tutorials for web apps in Python here too: https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world


That's not to say you need to build a web app - you could build a game in PyGame, or a UI app in TkInter. There are tonnes of frameworks and tools out there which will get you started, and lots of "getting started" type tutorials which will help you build some basic apps to get you going without needing to spend months learning all the heavy detail. You will however still need to spend a lot of time on Google and StackOverflow to get your head around the basics of these tools/frameworks though, and seeing what their capabilities are.


Also, one extremely important skill you NEED to learn as a programmer is how to use the debugger for the programming language and whichever IDE you've got for that language. e.g. debugging Python in Visual Studio:
https://docs.microsoft.com/en-us/visualstudio/python/tutorial-working-with-python-in-visual-studio-step-04-debugging?view=vs-2017
https://docs.microsoft.com/en-us/visualstudio/python/debugging-python-in-visual-studio?view=vs-2017
If you've never used a debugger and breakpoints before then it's worth 15-20 minutes of your time to learn about it.

If you use some other Python IDE like IDLE and PyCharm then you'll have the same debugging/breakpoints capability in those too.
Reply 3
Original post by FastCar
Wow, thank you so much!!!! I will definitely look into these websites. This has actually made me excited to get back into coding again! :smile:


how did it go
Reply 4
Original post by salem2877
how did it go


Hey ahaha, I was very surprised to see an email about a reply to this thread in my emails since I'd completely forgotten about this site. I'm actually going into my final year of studying Computer Science at the University of Edinburgh so I'd say its going well? Are you thinking of doing CS too?

Quick Reply

Latest

Trending

Trending