2

I thought about my failure in the course a thousand times and could not think of any solution that could have helped me to pass the course successfully.

Introduction
In 2017, I was studying a graduate course named "Computer Architecture" (syllabus; overview; sample questions). The prescribed book had 684 pages. The course was divided into lectures and Lab sessions.

Each week, students had to go to labs and had to solve the assigned problems in MIPS and x86 assembly languages. The points were assigned on the basis of the number of problems they could solve in 4 hours out of the given five problems.

The challenges
The first challenge for me was to find appropriate learning materials for learning MIPS and x86 assembly languages.

I learned the MIPS assembly language from this youtube channel (this tutorial was amazing).

For x86, I don't remember which material I used. However, I remember that the challenge was to find a debugger with GUI as GDB was a total inconvenience. It took me almost a week to find SASM debugger GUI.

The final and most damaging hurdle was to find concise reading material, and ultimately I failed to find any. For me, reading a 684-pages book was out of the question. I simply had no time as other courses had a similar amount of loads.

How I failed
I learned the two programming languages very keenly. Solved all of the Laboratory problems, and completed the projects very well. However, I miserably failed the written examination.

The final project was a hard problem (image recognition via MIPS and x86), and it took a lot of time for me to solve the project. I think, other students just solved the problem by seeking help from their elders and friends who passed the course already. And, most of them actually failed to solve the project. Some of them scored partially.

I found out that -

  1. some other students were solving lab problems by uploading the solutions to the server the previous night. I.e they were cheating all the way. As a result, they saved a lot of time and utilized that time to study for the written examination.
  2. some other students had been maintaining a database of old questions in a shared online repository. They only solved the older questions and successfully passed the written exam.

Did I talk to the instructor about my problem?
Yes, several times. However, his directions were limited to prescribing a book and referring to some URL links. He even failed to prescribe a proper debugger tool for x86 except for GDB.

Besides, the supplied sample questions were totally different and mostly unrelated to the questions that came in the examination.

My personal opinion
In my personal opinion and tell me if I am wrong:

  1. if there was not any custom reading material supplied, the course syllabus was too broad for a 4-months semester and MIPS and x86 should have been mutually exclusive;
  2. the instructor should have provided a concise reading material instead of an entire 684 pages book if he really wanted to teach both MIPS and x86;
  3. supplied sample questions were absolutely misleading, those shouldn't have been supplied;
  4. the instructor should have kept a tutorial session for GBD and debugging.

In my opinion, the instructor was indirectly encouraging cheating by throwing a gigantic and unachievable load. Guessing and learning cannot take place at the same time.

The question
What was the appropriate way for me to successfully pass the course?

13
  • 1
    I cannot understand the cheating issue. Did you discuss this with your instructor? Surely they can check server logs to verify the cheating and do something about it, and if they don’t, you would have a legitimate grievance to pursue? In any case, don’t the students still have to spend the same amount of time on each problem, unless they are also sharing solutions with each other (another kind of cheating)? Commented Mar 26, 2022 at 11:06
  • @BrianDrake, Did you discuss this with your instructor? --- No. Coz, I discovered that later. ...if they don’t, you would have a legitimate grievance to pursue? --- I am not interested in pursuing a grievance. I am here to understand (1) my own fault, (2) the instructor's failure. ... unless they are also sharing solutions with each other? --- they were working as groups. They made sure that source codes look different. Some of them were attending the course for the second time.
    – user366312
    Commented Mar 26, 2022 at 11:20
  • 2
    “I am not interested in pursuing a grievance. I am here to understand … the instructor's failure.” This seems like a contradiction to me. Also, the answer authors have been critical of your attitude, and I can’t fault them for that – this also suggests you are pursuing a grievance. Commented Mar 26, 2022 at 11:33
  • @BrianDrake, ...you are pursuing a grievance --- I am not. I doubt (correct me if I am wrong) that (1) the course syllabus is too broad for a 4-months semester as in my personal opinion MIPS and x86 should have been mutually exclusive; (2) the instructor should have provided a concise reading material instead of an entire 684 pages' book; (3) supplied sample questions were absolutely misleading, those shouldn't have been supplied; (4) he should have kept a tutorial session for GBD and debugging. Instructor was indirectly encouraging cheating by throwing a gigantic and unachievable load.
    – user366312
    Commented Mar 26, 2022 at 11:46
  • 2
    Patterson and Hennessy is a very well-respected computer architecture text. The MIPS and x86 architectures are real-world examples of two very different ways to design computer architectures. Learning them, and their respective assembler languages, should have prepared you for any number of "compare and contrast" types of questions.
    – Bob Brown
    Commented Mar 26, 2022 at 21:02

6 Answers 6

1
+200

In order to understand why you failed the course you have to understand what exactly the requirments for passing the course are. Partially solving the lab problem and doing better on the written exam is good enough for passing.

Is a written exam representative of how things work in a real work enviornment? I'd say no. Most of the written exams I had in university are more of academic value and find little application in a office or programming job.

Is a lab problem that you have to solve at home more representative of how things are in a real work environment? I'd say yes. Doing the actual prgramming is of more use in your future job than actually just knowing the theory behind it.

Courses in university tend to lean more towards the academic and therin lies your problem. Your approach of trying to understand and try to apply said understanding on a problem is very commendable. But it was not what is necessary to pass the course...

4
  • Yes, I agree. I thought learning how to program will automatically make me pass the written examination. Later, it was proven an incorrect idea.
    – user366312
    Commented Apr 11, 2022 at 9:03
  • 1
    "Most of the written exams I had in university are more of academic value and find little application in a office or programming job." General true, and luckily so: university courses should teach you how to approach an issue and how to find the solution to the issue on your own. If you want to "just" learn which solutions may apply to a certain issue, and then picking one of the available soultions to the issue you have at hands, then youtube channels and professional courses are more than enough, you need no university degree.
    – EarlGrey
    Commented Apr 11, 2022 at 9:43
  • @EarlGrey I hope the university you visited did teach you the way you described. I didn't have the same experience. I finished recently and I can't say that I was encouraged to find solutions to the issues I was facing. OP described students making databases of prior exam questions and studying those. This was the encouraged behavior students practiced.
    – Squary94
    Commented Apr 11, 2022 at 10:01
  • 1
    The good thing is that you do not need to pass university exams to be a decent programmer. The bad thing is the requirement of having an university degree to apply for a programmer position. It is just a extremely cheap way to filter candidates, and also quite uneffective. I heard from people working in the private too many times the sentence "I don't care about degrees from applicants" and then the first requirement in the job opening they should oversee is "degree in informatics/computer science or similar".
    – EarlGrey
    Commented Apr 11, 2022 at 10:08
12
+50

YouTube videos do not a tertiary education make

The elephant in the room here is the fact that there is a prescribed textbook for the course and you didn't read it. It is okay to try to use alternative learning sources in cases where there is reason to believe that alternative learning materials are more succinct but are also sufficient to cover all the topics and skills you are learning. However, if you go down this path and then experience course failure, it worth considering whether your choice not to use the primary materials may have caused or contributed to that failure. It is a bit of a worry that you do not identify this as even a possible cause of your problem, and it is certainly a problem that you consider reading the prescribed textbook to be "out of the question".

It sounds like you have already made some good progress in learning some skills from video instruction, and so you probably already have a smattering of useful knowledge for this course that you can build on. I would recommend that in your next attempt you take the time to work through the prescribed textbook to ensure that you are learning all the material, and all the details, in a systematic fashion. You will typically find that autodidactic learning can give you useful knowledge, but it is often a bit patchy and non-systematic. One of the benefits of formal education in university courses from academic experts (supported by detailed textbooks) is that they generally cover material in a systematic fashion that ensures that you get all the core knowledge of a subject without any "gaps". Consequently, I would recommend that you reconsider your stance and try to work your way through the textbook for your next attempt at this course. If you break this down and do some reading each week, you will find that you are only reading about 50-60 pages per week, which should not be too onerous. (Since you will need to repeat the course, you can even get started on the reading prior to restarting, which will get you a head-start and reduce the per-week load even further.) More generally, take advantage of the readings prescribed to you by your course lecturer.

With regard to the cheating of other students, you need not let this prevent you from learning and understanding the material as well as possible. It is certainly disheartening when other students cheat on exams and get passing grades in courses as a result, but it need not prevent you from passing on your own merits. In the long-term, there are significant advantages to learning university material in-depth and succeeding in your degree without cutting corners. If you approach things this way then you will find that in a few years, you have significantly more knowledge of your subject matter than students who rely on cheating. By eschewing cheating when others are doing it, you are already developing good character, which is something that is just as valuable as the academic material you are learning.

To supplement this advice, I cannot help but comment on some aspects of your post that indicate possible misunderstanding about the realities of tertiary education. Firstly, a 684 page textbook is quite long for a university course, but not so much as to be a substantial outlier. (For example, for some discussion of reading requirement for law school, see here.) If reading a book of this size is "out of the question" in your education, you might need to rethink whether you actually have the time and inclination to undertake tertiary education right now. YouTube videos are well and good for learning certain things, but these types of materials are presently insufficient to give a student an entire tertiary education.

6
  • (For example, for some discussion of the reading requirements for law school, see here.) --- This is misleading. This is not an appropriate and similar example. Law is not science. Law doesn't have Lab sessions. I studied TESOL also. I can summarize a social science or humanities book in one night.
    – user366312
    Commented Mar 25, 2022 at 8:02
  • Like other answerers, you didn't touch the cheating phenomenon. This is taking place for a reason, and, in my opinion, the reason is - the way this course has been conducted, is not healthy for students. Also, as I already mentioned, the passing rate in this course is low.
    – user366312
    Commented Mar 25, 2022 at 8:07
  • 3
    You wanted advice for how to pass; you have it. If you would like to be dismissive of that advice, feel free.
    – Ben
    Commented Mar 25, 2022 at 12:55
  • I am not being dismissive. I just pointed out what you missed.
    – user366312
    Commented Mar 25, 2022 at 13:16
  • I have updated this answer to add an additional paragraph addressing the issue of cheating by other students; I hope this helps round out the answer.
    – Ben
    Commented Mar 27, 2022 at 5:41
5

Since you ask for the student's perspective, this:

As a result, they saved a lot of time and utilized that time to study for the written examination.

They learned one of the most fundamental skill in life: time management. It does not matter if you use the saved time to enjoy your hobbies, to do drugs, to prepare for your exams.

If you learn how to save time, you are ready not to be crushed in life because time will never be enough (ah, those biological limits), what you will do will never be enough (the mandatory increase in productivity required by the western world, always!).

Without knowing you, since you state

I learned the two programming languages very keenly. Solved all of the Laboratory problems However, I miserably failed the written examination.

The final project was a hard problem

your issue is not learning how to use a tool, but how to build something with that tool. The final project was hard but somehow a "cool" topic (image recognition), the instructor surely thought "the students have been exposed or have interest in that topic, let's challenge them".

There would be much to say about using past exams to learn a topic, surely someone can chip in or point out to other qustions/answers here on the site, bottom line is "when they ask you to perform the calculation 6*7, do you calculate every time 42 or do you answer 42 by heart"?

EDIT AFTER READING THE COMMENTS TO ANSWERS:

GDB was like an added pain in the a**. Debugging without a GUI, not my cup of tea

GDB is the foundation stone of whatever debugger, to understand whatever programm you write. You even stated

"It took me almost a week to find SASM debugger GUI."

... well if you managed to survive MIPS through an youtube channel, you can learn to do something with GDB in a week, do not understimate yourself, stop looking for cheap&quick short-term solutions that costs you a lot of time in the long term. Time managment, again.

Abrahm Lincoln may (or may not) have said “ Give me six hours to chop down a tree and I will spend the first four sharpening the ax.” but you are spending the first four hours in looking for tricks "how to avoid sharpening the ax while having a working ax"!

4
  • 4
    I actually had a first year university student who could not multiply 6 times 7, and this was the explicit task. So they multiplied 3 times 7, getting 21, then added 21 to that, getting 42.
    – Ed V
    Commented Mar 22, 2022 at 13:37
  • 1
    Were they doing "3 times 7" by heart or were they calculating it :D ?
    – EarlGrey
    Commented Mar 22, 2022 at 14:06
  • 2
    They were in the front row of my class. I saw them write 3 x 7 = 21. Then they put 21 underneath and added to get 42. That was a real eye-opener.
    – Ed V
    Commented Mar 22, 2022 at 15:52
  • It seems that they were actually the only one that could multiply 6 times 7, exactly because they did (3+3) * 7 :)
    – EarlGrey
    Commented Mar 22, 2022 at 16:57
4

"He even failed to prescribe a proper debugger tool for x86 except for GDB."

GDB is a proper tool which many use to great success. Being able to use it makes you better prepared for industry jobs, if anything. Growing accustomed to nonstandard tools imposes a higher bar on the quality of your work: the team has to adjust to you, it is time and effort (=money), so your work better be good. That is not to say you never ever should do it if something else works for you better, but I really do not see how this would be a teacher's problem and not yours.

It is still expected people can and would read (or at least sift through the text), as opposed to finding an online video tutorial, which is a massive waste of time most of the time. Working with good ol' text is a skill people are expected to have in engineering jobs - eye-candey GUI and pretty visuals are neat but they cost resources and, most importantly, time to develop; technical papers have an advantage of being easily searchable. There is no way you would find a great explanatory video on each electronic device, coming with full annotation in order to be able to even remotely compete with someone just using Ctrl+F on the pdf coming with that device. Sometimes you have wade through the sloppily written README.md, if even that. Also, sample problems don not have to be similar to the exam problems, sorry.

My point is, after you complete this course you are expected to do some (many!) of these things on your own. In any given month, be it industry or academia, I would easily have to go through hundreds, if not thousands of pages of documents; in any given year - have to learn tools I am not very comfortable with or seek alternatives (in your case, that was GDB). This all comes with the territory. Some people choose to be heavily mentored as they continue their careers, but that is very, very limiting. Professors usually do want to better accommodate their students, but at some point, it comes to the point of sink or swim. Better now, while you still have a modicum of support, than as you are kicked out to that cold world, starting your career and not getting as much mentorship as you were hoping for.

EDIT: This is largely a professor's perspective still, but at least personally, I has very similar views being a student and I believed that my professors knew what they were doing. So I pretty much always had a mentality that it is my responsibility to find supplementary material if the course alone does not suffice, that my fellow students are in the same boat and that I should not look around for what others have done differently and blame my failures on that, rather focus on finding what works for me. Maybe it is something others do, maybe it is none of it. Reflecting a bit on "is it normal" is a good thing to do as long as it does not prevent you from just putting more work in when it is needed.

6
  • GDB is a proper tool which many use to great success. Being able to use it makes you better prepared for industry jobs, if anything. --- True, but not fit for passing a 4-months semester as it takes a lot of time to debug.
    – user366312
    Commented Mar 22, 2022 at 14:54
  • 2
    GDB is a great tool and about as good a debugger as any other. But there are also good graphical front ends for GDB, for example in Eclipse. In any case, however, the user interface of GDB (or any other debugger) is not very complicated and can surely be learned in much less than 4 months. Commented Mar 22, 2022 at 15:13
  • @WolfgangBangerth, In any case, however, the user interface of GDB (or any other debugger) is not very complicated and can surely be learned in much less than 4 months. --- unless GDB is the only thing I had to learn! Sorry, I humbly disagree. x86 assembly is already hard to learn. GDB was like an added pain in the a**. Debugging without a GUI, not my cup of tea.
    – user366312
    Commented Mar 22, 2022 at 16:38
  • 6
    @user366312 "Debugging without a GUI, not my cup of tea." passing courses will often involve activities that are not your cup of tea. Learn to appreciate (or at least tolerate) other varieties of tea. Commented Mar 22, 2022 at 19:07
  • 2
    Compared to learning assembly, learning GDB is surely easy enough. But if you want to use a GUI, then why don't you just use one? Commented Mar 22, 2022 at 19:20
3

Set your goal. If you want to pass the exam, then always keep eye on what others are doing. Be friendly with old students who were taught by the same teacher and get old notes, old exams, solution manuals of you text book or even get tips how to pass this course. Later on, only grades matter, not how you get them. Learn from other students and instead of considering them cheats, follow their footsteps to success.

4
  • This is actually the ultimate truth.
    – user366312
    Commented Mar 22, 2022 at 16:55
  • 1
    "Later on, only grades matter, not how you get them." unless you got them illegally, and they may be revoked.
    – EarlGrey
    Commented Mar 23, 2022 at 11:18
  • @EarlGrey If you are the only one doing something different, you will be noticed and you get the consequences. But if a majority is doing something and nobody around cares, even nobody listens to your complaints, then it is not so illegal and you will not be a target.
    – imtaar
    Commented Mar 23, 2022 at 12:07
  • 1
    Or the grades won't matter at all and what you have learned will. But given the premise of "set your goal and follow it" - yes, absolutely.
    – Lodinn
    Commented Mar 27, 2022 at 9:03
0

I have upvoted answer by Imtar.

Just want to add, professors have a typical style of teaching, quizzes, mid term and end term. Most students, if not all, try to catch up with that, rather than really study the subject for its own sake.

If professors keep things too simple, they will be seen as adding less value.

If they keep things difficult too many will fail and their own teaching incompetence may be blamed partially.

Thus for clearing exams, the pattern recognition helps.

My advice to people in similar situations is to look hard and see if you are sure to pass the course (judging by the load you feel, time for assignments etc). Sometimes other students are just more prepared already or are devoting most time to this course.

For myself, I have dropped several elective courses after a few sessions when I got the hint.

When it was not possible, I tried to follow other students.

And your question is helpful. Every one thinks differently. What tool appears great to one can appear intractable to others. And often, for me, alternative textbooks have been saviours.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .