In 2021, I decided to start a new bachelor's, this time in a more technical field like computer science. After viewing a couple options, I decided to go for the BSc in CS from the Goldsmiths, University of London. The course is given by the Coursera platform, from the classes in the video to the quizzes.

The beginning

Since I'm not from a country that speaks English fluently, I had to take a proficient exam. I used the duolingo english test and it was a horrible experience. I had to take the exam four times because I would be disqualified for several things. Others the software from Duolingo just stopped working to some of the most generic motives. I decided to take this exam because I could take it online and was convenient at the moment, but I would look for another option after the bad experience that I had if I needed to pass through.

For the application, the university demands several documents to start the application, like high school grades record, other titles like a first bachelor's degree, and so forth. I had to translate all of them with an official and licensed translator of English.

After the exam, I submitted my application for a bachelor. At the moment, the university provides a few specializations paths that will guide a few modules in the future to be more specific toward what you are looking for. The subjects are:

  • BSc Computer Science (Machine Learning and Artificial Intelligence)
  • BSc Computer Science (Data Science)
  • BSc Computer Science (Web and Mobile Development)
  • BSc Computer Science (Physical Computing and the Internet of Things)
  • BSc Computer Science (Games Development)
  • BSc Computer Science (Virtual Reality)
  • BSc Computer Science (User Experience)

You can see the details about each specialism here. I decided to go with Machine Learning and Artificial Intelligence. The system is divided into three levels:

  • Level 4: the basics and fundamentals of CS.
  • Level 5: Fundamentals mixed with specific modules from the specialism.
  • Level 6: Specific modules and a final project.

Most of this article is relative to Level 4 since I'm still in this phase. After the application for the bachelor's, I had to wait for the university to confirm that I am a student. It took a while, but I had time to respond to the questions that the staff had for the documents that I presented. In March, I received the confirmation and started my classes in April 2021.

Modules

After being accepted, I had to pick which modules to start. I decided to move with those ones:

  • Introduction to Programming I
  • Computational Mathematics
  • Fundamentals of Computer Science
  • Web Development

One thing that I learned is that Level 4, has two modules that need special attention: Discrete Mathematics and Computational Mathematics. Because only one of these two happens per semester, if you don't do it when it is available you will be stuck until you have the next semester available for this module. For example, semester 1 of 2021 was available for me to take the Computation Math, if I decided not to take this module, I couldn't do Discrete Math either because was available only in semester 2 for me. And, if I don't finish all the modules in Level 4, I can't advance to Level 5, and I will be "block" in this process.

After the application and picked my modules, I had to make the payment. The process was a nightmare since I live in a third-world country. I tried to use a credit card with a really high limit for my living situation to pay for the four modules. It worked, but not all the credit cards were accepted at the time so was a trial-and-error process. In the next semester, the university has included a new payment service that appears to be better and accepts more ways to handle payment.

About the grading process for the modules, it is presented the following processes:

  • Quizzes in Coursera: usually with 10 to 15 questions from the topics of the previous classes.
  • Projects, exercises, and peer-review assignments: submit a project, like a website or the resolution for a few exercises. Usually, those assignments are reviewed by other students on the platform.
  • Mid-terms: It depends on the type of module, but;
    • For more theoretical modules it demands a list of exercises and you have to fill in the responses, explain the details, math involved to get the response.
    • For more practical modules, usually just a new project, like submitting a game in Javascript.
  • Final exams:
    • The regular process is to do an exam in a credited center provided by the university.
    • But, this changed a bit because of COVID, since we couldn't get into the centers of examination because of the pandemic. So, the university decided to make a similar process as mid-terms, submitting a project or a paper that solves several exercises. I don't know what will happen in the next years, if it will be the regular or this new process. UoL changed the process a few weeks before the date of the exams.

My study process

A little analysis from the hours I've passed by each month:

Hours per month studying for the UoL subjects, using Toggl Track.
  • The first months (April and May), I was still trying to discover how should I study for each type of subject. Initially, the goal was to have two hours per working day for the college. But, I realized that I didn't need to spend all the time every week.
  • In June and July were the worst months because of the mid-term exams, so I decided to be prepared for and study a lot.
  • One thing that I realized is that after the mid-terms, things appear to be smoother. No big quizzes on the classes and most of the delivery for the final projects of the subjects have been done on the mid-term, so this is why the number of hours in August, September, and October are lower.

About the modules and my impressions:

  • The ones I liked the most were: Introduction to Programming I and Web Development.
    • Since I'm working with software engineering, it was way more pleasurable to solve those modules because they had practical applications and a lot of projects.
    • My secret here was to take the projects earliest possible, so I could spend enough time on each project and not cram everything into the deadlines. I used a lot VS Code to write the code for the projects and store everything in a private repo in Github.
  • The ones I disliked the most was: Computational Mathematics and Fundamentals of Computer Science.
    • More theoretical modules, with a lot of textbooks readings and exercises. Also, the classes didn't help because I was confused most of the time. After all, there were some key elements that the professors didn't approach in the video and you had to research for yourself.
    • Here, I decided to use Anki together with questions from the quizzes and textbooks from the modules. This process helped me a lot to be prepared later, especially for the midterms.

The worst part is that the university takes a lot of time to actually submit the grades. Most of the time you will do the final exam without receiving any feedback from the mid-term from the same module. Usually, I just go for the Slack channel for the UoL community to seek guidance and learning.

After doing all the classes and exams, you will be invited to submit the new modules that you want to apply for in the next semester.

Learning and tips

A few things that I've learned in the process and believe that, if you want to take this bachelor yourself, might be interesting for you too:

  • There are a few modules that overlap with one another, based on subject or even projects (you can apply a few things from one project to another). This happens even between semesters, from modules of a new semester compared to the subject from the last semester. So is a good idea to keep the notes from the classes that you might need it later on.
  • About the notes, decided to type them, instead of writing in a notebook. It was very common for me to search for something in the video that I was doing for the class in the 19th week from the 5th week, but I couldn't find the page on the several notebooks that I was using it. You might be different and more organized, but I find that searching for specific elements is easier on the computer. Also, I use Obsidian to take notes of the classes.
  • Is important to have a good time to deliver the mid-terms and the final test for the module. They demand a lot of writing and explanation. Only my paper from the mid-term of Fundamentals of Computer Mathematics took more the 25 pages. Obviously, this might change in the future for the final exams since this was a specific case due to the COVID pandemic and we couldn't go to the centers.
  • There are, usually, two types of subjects: one that is fairly theoretical and will demand a written test while a second case is focused on projects. See beforehand which module is which and how can you pick the correct ones for not having a heavy study. For me, I like to combine both: half theoretical modules and half projects, I prefer this type of balance over the semester.
  • The University provides a Slack channel for students to interact and help each other. I don't have a count on how many times that community helped me. So, every time you get stuck, go for the community and people usually are great for support there.
  • If you work full time as I did at the time, try not to make all the modules that you can. The max amount of modules that you can do per semester is 4, which doesn't seem like much, but the classes, projects, mid-terms, exams, textbooks, all that takes a lot of work. My suggestion is to take 2 to 3 modules at max, this might slow things down to complete the bachelor, but it will give you more time to work, have a personal life and not get too anxious in the exams.
  • The support from the university is quite slow, sometimes weeks or even months to respond and solve a problem. If you can send the question as soon as possible, that would save you a lot of anxiety. Especially for the Recognition and accreditation of prior learning for BSc Computer Science.
  • The mid-terms and final exams take a lot of time, so my suggestion is to start early as possible to finish the classes at a good pace. Then, you can prepare for the exams and save some headache.
  • The university provides a Recognition and accreditation of prior learning for BSc Computer Science. This is a process that you can do courses to validate your learning in specific modules. For example, I took the Google IT Support Professional Certificate and didn't have to make the module for How Computers Work. Helping me save £ 441.00 and a huge amount of time for this module.
  • Just to remember that this type of certification takes time. And it takes also time for the university to validate the certification. So study for the course and send it to UoL the certification, at least, one month before the closing dates for the registration of the new modules.

As soon as I advance the next modules, I will post here my perception of the bachelor and the classes itself.