Skip to main content

Survey Results



Course Survey Results


Nodar   Sitchinava
  TA: ${survey.ta} :
  ICS311, Spring 2024

Campus: University of Hawaii at Manoa Course: ICS 311 - Algorithms
Department:   Information& Computer Sciences Crn (Section):   81105 (001)    
TA: Jared Lo & SK Fazlee Rabby


1.   Global appraisal: Overall how would you rate this INSTRUCTOR?

Mean N-Size Std Dev   Very Poor (1)  Poor (2)  Average (3)  Good (4)  Very Good (5) 
4.42 31 0.89   1(3%) 0(0%) 2(6%) 10(32%) 18(58%)
2.   Considering everything, how would you rate the GA/TA’s sections of this COURSE?

Mean N-Size Std Dev   Very Poor (1)  Poor (2)  Average (3)  Good (4)  Excellent (5) 
4.32 31 0.87   1(3%) 0(0%) 2(6%) 13(42%) 15(48%)
3.   Considering everything, how would you rate the LAB for this course?

Mean N-Size Std Dev   Very Poor (1)  Poor (2)  Average (3)  Good (4)  Excellent (5) 
3.86 29 1.13   2(7%) 0(0%) 8(28%) 9(31%) 10(34%)

4.   What did you find most valuable and helpful about the instructor?
The instructor is friendly and professional on answering any questions related to the materials.
Very knowledgeable.
He is very knowledgeable and if you come to class with questions he will answer in a way that helps you understand any problems you have understanding the topic.
He is very knowledgeable and well versed when giving explanations. He has high expectations for his students, but that is because he wants to make sure we are learning the material effectively.
Him explaining how to do a problem after we attempt it, and answering questions while attempting problems. Also the notes that are uploaded are very easy to learn from.
This instructor is very helpful and will try and understand any question you ask him.
He knows the subject so well that he can make even really complicated concepts suddenly easier to understand.
The in class exercises that would often get us thinking deeper on the material and help further our understanding of the material as well.
He is strict for students in terms of lecture and hw, but that gave us an opportunity to think logically and understand a concept or material well.
He is really passionate about algorithms. He is willing to engage and make you question and support your assertions in class exercises. You need to be able to engage with this and hold your own. He is not trying to prove you wrong, he is trying to get you to support and modify your answer; this is the whole point of the class
Professor Nodari was always willing to help students understand the material. As long as you showed that you cared about the material that you were learning, he will help you.
I found that he was very open to helping you if you had questions, its just the topic is really hard.
Nodari is a decent lecturer, but decent is often not enough to stay engaged in classes. So instead, Nodari only really "lectures" when a student asks a question or if a table is stuck on a problem. This is valuable because I think students are more engaged when a peer is asking or when they have already tried engaging with a problem, so the lecture is more effective.
He fully understands the material so when asking questions you are more likely to get a straight answer to actually benefit you than don't.
He took the time to answer any and every question.
Always open to questions and will break down any concept into something more digestible. Also works you hard for an answer, which makes you think.
Nodari knows his material expertly and will attempt to answer in depth any question you throw at him. I found him to be intimidating, but once I got over myself he was actually very approachable and willing to help with anything.
I liked that Nodari is passionate about teaching. It shows he really cares that the students understand the material instead of just simply being there to be there. If you reach out to him for help, he'll take time to make sure you got it.
He tells you exactly what you need to hear, not what you want to hear. Everyone wants the answer to these mind-boggling problems, but Nodari doesn't give you anything except your own thoughts to aid your own critical thinking. Not to say he doesn't help though, he is a great help in trying to get your thoughts on the right track.
I found that the instructor have multiple ways of explaining certain topics which helped a lot when trying to understand it.
How he explained problems that we went over in class or that were on a quiz.
He challenges the students intellectually.
He really wants his students to understand the material. He isn’t like the other ICS professor at UH Mānoa that don’t care wether or not you put in the work. He genuinely cares and makes sure that his students leave the class/course with algorithms ingrained into their brains.
He is willing to spend time giving a detailed answer to the questions you may have about the material.
He will break down the questions you have and make sure you understand them. He is also not against asking any questions. If you have even a single thing you are mildly confused on you should ask him.
he obviously knows the material but relies to heavily on students basically teaching themselves. Pretty bold of him to complain about discrete course professors when he is equally as bad


5.   What did you find least valuable and helpful about the instructor?
Nothing.
N/A
The high expectations that he has for his students will leave some students behind. The class is a monster that activates people's fight or flight response. About half the class will fight while the rest give up (and of course, some find the fight very easy). I think saying something like "this should be simple" discourages students who were ill prepared by their prerequisite classes.
Required notes are fine but Cornell notes feel like a chore and not everyone prefers them. Conforming to note styles you don't like can feel like checking off a box rather than learning.
They can be somewhat intimidating, so asking questions in class requires a bit of bravery.
N/A
He often struggled to be concise in explanations. However they are still worth hearing. If you pay attention you will get more information than you need, not less.
Nodari can come across as intimidating so students can be afraid to ask questions. I personally don't feel intimidated but I know other students have said that they feel that way.
I thought that more prep from the midterms and finals, would be nice. Perhaps like a study guide or a practice test.
He can be intimidating at times, mostly because he is the one that knows how to do problems, so explaining a problem to him can be tough at times.
He would encourage you to work out the problem but sometimes we simply just didnt know what to do. So we would sit there lost.
Can be a little intimidating to talk to or ask questions.
I disagreed with some of the course policies at the beginning (flipped classroom, enforced Cornell notes), but I understand the method to the "madness" now. If you take this course the way it was designed/intended, you will be fine, but it takes a complete restructuring of how you see education and learning. I am appreciative of that.
The classroom was quite long so if you sat in the back, it sometimes became quite hard to hear the instructor. Similar for seeing the whiteboard from the back of the room.
Sometimes he may come off harshly or as though something may be "trivial."
Most of the lectures in this class are self taught and I think that having more in-person lectures will help with the overall quality.
As mentioned previously, not much assistance with writing proofs/showing correctness using the formatting/vocabulary that was expected from us in the course.
Nodari can get a little frustrated sometimes. He really wants his students to understand the material and he expects them to already have semi-mastered the previous materials that were taught before this class. When a student doesn’t seem to full comprehend what he’s asking or gives the wrong answer he can get a bit frustrated and it shows. Also the wording on certain homework’s/exams/and questions that he asks can get confusing and hard to understand.
He expects a strong foundation of discrete math from the start, and so it can be difficult to catch up.
Sometime he would say concepts or understandings of the course were trivial when they really weren't, at least on first exposure. Especially when things were supposed to be taught in prior classes but there was a collective agreement that certain classes did not do a good job preparing you for this class, like discrete math.
that we are given 0 in class examples and instruction until after the quiz. make the quiz after peer collaboration

6.   The instructor is fair and objective in evaluating students.

Mean N-Size Std Dev   Strongly Disagree (1)  Disagree (2)  Neutral (3)  Agree (4)  Strongly Agree (5) 
4.42 31 0.89   1(3%) 0(0%) 2(6%) 10(32%) 18(58%)
7.   The instructor is well prepared and organized.

Mean N-Size Std Dev   Strongly Disagree (1)  Disagree (2)  Neutral (3)  Agree (4)  Strongly Agree (5) 
4.71 31 0.59   0(0%) 0(0%) 2(6%) 5(16%) 24(77%)

8.   Which aspect of the course were most valuable?
The materials covered in this course are very important for future studies.
One of the most helpful aspects of this course was the office hours, any time that you can spend outside of class learning about the material will help you out in the long run. It may not seem like much, but frequently going will help you understand the material on homework especially much easier.
While this may seem like a negative to some, this class values learning over the grade. I think that people who get a C in this class learn a lot more than they would from getting an A in some easier class.
Homeworks, notes, quizzes, and collaborative classworks followed by explanations all helped me understand problems and their solutions.
Honestly, I feel like this is the first course to really teach me anything. Every other CS course has just been a "programming" class which is not actually that valuable a skill. Thinking algorithmically is much more important. This class in it's current state is vital to any CS major
Honestly it is hard to pick any particular thing - the entire course was absolutely necessary and valuable.
The vast amount of materials and resources made available to us.
office hours were really helped me during this semester Also, a quiz works for me to check if I really understood the class materials
The screencasts and the homework, and go to lecture, you will fail if you don't. If you can apply your knowledge gathered in the lecture notes and class exercises, you will do well in this class.
The group work aspect was definitely the most valuable. Computer science students can be awkward and shy so forcing students to communicate with each other helps you build connections with others. These will be the same people you can study with so its important to make friends.
I think the most value part of the course was the in class exercises.
I think the pace of the course and the constant introduction of new topics every week really challenged us, which also forced us to become better and spend more time on the class, lest we fall behind. It also made me take the course very seriously, and thus, I have learned the most from this class out of every class I have taken thus far.
The notes being a pass or fail was really beneficial and forces students to actually read the material so they can't BS their way through the course.
Thought hated the quiz's did enforce a type of anxiety to read up on the topic so that you had a general understanding for the quiz
Learning different algorithms and how to apply them to solve different types of problems. The amount of thought required for this class.
Nodari himself, TAs, textbook, lecture notes, optional problems, homework solutions, group work. Not necessarily in that order.
Although having a quiz every class gave me a lot of stress, I think it was the most helpful in preparing for each topic. It made sure I studied before each class so that I don't fall behind in material since it tends to build upon each other.
The content is incredibly valuable, but I think the studying habits and thought-process that I have built on over this semester were what I found to be the most valuable.
Having the group work during class can be very engaging and makes the class more interesting. It helps that we can talk to our peers and see what we all understand and which topics we do not.
Running time analysis has been the part of the course that I have used most so far outside of the class
Learning and improving on problem solving skills in the context of algorithms.
In class exercises to work with your table. You can work bounce ideas off each other and help others understand the material that they have missed or not fully understand. I also appreciate that Nodari takes the time after to explain why the answer works and the proof behind it.
I found the fact that he always posted the solutions to the in-class exercises and homeworks after they were done very helpful.
Office hours
its important stuff just would prefer more actual teaching


9.   Which aspect of the course were least valuable?
The format of this course is "flipped classroom": lecture at home, group work in class.
Sometimes classwork would feel a little pointless as with random groups sometimes you will get people who are not prepared for class, overall I think that having random groups for classwork is good but some downsides make me dislike it a little.
Having to turn in homework in person.
Can't think of anything
Unforgiving homework policy is really unforgiving. As well as physical turn-in, really sucks. I feel like the system could easily be adapted into a digital turn-in.
N/A
class activities because once your team is stuck on a problem, it cannot go further question I prefer to professor explain the contents and problems in the middle of class, not at the last moment of class
Nothing. Everything in this class is absolutely essential. Possibly the book, you can get by without much reading as long as you watch screencast, read lecture notes, and learn it well
I thought there were no issues with the course
Personally, I thought the notes were not that helpful, because i didn't really use my notes to study for midterms or the quizzes, I directly used the notes on the webpage.
The reliance on digital materials and textbooks for the conveyance of information was a little annoying. There were often times the textbook material and lecture notes did not sync completely, and at some point, looking at a screen all the time hurts the eyes. The class size doesn't necessarily make paper copies convenient, but it is quite an annoyance.
Switching tables every day
Notes. I feel I did not use my notes much for studying, but rather turned to homework assignments and class exercises to study for exams. Re-solving homework questions, in-class exercises, and looking at optional questions helped prepare more for exams if anything.
Notes for the first month was a bit harsh. You don't really know what to expect, and I found myself going overboard on the notes since I didn't have a frame of reference. The participation grade is a bit flawed as well. As an example, if everyone participated fairly (meaning everyone gets a fair distribution of points), but one member on the table didn't do their homework, the other table mates get their grades deducted for the negligence of their table mate.
Nothing, everything has a purpose or value to it
The daily quizzes. The quizzes are so unpredictable. Sometimes the quiz could be on materials that were only covered in one line on the notes and sometimes is based on the larger scales things. You can’t really prepare for the quiz you just have to know the material and hope you understand the questions. I also don’t really enjoy the peer review being 5% of our overall grade. Sometimes students just give all the points to their friend on the table and sometimes they forget to even put the points on their homework resulting on everyone on their table getting a 0. It unfair in a sense that it affects your grade and 5% at that.
The answers for the midterms required people to be in person.
In class exercises or at least the time frame they were carried out
peer evaluation and peer grading definitely some shady business


10.   Other comments?
This course is held in a very time consuming format, materials are not covered in class, we have to cover the materials in addition to class time (like asynchronous); however, there is still schedule time, which is used to have quizzes and in-class exercises. I personally think this is unnecessary, this course can simply be held as asynchronous. Homework is hard. Most homework problems requires a lot of thinking, waiting until the deadline to start doing homework will be extremely panic and stressful.
While this is a tough class, this is a learning environment that excites me and one that I wish I could get more of. Although the class is a struggle, there is a sense of community when you find the write people to struggle with. The group exercises facilitate meeting new people to increase the size of the study group, and I've made more friends in this class than in any other class I've had. While it is hard, it is rewarding, and I'm glad that I took it. I just feel pity for my friends and classmates who gave up after the first midterm. Many of them lacked the confidence to seek help and ask questions. There should be some focus on encouraging them to stick to the course and to understand how much they are learning despite low grades. I have a friend who failed the first midterm. One of my proudest achievements was encouraging him not to give up and to study with my friends and I, leading to him passing the second midterm. I think people who give up to soon are missing out on a lot of learning, and just need that extra push.
I feel that this course was a lot less scary than I've heard it to be with professors like Seidel. I got recommended to take this class with Nodari and I'm glad I did. It definitely isn't easy but I feel able to meet the challenge.
This class was probably the hardest one I've ever taken but also the best, thank you to both the professor and TA's.
This class, when taught by Nodari, is really difficult. If you are willing to learn and are willing to dedicate the time and effort to do so, then I believe you will succeed in this class. It would be no exaggeration for me to say that this class was definitely the hardest class that I have taken during my time here at UHM. All I can do is wish you good luck.
This course is best taken by students who wish to really push themselves as computer science students, and are willing to take a hit to their GPA!
Look at the course websites from past years. If you don't know how to solve the first two problem sets with the knowledge you have now, you need to watch the videos start to end and solve additional problems before you even take the class. If you don't know your prerequisites in and out, expect to take three courses in one. This class will easily go from a 4 credit class to feeling like an 8 credit class
Thank you!
The TA’s homework grades are interesting. Depending on the TA you can either get a good score or a horrendous score. Some will leave comments on the homework telling you where you can improve or little explanations where you proof went wrong. Some would just leave the paper blank and give you a score. Also some TA’s will walk around the room and helps students understand the material during class when the professor isn’t available while others just sits in the back of the class and avoids the students. It’s about approachability and helping the student understand the materials. You can always go asks questions on homework and stuff and they will help you. While others give you a vague answer and leaves you more confused than you were before.
please curve

11.   The instructor was open to comments and questions.

Mean N-Size Std Dev   Rarely (1)  Sometimes (2)  Frequently (3)  Generally (4)  Almost Always (5) 
4.71 31 0.78   1(3%) 0(0%) 0(0%) 5(16%) 25(81%)
12.   The course was a valuable contribution to my education.

Mean N-Size Std Dev   Strongly Disagree (1)  Disagree (2)  Neutral (3)  Agree (4)  Strongly Agree (5) 
4.58 31 0.89   1(3%) 0(0%) 2(6%) 5(16%) 23(74%)
13.   I learned a lot in this course.

Mean N-Size Std Dev   Strongly Disagree (1)  Disagree (2)  Neutral (3)  Agree (4)  Strongly Agree (5) 
4.65 31 0.84   1(3%) 0(0%) 1(3%) 5(16%) 24(77%)
14.   The instructor treated students with respect.

Mean N-Size Std Dev   Strongly Disagree (1)  Disagree (2)  Neutral (3)  Agree (4)  Strongly Agree (5) 
4.52 31 0.63   0(0%) 0(0%) 2(6%) 11(35%) 18(58%)
15.   The instructor demonstrated knowledge of the course content.

Mean N-Size Std Dev   Strongly Disagree (1)  Disagree (2)  Neutral (3)  Agree (4)  Strongly Agree (5) 
4.87 31 0.5   0(0%) 0(0%) 2(6%) 0(0%) 29(94%)
16.   This course challenged me intellectually.

Mean N-Size Std Dev   Strongly Disagree (1)  Disagree (2)  Neutral (3)  Agree (4)  Strongly Agree (5) 
4.87 31 0.43   0(0%) 0(0%) 1(3%) 2(6%) 28(90%)
17.   The instructor both sets high standards and helps students achieve them.

Mean N-Size Std Dev   Strongly Disagree (1)  Disagree (2)  Neutral (3)  Agree (4)  Strongly Agree (5) 
4.58 31 0.85   1(3%) 0(0%) 1(3%) 7(23%) 22(71%)
18.   The instructor was available for consultation.

Mean N-Size Std Dev   Strongly Disagree (1)  Disagree (2)  Neutral (3)  Agree (4)  Strongly Agree (5) 
4.48 31 0.63   0(0%) 0(0%) 2(6%) 12(39%) 17(55%)
19.   Considering everything, how would you rate this COURSE?

Mean N-Size Std Dev   Very Poor (1)  Poor (2)  Average (3)  Good (4)  Excellent (5) 
4.13 31 1.09   1(3%) 2(6%) 4(13%) 9(29%) 15(48%)
20.   What was the format of this class? online synchronous (class scheduled for particular days and times) online asynchronous (class conducted online - no scheduled class meeting)

Mean N-Size Std Dev   Online Synchronous ()  Online Asynchronous ()  In Person ()  Hybrid: In Person and Online Synchronous ()  Hybrid: In Person and Online Asynchronous ()  Hybrid: Online Synchronous and Asynchronous ()  Other () 
0.0 31 0.0   1(3%) 0(0%) 27(87%) 1(3%) 1(3%) 0(0%) 1(3%)

21.   If you answered 'Other' for the question above, please specify.
Flipped classroom In person.

22.   The course is highly recommended if it were taught by this instructor

Mean N-Size Std Dev   Strongly Disagree (1)  Disagree (2)  Neutral (3)  Agree (4)  Strongly Agree (5) 
4.32 31 1.11   1(3%) 2(6%) 3(10%) 5(16%) 20(65%)
23.   The teaching-learning strategies used in the course encouraged active class participation

Mean N-Size Std Dev   Strongly Disagree (1)  Disagree (2)  Neutral (3)  Agree (4)  Strongly Agree (5) 
4.42 31 0.92   0(0%) 2(6%) 3(10%) 6(19%) 20(65%)
24.   The instructor seems to enjoy teaching

Mean N-Size Std Dev   Strongly Disagree (1)  Disagree (2)  Neutral (3)  Agree (4)  Strongly Agree (5) 
4.39 31 0.72   0(0%) 1(3%) 1(3%) 14(45%) 15(48%)
25.   The instructor was enthusiastic about the course material

Mean N-Size Std Dev   Strongly Disagree (1)  Disagree (2)  Neutral (3)  Agree (4)  Strongly Agree (5) 
4.58 31 0.62   0(0%) 0(0%) 2(6%) 9(29%) 20(65%)

26.   What changes would you make in the lectures?
Briefly go over (summarize) the content and provide more examples in class.
Add recitation.
I think that the format of the lecture is very good and encourages learning the material very well, I wouldn't make any changes.
I think that perhaps adding more subquestions to in-class exercises to aid in understanding could be beneficial for some students. I think exercise questions could be broken down into even easier subquestions to guide the students that are less prepared. This would boost the confidence of some students, encouraging them to participate, and giving them momentum for when the questions get increasingly harder. If they did not come prepared, their confidence would have already taken a hit from performing poorly on the quiz, so offering a few more basic questions could be good for group morale. I know that I always felt bad when I noticed my group mates falling behind. I understand that they should come to class prepared, but some of my classmates and friends really tried their best to understand the material and ended up dropping because they felt that no matter how hard they tried, it just wouldn't click. Reviewing basic material for each exercise could be a good way to counteract this, as it can be finished quickly and would be easy to explain for those who did come prepared.
More supplemental material reviewed at the beginning.
None
It can be a lot of content for every day, even if you are adequately prepared from prerequisite classes
If the lectures are like slide based lectures and the professor shows how it works, then it could be an efficient change rather than jump into classwork and quiz.
No changes
None
I grasped the concept of algorithm or data structure more precisely and in detail.
Maybe the Professor can prompt more specific questions if people are too lost to know what to ask
Honestly, I think the structure of the class is great how it is. There are no real "lectures" for this class and students are expected to come to class with notes and some understanding of the topic for the class.
To the lectures, I think I would add more examples.
The lecture notes could be more visual/interactive, although I suppose that's what the screencasts are for. Other than that, I don't have too much to say.
The topics are hard to fully grasp but Prof. Nodari makes it very easy to understand. I would hope that the teaching style was switched and it was more lecture based to fully get a good understanding of the topic.
A change to experiment with is maybe having a short summary at the beginning of class of what we should understand for the day, ~5-10 minutes, then doing the in-class exercises, then doing the quiz at the end of class.
Keep all quizzes 10 minutes please. There were some 5 minute quizzes where I was deriving the answer but ran out of time.
I think the randomized seating arrangements was a great idea, but I still haven't had table arrangements with certain people. I feel as though I know most people (which is great), but there are some people that I have had little to no interaction with. The randomized seating arrangements should have included everyone else at least once.
I think including more in-person lecturing instead of having the class watch and read every lecture topic can improve the lectures. I find myself learning more when the professor talk and explain the topic in class than having to read and watch about it.
More time spent in class dedicated to properly wording our answers to proofs/showing correctness. I found that a lot of students (including myself) struggled with putting ideas into complete sentences in the format that this class asked of us.
Have a period in the beginning of the class that is a high level description of the topic used in the in class exercise.
It’s sometimes hard to understand the material and the screencasts are so monotone.
I wish in class exercise answers would be given earlier since sometimes later problems would be quickly brushed over due to running out of time.
maybe actually lecture just a bit? only going over questions before the quiz is not sufficient


27.   What advice would you give to students, who might be taking this course in the future?
Read and get familiar with the content before each class. And get started with the weekly homework early.
Attend office hours, and get ahead as much as possible.
Be prepared to take time almost every day to understand the topics, and be prepared for class as understanding the class work is crucial to understanding test and homework problems.
Start homework early, go to office hours, form a study group, don't be scared to ask for help.
I would take notes seriously.
Do some self learning and practice problems with strong induction. Understanding of strong induction is a big prerequisite, but you'll also learn by examples in the class different ways to use it.
read lecture notes as early as you can, and really try to read CLRS alongside it
Study efficiently and often
Go to as many office hours (both regular and TA's) as you can, and don't be afraid to ask questions in class.
Not to start doing hw right before it's due. Go to office (all if possible) hours make sure the fundamentals of discrete math and other pre-requirements class contents
Ask questions in class. Watch the screencasts and prepare questions in relation to the material. Also, ask the Professor to run through an example of the type of thing that you think may end up in the quiz (he may pretty much give you the answer)
I would say read the textbook. The lecture notes are great at summarizing main ideas for that topic but you wont have the full understanding of the material. Also, form study groups with others and review material together. Just be prepared for how difficult this class is and dont fall behind.
To the future students taking this course, I would say to review the basis from 241 and learn how to do pseudocode. Also, start the homeworks early and try to do your best on the topics from the 1st midterm, because the topics from the second midterm and on are harder.
This course requires a solid foundation in discrete mathematics, mainly regarding ideas such as set notation, strong induction, and general proofs. I would recommend reviewing those concepts every once in a while the semester before you plan to take algorithms, and intensively the month before. Having a study group to bounce ideas off is crucial to success, and if you do not have one, you should go to office hours if you can.
brush up on your proofs, you're going to need it throughout the entire class. PAY ATTENTION IN DISCRETE MATH
Find a group to meetup to work on the weekly topics and the problem set.
Take discrete math very seriously and get good at it before taking this course. Do your best to review a lot since this course relies heavily on concepts taught in prerequisite courses (111, 211, 141, 241). Go over material early. Start homework early. Do not be afraid to ask dumb or stupid questions. Go to office hours. Work with others on homework so you can bounce ideas off of others (don't copy each other though, if one person knows the answer, then make them work you to achieve that answer).
- Look over homeworks the day they're assigned - Start thinking of how to solve the problems while you're doing the material - Read the textbook, then watch the videos and read the lecture notes - Go to instructor/TA office hours - Start studying for exams about 2-3 weeks out - Keep a light schedule (take as little classes and as easy classes as possible), this class feels like taking 2-3 classes - This class tests understanding/application of ideas (solving new problems). Memorization and strategies that would give you an A in other classes won't be enough to pass this class - Read the textbook and the ICS review sites over the summer or the semester before you take the class. If any material from the first half of the semester is new to you you will STRUGGLE with this class - Must have high level understanding of discrete math (not an A grade, understanding). Proofs by induction are a must, as well as recursive thinking It may be tempting to take sections offered by "easier" professors, but don't fall for this. Nodari's ICS 311 is by far the hardest class I have ever taken, but he is also the best professor I have ever had, and I have learned more from this class than any other so far.
Take the extra time to do practice problems outside the homework. Class is heavy on critical thinking, make sure you truly understand each material before moving on to the next.
Do your work. Read the book, read the lecture notes, and (in my opinion) watch the screencasts. The optional screencasts as well. The MIT screencasts and regularly provided screencasts are what I found to be the most beneficial for me. Also, don't over stress on the notes. Of course take good notes, but understand you're not rewriting the CLRS textbook in your notebook, but rather a way for yourself to understand the content. Write your notes for yourself and not anyone else. Don't worry about getting a 2 or 3 on the notes. Study for the quizzes. Go to all the office hours you can and make friends to discuss course content.
This class is extremely rigorous and will take a lot of time to succeed. Prepare to devote most your time and have a light workload when taking this class. Make sure to fully understand the topic and learn it in a fundamental level. Memorizing the techniques and topics taught in class will only get you so far.
If you have the time and capabilities, take notes based on the CLRS readings instead of the lecture notes. While most of the time it is a lot more information to write notes about, it helps you have a greater understanding of the topics, especially in the first half of the semester.
Make sure you really understand the material for the in class exercise for that day and ask question when you need to.
This course builds on ICS 111, 211, 141, and 241. If you do not have a firm understanding of the topics from these courses, this course will be a struggle. I highly suggest brushing up on discrete math topics especially induction. I also suggest brushing up on the sorting algorithms you have learned so far. This will help with not getting overwhelmed in the first few weeks of the class. Also, expect to spend a numerous amount of hours on this class. Each weekly homework alone will likely require 6 or more hours in order to get a decent grade. (Possibly more depending on the student and material)
Don’t fall behind. The exams are hard. The homework’s are hard. The material is hard. If you’re planning to take this course really study back on ICS 111, 211, 141, 241. Those classes especially discrete math are literally 1/2 of the semesters material. SUMMATIONS. PROOFS. Know all of these, they will literally be a life saver in the class cause you will need to do a lot of proofs and practice your pseudocode. You will also have a lot of pseudocode homework’s that are literally worth 50/100 points on the homework.
You need to have a solid understanding of discrete math and be very self-directed. This class is a reverse classroom, and so you teach the material to yourself and clarify your understanding with the in-class exercise. Very difficult class, can be very rewarding if you can find your flow.
Go to office hours. Ask for help. Start everything as early as you possibly can. Don't underestimate how difficult it can be to perform on tests and quizzes when the pressure of time is on you.
take it over the summer. not because this class is difficult but because he is not going to teach you anyways its all mit videos you might as well do it over the summer and save yourself the stress. People sabotage peer grading so they do better and quiz and hmws are not graded equally.