Good learning practices
Below are some resources that I have put together for CMSC131 but that apply more broadly to learning both at UMD and elsewhere.
Further useful information about studying in general can be found here: http://www.howtostudy.com/ Links to an external site. .
Also see this great information put together by Nelson Padua Perez:
- http://www.cs.umd.edu/~nelson/classes/utilities/examRules.html Links to an external site. - guidelines for taking exams/quizzes
- http://www.cs.umd.edu/~nelson/classes/utilities/TakingExams.html Links to an external site. - how to prepare for and take exams
Fail fast, fail often
Starting with the latter - programming is a skill developed through repeated trial and error. Throughout the class, and in particular the programming projects in the class, you will learn to embrace failure as a normal part of learning and of the craft of programming. You will also learn how to try to set yourself up for failure (a counter-intuitive concept for people outside our field). This is a big part of testing, when you try to set up situations that may cause your program to fail in order to identify errors in your logic or code.
The motto "fail fast, fail often" is particularly applicable to programming. You will want to try out pieces of your code before it is complete to make sure that they do what you want the code to do, and fix errors as they become apparent. That way you will start by working on small, manageable chunks of code, and will also gain confidence as your code grows more complex, knowing that the intermediate versions worked correctly. We'll talk more in the class about testing and debugging of code, but I want you to be aware of this possibly new mindset you will have to get used to.
For some light reading about the positive power of failure see: http://www.newyorker.com/business/currency/fail-fast-fail-often-fail-everywhere Links to an external site.
Try and fail before asking for help
In preparation for exams students frequently ask me for sample exam questions, as well as the answers to those questions to help them study. Likewise, many students rush to office hours before having made an earnest effort to solve the problems in their code. Getting the help from a TA, or from the one correct answer provided on a sample exam can give you a false sense of accomplishment. Research in learning is suggesting that getting the answers before you have had the chance to struggle with the material may in fact diminish your long term ability to solve similar problems. See for example this blog post:
I, thus, encourage you to always try hard to solve the assignments in this class by yourself, and only resort to asking for help when you are truly stuck. It helps sometimes to 'sleep on' a problem - set it aside for a few hours or a day and try again with a fresh mind and possibly a new outlook on how you might solve it. You will quickly find out the power of struggle in helping you truly learn and understand the material presented in class. Note that in order to eventually succeed in this strategy you must start your assignments early. Assignments done at the last minute, even if successfully completed, contribute little if anything to your long term knowledge.
Take notes by hand
Many students have asked me to allow them to use laptops in class in order to take notes. I, myself, often take notes on my computer while attending conferences and meetings. Scientific evidence, however, is suggesting that sticking to low-tech approaches (taking notes with pen and paper) may actually be better. You can read one such article here: http://pss.sagepub.com/content/25/6/1159.full Links to an external site. . It appears that handwriting and the need to synthesize information involves more complex brain processes, ultimately leading to a better long term ability to recall information.
Don't use a laptop/phone/tablet unless required for class activities
Since I brought up laptops, you may have noticed that I have not banned their use in class, and I have even used them to do surveys and other activities. This, however, doesn't mean that the use of these devices in class for other distractions is OK (I often see students watching videos or playing games, when I observe my colleagues' classes). To ensure your attention I will ask you at times to put the screens down. Why? Research indicates that laptop use in class can have a negative impact not only on the student using the laptop (see below - you really can't multitask), but also on the students nearby. See some of this research here: http://www.sciencedirect.com/science/article/pii/S0360131512002254 Links to an external site. . Thus, before you open up that youtube page, think about your neighbors - you may already know the material, but your playing on the computer may affect their ability to learn.
You can't multitask
It might seem to you that quickly glancing at your facebook page, or checking last night's basketball scores during class will not be a big deal, especially as you are quite comfortable constantly switching context between email, facebook, working on assignments, and chatting with your highschool friends. Recent research, however, indicates that you are likely wrong. People simply cannot multitask effectively, and constant multitasking may actually have a detrimental effect on you. Here is a link to a summary of this research:
Manage your time well
Time management is a very tricky skill to master, but a very useful skill to have. This class is an opportunity to work towards developing this skill. Some specific recommendations:
- Take a few minutes after class to review the assignments assigned. In these few minutes you can get an idea of whether you truly understand what is asked of you, and also get a handle on the scope of the assignment.
- Plan out when you will work on the assignment. You have many other constraints on your time and they will undoubtedly take over unless you specifically allocate time to your assignment. Make sure you allow plenty of time before the due date. Also, whatever amount of time you estimate the assignment might take, multiply that by 3 to get a more realistic estimate (note: I do the same)