Jack - A day in the life as a computer science student
As a commuting Computer Science student, I normally leave around an hour before my day’s lectures and practicals start and arrive at the Park and Ride car park before taking the bus to the College Lane campus 🚌
For my second-year timetable, practicals are allocated to Monday and Tuesday, whereas lectures are allocated to Thursday and Friday, with Wednesday being a study day for reading up on the lecture material. During my lectures, I will normally take notes on my laptop so I can read over them later on and in my practicals, I will either use my laptop or the desktops in the computer labs depending on what software we need for the practical.
After finishing the lecture/practical, I normally have lunch either in the Elehouse or the Forum Restaurant with my friends and discuss the day’s work. Finally, once I finish for the day, I return to the Park and Ride and go home where I can review my notes and reinforce what I learned during the day.
In the computer labs, the desktops have a range of useful software already installed including IDEs (Integrated Development Environments) such as BlueJ (for Java development), IDLE (for Python development) and other tools such as Logisim (for creating circuits using logic gates and visually how they work) and SQL Developer (for interacting with databases and executing SQL commands). Using these computers, I can complete all the practical work which is set by the lecturers so I can apply the theory from the lectures.
Currently, in my spare time, I am working on a dungeon crawler game made in Python using the Arcade library (which can be found at https://github.com/Aspect1103/Hades). This has needed various features to get it to work including map generation, player control, enemy AI, collectables and so on.
Recently, I just finished implementing some C++ extensions using the Python C-API to speed up the map generation granting me a five times speed increase and the breadth-first search vector field (which is used for navigating the enemies towards the player) granting me a seventeen times speed increase. My next steps are to further optimise the map generation and vector field and to rewrite the enemy AI making it faster and more intelligent. Creating this project has greatly improved both my project management and problem-solving skills which I can use in my modules this year to complete the tutorial exercises, coursework, and exams.