Wikipedia:Reference desk/Archives/Computing/2024 May 17

Computing desk
< May 16 << Apr | May | Jun >> May 18 >
Welcome to the Wikipedia Computing Reference Desk Archives
The page you are currently viewing is a transcluded archive page. While you can leave answers for any questions shown below, please ask new questions on one of the current reference desk pages.


May 17

edit

I can't pass "Fundamentals of Data Structures" (FDS) and "Advanced Data Structures and Algorithm Analysis" (ADS) no matter how hard I try

edit

I am having a very serious issue with the two aforementioned courses in university (for context, note that I am in university in China, and I am Canadian). I can't understand the content at all, especially when it mentions anything mathematical or mentions a complex algorithm or data structure with names that I can't even remember. (It has nothing to do with the language, since the course content of these two courses are in English, which is my native language.) FDS started out fine, with the basic lists, stacks and queues, which I am more than familiar with and can confidently answer any questions about, but when it got to various kinds of trees, I can't remember them or any of the required algorithms that are to be used on them. I already failed the FDS exam twice. On the previous attempt, I fell short of the passing grade by just ONE multiple choice question, which made me very frustrated. ADS is even harder, with mathematical formulas relating to the algorithms that I don't understand at all. What makes it worse is that although there are two opportunities to attempt the FDS exam every year (in the fall and spring semester), there is only one opportunity to attempt the ADS exam every year (in the spring semester only). I didn't have any issues with any other courses such as C, C++, web programming, computer networking, information security, large-scale databases, etc., but these two courses are giving me stress. What's worse is that there is a 6-year limit (including taking a year off), so I can't take a break from university and come back to this any time I want, and my dad, who funds my studies, is threatening to stop doing so, since he said to me (in Chinese), "If you can't pass this required course, then your entire program has no point for you, since you can't graduate without it. You'd be better off going to a [community] college back in Canada, where the content is easier, and I can stop paying rent every month and being so far away from my family, and you can be closer to your friends back in Canada [with sarcasm]." What should I do to learn the data structures and algorithms that are completely obscure to me and pass the course? This is the only course that is stopping me from studying normally, because it seems that when I even try to rewatch the course content, I still am unable to understand it.

As a little aside that is completely unrelated to the academic problems, it seems that my dad has a drinking problem. He keeps buying large packs of beer despite my requests for him to stop, using excuses like "it's on sale" (Taobao perpetually displays it as on sale) or "it's nostalgic" (since the beer is Harbin beer, the city where he grew up), and I often see large quantities of empty beer cans piling up, and because of this, he has become very short-tempered, which negatively affects my mental health. What can I do about this issue? Félix An (talk) 03:45, 17 May 2024 (UTC)[reply]

Your second question is not related to computing. Intervening in someone's addiction when they are in denial is generally almost impossible. I am not familiar with Chinese culture, but I know filial piety, showing the utmost respect to one's parents, is a corner stone of traditional Chinese culture, making any potential steps even more problematic than they are in modern Western society. About the only thing I can think of is discussing your concerns with other older relatives in the hope that they can help.
Your first question is perhaps also not directly about computing and more about learning. You wrote you had no problem with C and C++; does this mean you can write programs in these languages (or in Java or Python)? In that case, I suggest that you write code for implementing various kinds of trees, such as AVL trees, red–black trees and 2–3 trees, or whichever kinds are treated in the FDS course. It will help to make the theory come to life. Even if you ultimately fail this course, the exercise will improve your skills and thereby your chances in your future life.
Do you use a textbook for the ADS course? You write that you do not understand the mathematical formulas. Do you mean you do not understand the meaning of a formula such as   or merely fail to see how it relates to a given algorithm? Does the course material just present the formulas, or does it show how they are derived? If not, you can probably find the derivations or proofs online, sometimes here on Wikipedia. Studying the derivations until you could present them yourself to a fellow student will definitely help to understand and remember the formulas.  --Lambiam 10:12, 18 May 2024 (UTC)[reply]
For one thing, I think you should take FDS and do well in it before taking ADS. Bubba73 You talkin' to me? 01:22, 19 May 2024 (UTC)[reply]