May be this would help you get better results (from my humble, little and incomplete experience) : 
1- First, try to understand the definitions or formulas of the course (the theory) : 
concentrate in the class, no chit-chat, :nervous: no silly distractions.
2- Try to understand with examples : 
you  should get the help of your teacher or a classmate who already  undertood. Ask as many questions as you can, and be as much annoying as  you can.
3- Do as many exercices as you can : 
You  know in some subjects/chapters you won't fully understand the course  until you do enough exercices. You have to do some effort, you won't  regret it.
4- Every time you find difficulties make dua and ask help from Allah SWT. 
Remember Allah wants us to seek knowledge everywhere, and He will help us.
5- Sometimes you can't understand something directly, but things could be clearer after some time :
 (after taking a nap, or after making a walk, or after making a cup of tea:rollseyes)  , so take your time to understand, and don't be depressed if you don't  get something very quickly, because you probably will get it after  reflexion or after some time. 
6- Don't underestimate yourself. 
You  are able to understand and excel in any subject (well everyone with a  brain will do). All you need is to concentrate on that subject and give  it what it needs from your time and your effort.
7- Don't study everything at the same time : 
Make  priorities, organize your schedule, start with global concepts/notions  and then try to treat the details of every part. Tune your study with  the amount of time available : If you have too much time, then try to  understand every detail and try to make to many exercices to repeat and  confirm what you understand. If you have less time, try to get over the  most important notions, try to understand the general concepts, and just  do practice of what you need (+/-3 exercices for each Chapter/Part for example).
8- Don't concentrate only on the marks you will get,
Concentrate  on the knowledge you will get and the benefit of this knowledge in you  life and in your job. Belive me, students who only concentrate on marks  and don't try to understand the essence of every subject , they will  have too many problems in their jobs later. I know many engineers who  face difficulties in their jobs because they don't master maths or  physics, while they had very high marks in school, and when you ask them  about that, they tell you they forgot all they learned in school,  because they didn't know the usefulness of the subjects they studied and  they only memorized some formulas and memorized only some types of  exercices that they repeated in the exams.
So try to understand what  is the subject about, how it can help you in your life / future job,  what are the main concepts of the subject that you have to memorize  forever.
9- Do revise and repeat what you learned :
You will be surprised how fast we can forget what we thought we fully understood and memorized. So revise periodically (every 3 to 5 days).
10- Don't revise everything the night before the exam:
You  probably experienced this. What do you think about it ? How many times  did you regret that you have not enough time to revise a subject, and  that you could get better results if only you had just more time :grumbling. 
So  prepare yourself before exams approach. Think everyday about the exam  (no matter how far it is). Make periodic revision, so the night of the  exam you will be prepared and you will have only to look quickly at every subject and check your understanding.
And as I said, the scientific subjects  you mentioned need practice (not only memorizing like other subjects).  You have to do exercices bro. Try to find as many corrected exercices as  you can. It's up to you to make yourself good or weak in them. It's  only with effort.