Working with high school students is very straightforward. Kids in their mid to late teens are often focused and self-motivated to learn and perform. They are thinking about college and beyond, and usually have some goals in mind that they would like to achieve. Young children, however, are not as determined to plow through hours of mathematical tutelage as their older counterparts. They are substantially more disconnected from the real world and career ambitions. What usually occupies their minds on a regular basis is playing sports with their friends, video games, and sleepovers. In a word, their lives are primarily centered around "having fun." And that's a beautiful thing. In fact, I do what I do on a daily basis because I love having fun. It just so happens that my version of fun is teaching math.
Because younger children are carefree, unencumbered by concerns of college admissions and career goals, it can be a challenge to command their attention. But after working with countless fourth, fifth, and sixth graders in both group and one-on-one settings, I have developed an understanding of how to engage these young minds. Not only do my students work with me at a stellar pace, but they are excited for our sessions. They actually look forward to learning about math! And to be honest, I wouldn't want it any other way. I have fun when I teach, and I want my students to feel the same way.
Always Maintain A High Level Positivity – when working with kids, never let your positive attitude wane. It doesn't matter if you've had a rough week or got no sleep the night before. When you walk in those doors, it's game time. You must put on a super happy and positive face. If you're not positive, your kids will follow your example. This basic tenet is derived from our understanding of mirror neurons. Mirror neurons are the pieces of our brain that make us yawn from other yawns, frown when we encounter third party sadness, and smile when we are around jovial individuals. Essentially, people often mimic the mood and body language of those around them. If you are hunched over and overtly depressed, your kids will mirror that vibe. If, however, you smile and stay super positive throughout the lesson, your students will be much more likely to remain happy and eager to learn.
Keep Energy Levels At A Maximum – think about tutoring kids as part education, part entertainment. If your lesson begins to drag, your students will rest their heads on their hands and gradually zone out. Not an ideal mind frame for optimal knowledge absorption. Your goal should be to keep your kids active and engaged. Instead of allowing yourself to drift into a monotonous tone, speak with power and inflection. Use hand gestures whenever possible. If you keep your energy levels high, your kids will be energized as well.
Show Excitement For The Subject – when you sit down to teach children, you are asking them to give you their undivided attention. This whole process is much easier if your students are actually excited about the subject matter. The first step in engendering excitement is showing your own enthusiasm. After all, if you're not thrilled to be going through math problems, how can you expect your students to be? Get excited and broadcast it.
Intersperse The Lesson With Fun Conversations – for kids who are 9 through 11 years old, you need to keep the session lively. You can certainly accomplish a great deal of this with a positive attitude, loads of energy, and a healthy dose of enthusiasm. But those components alone will not carry the day. You need to connect with your kids. Accordingly, you need to take inventory of their interests. As the lesson rolls forward, take the time to bring up their topics of interest and engage them in a fun and interesting conversation. It will break up the lesson and rein in students who are potentially dozing off in the middle of the lesson. For example, some of my students share my interests in science, particularly astronomy. For them, I always make sure to mention any cool documentaries I have seen recently, and routinely ask about the latest fun facts that they have learned.
Joke Around – everybody likes to have fun. One of the most common ways that people bond and have fun is by joking around. Inject your lessons with jokes and humor whenever possible. Not only will this bring life into the session, but it will help forge the bond between you and your students. Once they see you as more than just a tutor, you will truly be able to make a solid impact on their education.
Nailing an 800 on the math portion of the SAT can be a tricky feat, even if you are steadfastly familiar with all of the requisite formulas and rules. A difficult problem can overwhelm even the most prepared individual come test day. Time constraints, test surroundings, and the overall weight of the exam can unnerve the most grounded students.
So what do you do when panic strikes and your mind draws a blank? How do you re-center yourself and charge forward with ferocity and confidence? What you do is this: write everything down from the problem. This is the most important part of the problem solving process. As you peruse the question, write down the pertinent data and establish relationships by setting up equations. This exercise will help you see solutions that were previously difficult to decipher.
As you work on practice tests and sample problems, you must work diligently to form a solid habit of writing down important bits of information as you plow through the SAT math section. To give you an example of what it means to "write everything down from the problem," I will explore the following three math questions in great detail. These in-depth explanations will give you an idea of what should be going through your brain every time you see a math problem. With practice, these thoughts and processes will manifest faster and faster until solving problems in this fashion becomes a reflexive response.
The average of 4 different integers is 75. If the largest integer is 90, what is the least possible value of the smallest integer?
The question then asks "what is the least possible value of the smallest integer?" This detail is a bit tricky to interpret, but we can reason this out fairly quickly. To get the smallest possible number, what needs to be true about the other two integers? They need to be as large as possible. Since 90 is the highest value for the integers, it makes sense to assign the other two variables to 90, right?
Therefore, the final answer is e.
Solution X is 10 percent alcohol by volume, and solution Y is 30 percent alcohol by volume. How many milliliters of solution Y must be added to 200 milliliters of solution X to create a solution that is 25 percent alcohol by volume?
Therefore, the answer is e.
On a certain multiple-choice test, 9 points are awarded for each correct answer, and 7 points are deducted for each incorrect or unanswered question. Sally received a total score of 0 points on the test. If the test has fewer than 30 questions, how many questions are on the test?
What this tells you is that the ratio of questions answered correctly and incorrectly must be 7 correct (X) to 9 incorrect (Y). This is very useful information. According to this ratio, the number of questions on the test must be some multiple of 16 (so that the 7 to 9 ratio can be preserved). For example, 7 right and 9 wrong would work, as would 14 right and 18 wrong.
Now comes the critical piece of information: the total number of questions must be less than 30. With this helpful tidbit, the only possibly choice is 16 questions.
I've read a number of test prep sites that recommend taking four or five practice SATs during the course of preparation. If you are sincerely shooting for excellence, this simply will not do you justice. The reason why 15 is such a powerful and practical number is because it is around this point where you truly hit your stride. I can't precisely explain why, I can only tell you that I've witnessed it over and over again. The tipping point generally occurs for students somewhere around the ninth or tenth test. It is at this mark of progress that students begin to feel at ease with the test format. After this point is reached, the remaining tests firm up any lingering weak spots and forge a stable and confident mindset. It simply works.
Of all the important academic exercises, none are as critical to your success as routine reading. Throughout your education, teachers will assign mounds of textbook reading in social studies, English, the sciences, and beyond. While it is imperative that you take your assignments seriously and blast through your requisite reading, that is simply the bare minimum. Your eventual goal should be to read as a pastime. Reading shouldn't solely be an activity guided by obligation, but one prompted by an organic desire.
Habits can come in two broad categories: good habits and bad habits. A few examples of good habits are (1) regular exercise routines, (2) diligent homework completion, and (3) well oiled cleaning rituals. Bad habits are things like (1) biting your nails, (2) eating junk food on a regular basis, (3) and playing four hours of video games per day. Habits, both good and bad, are formed the same exact way: via a feedback loop. It works like this: when you try an activity, it will either cause you pleasure or pain. Your brain then links that activity with the particular feedback.
So why have I gone through the trouble of explaining the mechanism behind habit formation? Because the goal of any ambitious young person should be to create a soundly ingrained habit of reading. Why? The benefits of reading are innumerable. First, regular reading is the surest way to boost your vocabulary. Reading different words in various contexts multiple times is the best way to learn their meanings and correct usage. Over a lengthy period of time, this method of learning words is far superior to rote memorization because it is more likely to engage the visual parts of your brain.
Second, reading will naturally bolster your writing ability. At the end of the day, learning to write is a very complex process. The English language has numerous idiosyncrasies and bizarre rules that are very difficult to master. But with enough reading, you will be able to learn these rules and nuances by osmosis. You will naturally develop a feel for what looks right. You will subconsciously know that a comma is out of place or that a period needs to be deployed to break up a lengthy sentence.
Finally, reading will massively boost your ability to… well, read. Reading is the fastest way for any person to absorb new information. That is why it is a staple of all educational disciplines. Most people speak at approximately 100-125 words per minute, whereas the average reading speed is around 300 words per minute. That's nearly three times more information via reading than listening to a lecture. Until scientists invent a way to upload information directly into our brains, reading is the optimal delivery vehicle for knowledge. The more you read, the faster and more efficient you will become.
Point made: reading is really important. But how exactly do you build in this habit of routine reading? Here's how.
My first piece of advice is this: "follow your bliss." This philosophically charged phrase was coined by Joseph Campbell, a famed scholar with an unbridled passion for the humanities. It's simple, elegant, and spot on advice for all walks of life. In essence, it is a straightforward directive to do what warms your heart and makes you happy. Translation: if you like science fiction, read science fiction. If you like fashion, read about fashion. Simply take inventory of your passions and choose books accordingly. This will make reading fun, and when things are fun, you tend do them more frequently.
My second piece of advice is to create a reward system in order to forge a strong habit. Remember the "cue -> activity -> reward" progression? The idea is to take advantage of this mechanism and use it to build a positive habit. It's all about inserting the right rewards for the right activities over and over until the habit has been formed. For example, every time you read for 30 minutes straight, give yourself a quick reward. This could be a brief intermission to play a favorite video game on your iPhone, or a few bites of your favorite food. The idea is to associate a reward with the activity of reading.
Once you put the reward in place, the cue (which is anything that makes you think about reading) will eventually trigger a craving to read. Once this habit is hardwired into your brain, you will naturally want to read in your spare time. It won't be a task that you will have to force upon yourself; instead, you will do it of your own volition. If you can reach this point, you will be well on your way to achieving academic excellence.
The "silly mistake" is quite possibly the most mischievous and irksome of the math demons. It is a sly beast that lurks in the deepest recesses of your mind, emerging only periodically to sully your scores in a most disturbing way. Because of its crafty nature, it is able to lull you into the false belief that your thorough understanding of mathematic concepts will keep you safe from its clutches. But, as I'm sure you know, "silly mistakes" afflict even the most soundly prepared students.
I don't care who you are, what your educational background is, or where you go to school… you have been a victim of "silly mistakes" at one time or another. The whole fiasco probably went down like this: you whizzed through an exam with utter confidence, only to receive a shocking and confusing grade. Why? Because you missed several questions that you were sure you had answered correctly. You glossed over some inane details that ended up costing you a slew of points despite your clear understanding of the concepts.
When it comes to standardized tests like the ACT and SAT, silly mistakes are just as costly as any deep conceptual misconstruing. Accordingly, it is imperative that you devote substantial resources to ensure that these mistakes are weeded out.
At the end of the day, extricating these little demons comes down to a few core principles and strategies. Here are five quick tips on how to tackle these nuisances once and for all.
Read Each Question Prompt Carefully - the most common source of errors is the misreading of test questions. When time constraints are a factor, you will likely be racing the clock, pushing your reading pace to its limits. While speedy reading is important, you must figure out where to draw the line between speed and accuracy. My advice is to read each question prompt slowly and carefully before jumping to the answers. If time warrants, I would take two passes through the prompt. The more certain you are of the actual contents of the question, the far less likely you will be to make a mistake.
Write Clearly And Neatly - As you work through problems on the mathematics section, you will be writing down notes and equations as you make your calculations. If you tend to write in a jumbled fashion, you will be setting yourself up for disaster. You need things to flow clearly and neatly from step to step so that you are able to properly decipher the right answer. A few tips for writing clearly are to (a) always write in straight lines, (b) progress downwards as you move forward with your work, (c) use clear handwriting, and (d) don't write too small. The most important factor to developing a solid habit of writing clearly and neatly is to practice. As such, make the extra effort to keep your daily homework neat and organized.
Master Time Management – as time begins to run out, you are more likely to make mistakes. Why? Because your speed will increase along with your anxiety, making you much more error prone. To counteract this natural tendency, make sure that your time management skills have been properly honed. The only way to accomplish that is to include many timed practice exams before the actual test. During the timed practice exams, keep an eye on where you are and how much time is left. The SAT math section, for example, has 54 questions that must be completed in 70 minutes. As you are going through the test, you can see how many problems you have finished at the 17.5-minute mark. Then, at the halfway mark, you can check your progress again. Keep in mind that you should ideally be more than halfway through the math section at 35 minutes because the math questions increase in difficulty as you move forward.
Verify The Question Number In Your Test Booklet Before Filling In Your Answer Sheet – there is nothing more frustrating than getting a question wrong because of a misplaced answer. But the solution to this problem is quite simple. All you need to do is get in the habit of verifying the question number each and every time. Most kids get accustomed to deriving and answer and then filling in the next empty row of bubbles on the answer sheet. That method can get you into trouble if you inadvertently skip a question. To be safe, always verify the question number.
Practice, Practice, Practice – the more exams you take, the less likely you will be to misread or miscalculate something. Every error on a practice test is a terrific learning opportunity. Those mistakes will be etched in your brain as constant reminders of what not to do in the future. The more of these practice tests that you rack up, the less likely you are to make mistakes on the real exam. Moreover, getting in substantial practice will calm your nerves come test day. Less anxiety = better overall performance.
Willpower is unique to humanity. It is the keystone characteristic that is directly responsible for our technological advancement over the last several hundred thousand years. Willpower can be defined as the capacity to restrain our impulses and resist temptation in order to maximize our long-term success. It is the expulsion of energy to fight off innate survival based urges to exponentially increase future advantages and benefits. It is the driving force behind all civilizations, and it is what prods humankind forward to learn and grow.
When we turn down a bite of cheesecake, step away from a mind numbing reality sitcom, or push off a nap to get some work done, the credit goes to willpower. It is this ghost like aura of control and discipline that we rely on to extend our existence and maximize our accomplishments. When we watch highly successful individuals exercise routinely, read voraciously, and work tirelessly, we are impressed with their ability to resist instant gratification. Most of us struggle to hold ourselves back from daily pleasures so as to work on self-improvement. But how do the chosen few make it happen? Are they the lucky recipients of steadfast genes, predisposed to adeptly control their yearnings better than the rest of us?
For many students who struggle with mathematics, having a sturdy level of willpower is the difference between finishing an assignment and turning in a half-hearted problem set. It is the difference between spending an extra hour and a half preparing for an exam, or merely skimming a chapter review the night before. In sum, it is the difference between excellence and mediocrity.
For students who truly enjoy mathematics, there is no war to wage. Math is fun, and homework will be done thoroughly and completely as a means of gratification. But for those students who have to fight urges to play video games, watch movies, skateboard, or read novels while trudging through their math homework, willpower is what will save the day.
Stay fueled up with healthy meals – using willpower has been shown to deplete levels of glucose in the brain. Since it can often require great effort to stave off temptation, it is recommended that students maintain a healthy and regular diet replete with nutrients. Healthy meals will give the willpower muscle the fuel it needs to operate at its highest levels.
Maintain a positive attitude – being happy and positive makes individuals far more able to employ their willpower. When students feel down or depressed, a common reaction is to dive into things that provide instant gratification. This could be an unhealthy meal, a lengthy break involving television or video games, or a long nap. Feeling happy and positive makes it much easier to stay on task.
Partake in a healthy number of extracurricular activities – the reason why participating in many activities is beneficial is because it exercises the willpower muscle. When students have obligations and commitments that cannot be avoided, it trains them to push off their fleeting desires to focus on something in particular. Enrolling children in piano lessons and karate isn't to make them professional musicians or seasoned MMA fighters. The most important aspect of extracurricular involvement is the development of strong willpower, something that will be applicable and useful during school and beyond.
Apply willpower sparingly and gradually – trying to hold back on too many things can spell disaster. If someone is attempting to stick to homework, avoid fatty foods, stop watching TV, and exercise regularly all at once, he will find it highly challenging. Why? Because his willpower will be depleted very quickly. This means that the end result will likely be failure on all fronts. Instead of overcommitting, students should pick something in particular to focus on. Once someone grows accustomed to a single task, that action will have morphed into a habit requiring very little effort to maintain. At this point, one can then deploy his willpower elsewhere.
Offer rewards each time a task is accomplished – every time a student successfully fights off temptation, he deserves a reward. Not only will this reinforce positive behavior, but it will help to rest and replenish the willpower muscle.
Let me guess… the question that is currently floating through your brain is as follows: what the heck is "math anxiety?" While it may sound bizarre and made up, math anxiety is an actual condition that is quite common amongst students. It is similar to other sorts of anxiety or fear a person might encounter when doing something that is personally terrifying such as public speaking, interacting with strangers, or being around scary animals. The symbols and the operations can feel overwhelming for some, and that can trigger a subsequent anxiety reaction that completely stifles one's brain and prevents a person from properly absorbing any material.
Math anxiety is a learned reaction. Students who have negative experiences with math early on tend to have bad emotions and limiting beliefs tied to mathematics. Once these reactions and beliefs are established, students will subconsciously return to those bad feelings whenever mathematics is brought up. When a student approaches math with low self-confidence, poor emotions, and an overall belief that he/she will be unable to grasp the concepts, the snowball of anxiety builds even more. The inevitable difficulty with the new concepts reinforces the limiting belief, and the student continues to feel stifled and defeated.
There are several underlying factors that provide excellent fuel for these negative emotions and beliefs to materialize. These are commonly held misnomers about the field of mathematics. First and foremost, there is the erroneous notion that math is a confusing, convoluted subject matter that is inherently difficult to grasp. Many people believe that the inability to understand math is normal, and that there are a chosen few that enjoy and understand mathematics (while the rest of the population must simply accept their poor understanding as an unlucky genetic trait).
There are other ridiculous misconceptions that cloud young students' minds. For example, there is a distasteful attitude in the U.S. that women are naturally less adept with mathematics than men. Parents and educators seem to promulgate the idea that below average mathematics skills are par for the course for female students. This is a toxic and utterly false belief, and the passive acceptance of this attitude furthers this nonsensical notion. My parents, for example, had a completely different perspective when raising my sister. My dad encouraged her throughout school and insisted that mathematical comprehension was of the utmost importance. Moreover, he cemented within her the belief that she could perform at the highest level if she chose to apply herself. As a result, she went on to earn an 800 on the math portion of the SAT, a 5 on both of her calculus AP exams, and a chemical engineering degree from MIT. Not too shabby. Yes, my sister is very bright, but a key component to her success was a proper mentality and a solid inner belief.
Finally, some people have the backwards notion that you are either creative or logical. If you fall into the former category, math will simply not be part of your repertoire. This is patently false. At the end of the day, math is a highly creative endeavor. It requires a great deal of complex thinking and clever manipulation that is completely creative in nature. If you look at music production and song writing, an activity that would most certainly be identified as a creative pursuit, there is a great deal of overlap with mathematics. Music is bound by mathematical rules that allow for all sorts of manipulation within the scope of major and minor scales. This is akin to variable manipulation in Algebra and Calculus. It's funny, but most people presume that an affinity for music comes with a general inability to understand math. Nothing could be further from the truth.
Yes, math anxiety is solvable, just like any other potentially debilitating self-limiting belief. Below are my top four suggestions for tackling this unsightly menace.
Seek To Understand The Concepts Behind The Formulas – most students who struggle with math attempt to memorize formulas and then apply them in a highly mechanical manner. While this approach might yield favorable results for easier problems, it falters when it comes to more difficult permutations. Instead of simply sticking to rote memorization, students should seek to understand the principles behind the formulas. For example, it is one thing recognize that a variable can be isolated by adding and subtracting variables and constants, but it is something entirely different to understand the concept that equations are like little seesaws that remain stable so long as you affect both sides equally. Doing something to one side will throw it off balance and topple it, but carefully modifying both sides of the equation proportionately allows one to manipulate the whole thing while preserving its integrity and message. Once this concept is firm in a student's mind, the application of the rules becomes much easier and more enjoyable.
Eradicate Self-Limiting Beliefs – if someone feel anxious when he/she sits down to tackle a math problem, it's likely because he/she thinks that math greatness is unattainable. Take my word for it… this is a false belief. But students can't just take my word for it; they need to actually internally accept the idea that they are capable of performing well in math. One awesome method (that some might denounce as hokey) is to adopt a math related mantra. A mantra is a positive saying that is to be repeated in one's head or out loud. For example, a sample mantra could be "I am awesome at math," or "I can understand anything." A student should choose one that resonates with him/her, and then repeat it several times when he/she begins a math assignment, starts an exam, or experiences any trouble working through math problems. The cool thing about mantras is that people can actually rewire their brains and extract their self-limiting beliefs with enough practice.
Get Extra Help – for those who feel stifled by mathematics, asking questions in class can create more anxiety and stress. Because struggling students often refrain from digging deeper in class, their progress and confidence are further hampered. If this is the case, the best solution is to get outside help. Working with a tutor or a teacher outside of the classroom creates a pressure free environment for the student to ask questions and have concepts explained in a carefully tailored manner. If the classroom setting is not working, a helping hand can slide everything neatly into place. Then, once the student's confidence is bolstered and he/she begins to feel comfortable, the extra help can eventually be removed.
Perform Practice Problems Before An Exam – the biggest mistake I see young students make is that they don't do practice problems before an exam. What is their preferred method of studying? They review the textbook and look over their notes the night before a big test. While that is a highly effective method of studying for most classes, this will not cut it for math. Not at all. Instead, students must develop a habit of doing a number of practice problems before an exam. This will not only uncover any problem areas and weaknesses, but it will serve to firm up concepts in a remarkable way. When it comes to math, only practice makes perfect.
So you just took a practice test and you're devastated by your results. You thought you would net more points, but lo and behold, your score is painfully below your expectations. Your math score is especially poor, but you've never been good at math. What is a good plan of action? Let the math score linger at a subpar level while focusing all of your energy on the verbal portion, right? Wrong.
First of all, even if you've historically done poorly in math, you can easily turn that around with a few months of devoted practice. Second, math is the area where you can see the most marked transformation as far as testing abilities. You can certainly improve your score in the verbal section, but the base of knowledge for both the writing and reading sections is far broader. The English language is highly complex, and it takes most of us a great many years before we learn and understand all the intricacies.
Math, in comparison, is much simpler. The rules and terms are significantly fewer in number, and trying to learn and apply the concepts in a short time period is much more realistic than memorizing a bunch of vocabulary words and mastering the breadth of grammatical nuances in existence. Don't get me wrong, you need to focus on the verbal section too, but my point is that you shouldn't write off the math portion as a lost cause. In fact, math is the area where you should double down on your study time. You will be amazed at what you can achieve if you prepare in the right manner. So how do you go about breaking your personal math barrier? Here's how.
Master Mental Math – yes, I'm aware that you can use a calculator on the SAT, but quick arithmetic skills will drastically augment your ability to succeed. Why? Because the SAT is administered under a serious time constraint. You will have 50 minutes to complete 44 multiple-choice questions and 20 minutes to complete 10 grid-in questions. That's not a lot of time. Having to refer to your calculator for basic arithmetic will unnecessarily impede your ability to race through the exam. Lack of quickness can spell disaster even if you are very familiar and comfortable with all of the concepts.
Memorize The Formulas And Rules Covered On The Exam – the SAT covers a finite universe of math. The core topics are as follows: (1) numbers and operations; (2) algebra and functions; (3) geometry and measurement; and (4) data analysis, statistics, and probability. The College Board provides candidates with a test prep book that reviews all of the pertinent concepts under these categories. You can go to your local library, check out the College Board's Official SAT Study Guide, and review these concepts for free. If you give yourself ample time to prepare, you can easily master all of the basic principals. This will ensure that you are at least capable of nailing each and every math problem.
Take A Prep Course – there is a very small percentage of people that can annihilate standardized tests without a prep course. Accordingly, I recommend that all students enroll in some course. The strategies and methods of each course are certainly helpful, but the key benefit is having a structured study plan. It is essential that you develop a rhythmic study routine that does not linger or falter. You need to review math concepts and go over practice problems in unison. Now, precisely which prep course you choose can vary depending on your budget, time constraint, and your current testing abilities. You should certainly shop around, from recognized names to private entities, to see which company or tutor is right for you.
Practice, Practice, Practice – there are loads of practice tests available for sale. You can purchase them at a bookstore or use the repository of practice exams at your chosen test prep company. Most tutoring and prep courses will have you take approximately three or four exams as part of the standard class, but I encourage you to take many, many more. When I prepared for the SAT, I took 15 practice tests. What's the benefit of taking so many practice exams? There are several. First, the SAT is standardized. This means that from year to year, while the precise material varies, the core subjects and concepts are constant. Translation: the more questions you see, the fewer curve balls can be thrown at you. With enough practice, you can familiarize yourself with the entire universe of possible question types. This will not only improve your test taking abilities, but it will bolster your confidence come test day. Second, practice problems make you exercise your brain in a critical manner. It's one thing to know a concept, but it's another thing to put that concept into use. The more practice you get, the more comfortable you will be with the concepts, and the more speed you will have when chugging through the math section. Finally, practicing thoroughly will expose your weak spots. You may think you know the entirety of the subject matter, but the practice tests will weed out your areas of uncertainty. I recommend that students take at least 10 practice exams.
Study Over The Summer – most kids wait until the school year to start preparing for the SAT. I highly recommend you get a jumpstart over the summer. High school curriculums are tough enough as they are, but adding on a rigorous study routine is a sure fire recipe for disaster. You will likely have to sacrifice either your schoolwork or your SAT preparation, neither of which is a good option. So, if you want to be ahead of the curve, sign up for a program that spans the summer and put in a solid effort. Take as many practice tests as you can, go over as much material as possible, and ask your tutors for the maximum amount of help.
Math can be a puzzling and often frustrating subject for students. Some pupils seem to effortlessly pluck A+'s from the heavens, while others grind away to earn average grades at best. Why the discrepancy? Are some brains simply predisposed to math success, while others are hopelessly misaligned? Of course not. If I believed that, I wouldn't be teaching math. So what's the deal? Why the blaring gap in math performance? One key factor is learning styles. Despite what your folks might say, people learn in different ways. Some students naturally thrive in standard Prussian style classroom settings; others, however, only truly soar in different environments that are better tailored to their particular strengths. If a student is struggling in math at school, it could be because the standard curriculum is not in sync with his/her learning style. This article will (1) run through the seven learning styles, (2) explain how to identify where students fit on the learning style spectrum, and (3) advise how to optimize math education accordingly.
Social learners prefer to learn in groups surrounded by other people. They are often charged up by the presence of their classmates, and usually derive energy from social interactions. They are the prototypical extroverts.
While learning math in a group setting can be difficult for many, folks who thrive in social environments are best served when surrounded by their peers. Working in teams to complete homework assignments and prep for exams can often charge the energy levels of a social learner. Moreover, creating a supportive network of caring classmates can help nurture an interpersonal child struggling to improve his/her grades.
Solitary learners thrive in isolation. They often do their best when working alone and using self-study. Reading books can be an especially effective learning vehicle for these individuals.
Solitary learners are usually folks that thrive in our modern education system. Their characteristics set them up nicely to achieve high marks in standard academia. But, however, to help an intrapersonal learner soar even higher, it is important to recognize that these students are designed to work alone and in isolation. So, finding a spot free of disturbances is often the first step to maximizing their abilities. In addition, it is useful to simply recognize that the majority of information they learn will usually be absorbed at home while studying (as opposed to in class during the lecture).
Verbal learners, as the name suggests, prefer learning with words in both speech and writing. These types of minds soak up knowledge through various mediums centered around language. Words naturally resonate with these folks.
For these folks, I recommend sitting down with a teacher or tutor after class to hear in depth explanations. While the material may not sink in during chalkboard lectures, verbal learners will be more likely to pick up math lessons that are conveyed in plain English. Words, after all, are their bread and butter when learning. They should steer clear of relying too heavily on symbols and drawings. Instead, they should seek word-based explanations, either written or oral, from a teacher.
Logical learners do their best when employing logic and reasoning. They are effective problem solvers and typically succeed with task-based learning. These minds often do well with standard math education.
Since logical minded people often enjoy games and puzzles, it makes sense to frame math problems in the same mantle. Now, I have always felt that math assignments are inherently similar to logic games or puzzles, and are naturally fun for folks who like these types of challenges. But, for the logical brains out there that still find it hard to enjoy their math homework, I recommend searching out math-based games. One decent website for such games is http://www.coolmath-games.com. In addition, I suggest employing rules during study time to make practice problems feel more like a game. For example, adding time constraints can make the practice problems feel more like a game. Additionally, keeping track of percentages and trying to beat out old scores is another way to make the process more fun.
Visual learners are specially built to use pictures and spatial tools. They learn well when lesson plans incorporate photos, videos, visual maps, and other pictorial based instructions.
For the mind that learns with pictures and images, I suggest infusing math education with loads of drawings related to each concept. They should be encouraged to draw out diagrams and use visual cues to ease memorization of various operations and theorems. In addition, they should color code their notes and study materials. This will help their visual brains organize and assimilate various pieces of information.
Aural learners are best equipped to understand and store information absorbed via sound and music. Their ears are particularly adept at deconstructing and parsing heavy mixes of tones. They will often do better with books on tape versus printed versions.
Many aural learners enjoy listening to music. I suggest that they play pleasant music in the background while learning mathematics. This will evoke positive emotions and stir up a bit of energy while working. Just make sure that the music is not overly distracting or played too loud. In addition, musical minded people should try to organize formulas and operations into musical patterns or rhymes. For example, coming up with a rhyme or melody to remember the quadratic equation would be more effective than simply attempting to remember the visual image of the formula. Finally, when reviewing notes and examples from the textbook, they should read aloud so as to stimulate their aural memory.
Physical learners learn best by touch and movement. A lot of superb athletes tend to fall into this category as physical processes and activities seem to sync well with their learning and memorizing capabilities.
For physical learners, devising a specially tailored strategy to approach math is a little trickier, but still doable. Since these types tend to learn best when active, it is important for them to stay in motion while studying. This could involve squeezing a stress ball while working, or simply taking a break every 20 or 30 minutes to walk around the room. Hands on models are terrific as well when applicable. If there is a tangible learning device that the student can actually touch and interact with, all the better.


After a busy Halloween, the witches can kick up their heels on a grass-topped cupcake. Mold the boots using the Halloween Candy Making Kit. It has everything needed to mold fun shapes for the season.
Create shoe: Use decorating brush or cut disposable bag and melted light cocoa candy from kit to paint or pipe buckle area of mold. Chill until firm.
Cut candy sticks into 2 in. pieces. Attach boot candy to candy stick with melted candy. Chill until firm.
Bake and cool cupcakes in black baking cups.
Tint buttercream icing green. Pipe pull-out grass on cupcake tops using tip 233 and green icing.
Position a boot candy on each cupcake top.


A recent study, published in the journal Conservation Biology, reveals that the investments and resources allotted for conservation only partially tally with the levels of biodiversity in the European Union. Thus, countries such as Portugal, Slovakia, Greece and the Czech Republic receive less funding than they would be entitled to as per their biodiversity.
Researchers from the University of Castile-La Mancha, the University of New York (USA), the National Museum of Natural History, the University of Alcalá and the University of Helsinki (Finland) have analysed the correlations and inconsistencies between investments in conservation and the levels of biodiversity in the European Union.
"Due to the large spatial variation in the distribution of biodiversity and conservation needs on a continental scale, the instruments of the EU should guarantee that countries with greater levels of biodiversity obtain more funding and resources for conservation than other countries with lower levels," SINC was told by David Sánchez Fernández, expert from the University of Castile-La Mancha and co-author of the joint study published by the journal Conservation Biology.
For each of the member states, the study compares three indicators measuring investment in conservation (the funds received through LIFE projects, the area protected by the Natura 2000 network, and the area destined for agri-environmental measures), with three other indicators measuring the level of biodiversity -total richness of species, endemic species and species of communal interest- for eight different taxonomic groups: vascular plants, bryophytes, birds, mammals, amphibians, reptiles, continental fish, orthoptera and dragonflies.
In general, there is quite a close relationship between the investments in conservation and the biodiversity variables. Nevertheless, some disparities were found in countries which receive more or less investments than expected according to their levels of biodiversity.
For example, countries such as Portugal, Slovakia, Greece and the Czech Republic receive less funding than that which they would be entitled to in light of the biodiversity that they harbour, while the opposite is the case for countries such as the United Kingdom and Germany.
"Spain is, together with Italy, the country with the richest biodiversity in Europe and it also has lots of funding and resources. To be specific, it is the country with the greatest Natura 2000 network area and that which receives the most funding from LIFE projects. However, the amount of money for agri-environmental measures is somewhat less than what it should be in terms of its levels of biodiversity," explains Sánchez Fernández.
The two main European directives on conservation -the Birds Directive and the Habitats Directive- are those which indicate the main species to protect.. The issue lies in that the majority of species do not feature in these 'select' lists of species, particularly the lists of the groups representing most of the biodiversity, that is to say non-vascular plants and above all, invertebrates. "In short, the funding and resources go on a minority of species," the expert adds.
Another interesting result apparent from the study is that the extensive use of birds as unique indicators of the effectiveness of conservation can be unreliable, since the correlations between biodiversity and investment are greater than for the rest of the taxonomic groups studied.
In addition, bird species and their distributions are relatively well known, which means that they are used as the main group in the majority of conservation actions.
"They are, without doubt, the stars of conservation biology. This group has the most academics and enthusiasts. However, this does not imply that birds are good indicators of biodiversity. In other words, we are not able to get an idea of the patterns or threat of other taxonomic groups simply through studying birds," the researcher notes.
According to scientists, these results could be useful within the framework of the new biodiversity strategy to 2020 adopted by the European Commission, in which it is hoped that member states might favour a more efficient redistribution of funding for conservation.


Dramatic change is coming to the marketing-services industry, but it won't be driven by Madison Avenue, or by the industry leaders you read about in the trade pubs. Those firms, while necessary to meet the needs of larger enterprises (for now), are essentially irrelevant to the innovation that will transform the industry.
In the era of integrated services, the disruption will come from an unknown class of emerging hybrid firms. These agencies build scalable infrastructures that enable them to readily adapt their business models and services to changes in technology, consumer behavior and market demand.
Disruptive innovation is nothing new, but the rate at which it occurs has accelerated. Consider the case of Instagram. In 551 days (that's how long the company existed), a small team of engineers built a mobile photo-sharing application that was acquired by Facebook for $1 billion in cash and stock.
So how was this start-up, with 13 employees and no profit or revenue to speak of, able to do something that the industry's behemoths such as Eastman Kodak, Canon, Nikon and Olympus, among others, could not?
They had vision, a willingness to fail and a culture of innovation that drove them forward, all rare traits for traditional agencies.
The unknown is one of the most exciting things about being an entrepreneur. It's the adrenaline rush that comes from taking chances and venturing down the road less traveled. That is the disruptor agency advantage. These organizations, by their very nature, are risk takers. They thrive on change, easily tire of tradition, and pride themselves on their agility.
These emerging firms have less to lose than their larger, more conservative competitors. They are building new, hybrid agency models from the ground up. They don't have the restrictions of legacy systems or the internal politics that hinder change. They have flexibility in their pricing, lower overhead costs, and more dynamic and versatile talent.
Disruptors need to be willing to take risks the established agencies cannot or will not.
Meanwhile, traditional agencies must acknowledge that something is wrong, be willing to fix what is broken, and return to the ideas and inspirations that made them great. They have to think and act more like start-ups. They have to become disruptors themselves.


text:
Q: Dart anonymous function confusion I would like an explanation of anonymous functions in Dart and how are passed as arguments to other functions.
The example demonstrated below comes from the Write your first app of flutter.dev.
Widget _buildSuggestions() {
  return ListView.builder(
      padding: const EdgeInsets.all(16.0),
      itemBuilder:  (context, i) {
        if (i.isOdd) return Divider();

        final index = i ~/ 2;
        if (index >= _suggestions.length) {
          _suggestions.addAll(generateWordPairs().take(10));
        }
        return _buildRow(_suggestions[index]);
      });
}

The anonymous function here is the itemBuilder. Its type is {(BuildContext, int) → Widget itemBuilder}.
If its type was {() → Widget itemBuilder} I could understand that during runtime the body of the function will be executed. But now with the arguments I don't get how the BuildContext and int will be provided to the function.

A: In the constructor of the ListView you are passing a function, which the list view is going to hold onto, maybe as some instance variable called builderFunc. At some point in the future, the list view is going to be told to build and it will need to build its children. It's going to do this by calling builderFunc like this:
Widget jthChild = builderFunc(ctx, j);

where ctx and j are local variables in the scope of the caller (the method in ListView). builderFunc (your anonymous function) will construct and return the jth widget, using the build context passed to it by the list view. The list view will call your function multiple times with different values of j.

redpajama_set_name: RedPajamaStackExchange


Would you recommend Funxim Wireless Charging Pad to a friend?
Looks like an uncertified Alibaba product.
Why wait for this on Kickstarter, buy straight from the factory.
After delaying the shipping many times over, they completely ignored backer requests for refunds. The lucky few who did recieve complained of faults and fire hazards. 100%, avoid this.
Daniel Schwarz has never used this product.
The one thing people aren't remembering about charging pads is that we like actually USING our phone while it's charging.
@trulyadamant An awfully strong held opinion. I wouldn't say so. I'd say many people like to use their phone while it's charging. But okay--your solution is to have a charging mat wherever you may put your phone down so it's in a constant state of charge while you're not using it. Yes--in the future that will be the case. But right now--that's not in the cards for most users.
@arecenello I mean the threshold for having multiple Qi chargers in each room is decidedly lower than you seem to believe. I think I've spent maybe $90 tops in approved chargers and I've got mats and stands basically anywhere I might want to put my phone down. I mean we're talking about a pad meant to charge at a minimum $900 in electronics.
Awesome! For $29 this is a steal!
@frantzlight I just check out the alibaba link you posted, it just copied and paste the airpower pictures, so I think they are not real.
@brianlabarthe1 Is your product Qi Certified?
Interesting. Definitely more of these coming to market. Any plans for a wireless charger for 2 iPhone devices?


text:
Bairro da Matriz (In Portuguese it means Mother/First Church Quarter) is the historical neighbourhood of the Portuguese city of Póvoa de Varzim and part of the Matriz/Mariadeira district.

Bairro da Matriz was a significant settlement in the 14th century, whose nucleus was the centre, whence the modern city grew, being a neighbourhood composed by old single family homes.

History
In 1308, King Denis wrote a charter in which the King gave his royal land in Varzim to 54 local families; these would have to create a "Póvoa", a new settlement in Varzim, just south of the primitive Roman and Early Medieval core of the Town of Varzim, controlled by knights under a feudal structure. Praça Velha, the new civic center appears in this context, in the site of the "Póvoa Nova de Varzim" (The New Settlement of Varzim), which included the free fair, the town hall and a new church - the Madre Deus Church.

On February 18, 1743, the new First Church of Póvoa de Varzim started to be constructed near the town hall. By the end of the 18th century, it was noticeable that the Town Hall and the square were too small for an expanding urbanity, and the Royal Provision in 1791, created the Praça Nova (the New Square) where the new Town Hall was built.

Festivals

The main festivals of the neighbourhood are the Saint Anthony on June 13 in Cidral Square; Matriz's Saint Peter on June 29, Senhor do Bonfim in Nova Sintra area, and the Senhora das Dores festival on September 15.

Neighbourhoods of Póvoa de Varzim

redpajama_set_name: RedPajamaWikipedia


text:
Robert Downey Jnr set to host Youtube AI doco
YouTube Red is a paid streaming subscription service.
Robert Downey Jnr. is set to host their new documentary series.
Tony Stark was able to host this in a cave! With a box of scraps!
Youtube Red, Youtube's online streaming subscription service, has announced a new docuseries about Artificial Intelligence - and what better host than Tony Stark himself? Probably Ultron, IMHO. Anyway, considering neither of those dudes are real, Youtube have found a host in beloved actor and noted Tony Stark cosplayer Robert Downey Jnr. The as-yet-untitled eight part documentary will be produced by Susan Downey (who is also Robert Junior's wife).
"Robert and I share a curiosity for AI, a complicated and often polarizing subject," spoke Susan Downey. "Our aim is to explore AI through a lens of objectivity and accessibility, in a thoroughly bold, splashy, and entertaining way."
The show will be executive produced by Team Downey (Susan and Robert's production company) and will be a Youtube Red exclusive. YouTube Red is currently available in Australia, New Zealand, Mexico, South Korea, and the United States, with more countries to come.
It's yet to be seen whether the series will feature transhumanism, the internet of things or any recent developments in AI, but here's hopin'.
In the meantime, you can make sure your broadband is at optimal TV streaming level by clicking here.
Pictured: A Computer Keyboard (nyuck nyuck).
What's new on Netflix, Stan, Amazon Prime, Apple TV+, Disney+, Foxtel Now and Kayo in December?
While the non-ratings period is the entertainment wasteland of broadcast television, there's still plenty for Aussies to watch on streaming services when they're ready to kick back on the couch and settle into the summer holidays. The arrival of Disney+ and Apple TV+ made a splash last month, but now the pressure is on to keep us entertained.
China bans ABC's website
The Chinese goverment has confirmed that it has officially banned the ABC's website from being accessed in their country. Though there was initially no explanation for the censorship, a statement was eventually given to the ABC by an official from the Office of the Central Cyberspace Affairs Commision, citing that they have the right to take
Biohacker Fights Transport NSW Over Cyborg Rights
NSW seems to be the place for taking unprecedented ethical disputes to court. Besides legislators trying to hash out who will inherit your dank memes after you die, a Sydney bio-hacker has taken legal action against the New South Wales government for infringing upon his cyborg rights. Though this story is certainly a far cry from the sci-fi tales
Australia Lands World's First 5G Trial
Aussie, Aussie, Aussie! Australia has landed the world's first 5G public trial. The country's largest telco Telstra announced the switch that kicked off alongside the 2018 Commonwealth Games. Cited as the next generation of Wi-Fi, 5G networks are built from cutting-edge technology that promises to deliver faster speeds and better connectivity to

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: Writing to global or local memory increases kernel execution time by 10000 % I have the following OpenCL kernel:
kernel void ndft(
    global float *re, global float *im, int num_values,
    global float *spectrum_re, global float *spectrum_im,
    global float *spectrum_abs,
    global float *sin_array, global float *cos_array,
    float sqrt_num_values_reciprocal)
{
    // MATH MAGIC - DISREGARD FROM HERE -----------

    float x;
    float y;
    float sum_re = 0;
    float sum_im = 0;

    size_t thread_id = get_global_id(0);
    //size_t local_id = get_local_id(0);

    // num_values = 24 (live environment), 48 (test)
    for (int i = 0; i < num_values; i++)
    {
        x = cos_array[thread_id * num_values + i] * sqrt_num_values_reciprocal;
        y = sin_array[thread_id * num_values + i] * sqrt_num_values_reciprocal;
        sum_re = sum_re + re[i] * x + im[i] * y;
        sum_im = sum_im - re[i] * y + x * im[i];
    }

    // MATH MAGIC DONE ----------------------------

    //spectrum_re[thread_id] = sum_re;
    //spectrum_im[thread_id] = sum_im;
    //spectrum_abs[thread_id] = hypot(sum_re, sum_im);
    float asdf = hypot(sum_re, sum_im); // this is just a dummy calculation
}
Like this, the execution time is about 15 us (work group size = 567, 14 work groups, for a total of 7938 threads).
However, of course, I somehow need to retrieve the results of the operation, which is what the last few lines are for, (commented out). As soon as I perform a single of those memory operations (and it does not matter if spectrum_X is global, as in the example, or local), the exeuction time of the kernel increases to ~1.4 to 1.5 ms.
I thought the increase in execution time was some kind of fixed overhead, so I would just accumulate more data, so that the relative amount of time lost due to that effect minimizes. But when I double my number of threads (i. e. twice the amount of data), the execution time also doubles (to 2.8 ~ 3.0 ms).
I found out, that even if I only uncomment one of the those lines, I have the same execution time as if I uncommented all three. Even if I add a if (thread_id == 0) and run it, I have the same execution time. However, it is just way too slow this way (the upper limit for my application is about 30 us). It even perfoms about 5 times faster when I run it in ordinary C code on my CPU.
Now I am obviously doing something wrong but I am not sure where to start looking for a solution.

As I commented on talonmies' answer, I also did the following:
From the above code, I made the last 4 lines look like
//spectrum_re[thread_id] = sum_re;
//spectrum_im[thread_id] = sum_im;
spectrum_abs[thread_id] = hypot(sum_re, sum_im);
//float asdf = hypot(sum_re, sum_im);
As expected, execution time ~1.8 ms.
The generated assembler code for my system is:
//
// Generated by NVIDIA NVVM Compiler
// Compiler built on Tue Apr 03 12:42:39 2012 (1333449759)
// Driver
//

.version 3.0
.target sm_21, texmode_independent
.address_size 32

.entry ndft(
    .param .u32 .ptr .global .align 4 ndft_param_0,
    .param .u32 .ptr .global .align 4 ndft_param_1,
    .param .u32 ndft_param_2,
    .param .u32 .ptr .global .align 4 ndft_param_3,
    .param .u32 .ptr .global .align 4 ndft_param_4,
    .param .u32 .ptr .global .align 4 ndft_param_5,
    .param .u32 .ptr .global .align 4 ndft_param_6,
    .param .u32 .ptr .global .align 4 ndft_param_7,
    .param .f32 ndft_param_8
)
{
    .reg .f32   %f;
    .reg .pred  %p;
    .reg .s32   %r;

    ld.param.u32    %r3, [ndft_param_2];
    // inline asm
    mov.u32     %r18, %envreg3;
    // inline asm
    // inline asm
    mov.u32     %r19, %ntid.x;
    // inline asm
    // inline asm
    mov.u32     %r20, %ctaid.x;
    // inline asm
    // inline asm
    mov.u32     %r21, %tid.x;
    // inline asm
    add.s32     %r22, %r21, %r18;
    mad.lo.s32  %r11, %r20, %r19, %r22;
    setp.gt.s32     %p1, %r3, 0;
    @%p1 bra    BB0_2;

    mov.f32     %f46, 0f00000000;
    mov.f32     %f45, %f46;
    bra.uni     BB0_4;

BB0_2:
    ld.param.u32    %r38, [ndft_param_2];
    mul.lo.s32  %r27, %r38, %r11;
    shl.b32     %r28, %r27, 2;
    ld.param.u32    %r40, [ndft_param_6];
    add.s32     %r12, %r40, %r28;
    ld.param.u32    %r41, [ndft_param_7];
    add.s32     %r13, %r41, %r28;
    mov.f32     %f46, 0f00000000;
    mov.f32     %f45, %f46;
    mov.u32     %r43, 0;
    mov.u32     %r42, %r43;

BB0_3:
    add.s32     %r29, %r13, %r42;
    ld.global.f32   %f18, [%r29];
    ld.param.f32    %f44, [ndft_param_8];
    mul.f32     %f19, %f18, %f44;
    add.s32     %r30, %r12, %r42;
    ld.global.f32   %f20, [%r30];
    mul.f32     %f21, %f20, %f44;
    ld.param.u32    %r35, [ndft_param_0];
    add.s32     %r31, %r35, %r42;
    ld.global.f32   %f22, [%r31];
    fma.rn.f32  %f23, %f22, %f19, %f46;
    ld.param.u32    %r36, [ndft_param_1];
    add.s32     %r32, %r36, %r42;
    ld.global.f32   %f24, [%r32];
    fma.rn.f32  %f46, %f24, %f21, %f23;
    neg.f32     %f25, %f22;
    fma.rn.f32  %f26, %f25, %f21, %f45;
    fma.rn.f32  %f45, %f24, %f19, %f26;
    add.s32     %r42, %r42, 4;
    add.s32     %r43, %r43, 1;
    ld.param.u32    %r37, [ndft_param_2];
    setp.lt.s32     %p2, %r43, %r37;
    @%p2 bra    BB0_3;

BB0_4:
    // inline asm
    abs.f32     %f27, %f46;
    // inline asm
    // inline asm
    abs.f32     %f29, %f45;
    // inline asm
    setp.gt.f32     %p3, %f27, %f29;
    selp.f32    %f8, %f29, %f27, %p3;
    selp.f32    %f32, %f27, %f29, %p3;
    // inline asm
    abs.f32     %f31, %f32;
    // inline asm
    setp.gt.f32     %p4, %f31, 0f7E800000;
    mov.f32     %f47, %f32;
    @%p4 bra    BB0_6;

    mov.f32     %f48, %f8;
    bra.uni     BB0_7;

BB0_6:
    mov.f32     %f33, 0f3E800000;
    mul.rn.f32  %f10, %f8, %f33;
    mul.rn.f32  %f47, %f32, %f33;
    mov.f32     %f48, %f10;

BB0_7:
    mov.f32     %f13, %f48;
    // inline asm
    div.approx.f32  %f34, %f13, %f47;
    // inline asm
    mul.rn.f32  %f39, %f34, %f34;
    add.f32     %f38, %f39, 0f3F800000;
    // inline asm
    sqrt.approx.f32     %f37, %f38;      // <-- this is part of hypot()
    // inline asm
    mul.rn.f32  %f40, %f32, %f37;
    add.f32     %f41, %f32, %f8;
    setp.eq.f32     %p5, %f32, 0f00000000;
    selp.f32    %f42, %f41, %f40, %p5;
    setp.eq.f32     %p6, %f32, 0f7F800000;
    setp.eq.f32     %p7, %f8, 0f7F800000;
    or.pred     %p8, %p6, %p7;
    selp.f32    %f43, 0f7F800000, %f42, %p8;
    shl.b32     %r33, %r11, 2;
    ld.param.u32    %r39, [ndft_param_5];
    add.s32     %r34, %r39, %r33;
    st.global.f32   [%r34], %f43;    // <-- stores the hypot's result in spectrum_abs
    ret;
}

Indeed all my calculation operations are there - lots of adds/mults as well as a sqrt for the hypot function. From the above asm code, I removed the second last line:
st.global.f32  [%r34], %f43;
which is the line that actually stores the data in the global array spectrum_abs. Then I used clCreateProgramWithBinary and used the modified asm code file as input. Execution time went down to 20 us.

A: I would guess you are seeing the effects of compiler optimization.
The NVIDIA compiler is very aggressive at eliminating "dead code" which does not directly participate in a write to global memory. So in your kernel, if you don't write sum_re or sum_im, the compiler will optimize the whole computation loop (and probably everything else) and leave your with an empty kernel containing nothing more than a no-op. The 15 microsecond execution time you are seeing is mostly just kernel launch overhead and not much else. When you uncomment a global memory write, then the compiler leaves all the computation code in place, and you see the true execution time of your code.
So the real question you should probably be asking is how to optimize that kernel to reduce its execution time from the 1.5 milliseconds it currently takes towards your (very ambitous) 30 microsecond target.

Despite the skepticism expressed to the original answer, here is a complete repro case which supports the assertion that this is a compiler related effect:
#include <iostream>
#include <OpenCL/opencl.h>

size_t source_size;
const char * source_str =
"kernel void ndft(                                                                     \n" \
"    global float *re, global float *im, int num_values,                               \n" \
"    global float *spectrum_re, global float *spectrum_im,                             \n" \
"    global float *spectrum_abs,                                                       \n" \
"    global float *sin_array, global float *cos_array,                                 \n" \
"    float sqrt_num_values_reciprocal)                                                 \n" \
"{                                                                                \n" \
"    // MATH MAGIC - DISREGARD FROM HERE -----------                                   \n" \
"                                                                                \n" \
"    float x;                                                                          \n" \
"    float y;                                                                          \n" \
"    float sum_re = 0;                                                                 \n" \
"    float sum_im = 0;                                                                 \n" \
"                                                                                \n" \
"    size_t thread_id = get_global_id(0);                                              \n" \
"                                                                                \n" \
"    for (int i = 0; i < num_values; i++)                                              \n" \
"    {                                                                                \n" \
"        x = cos_array[thread_id * num_values + i] * sqrt_num_values_reciprocal;       \n" \
"        y = sin_array[thread_id * num_values + i] * sqrt_num_values_reciprocal;       \n" \
"        sum_re += re[i] * x + im[i] * y;                                              \n" \
"        sum_im -= re[i] * y + x * im[i];                                              \n" \
"    }                                                                                \n" \
"                                                                                \n" \
"    // MATH MAGIC DONE ----------------------------                                   \n" \
"                                                                                \n" \
"    //spectrum_re[thread_id] = sum_re;                                                \n" \
"    //spectrum_im[thread_id] = sum_im;                                                \n" \
"    //spectrum_abs[thread_id] = hypot(sum_re, sum_im);                                \n" \
"}                                                                                \n";

int main(void)
{
    int err;

    cl_device_id device_id;
    clGetDeviceIDs(NULL, CL_DEVICE_TYPE_GPU, 1, &device_id, NULL);
    cl_context context = clCreateContext(0, 1, &device_id, NULL, NULL, &err);
    cl_program program = clCreateProgramWithSource(context, 1, (const char **)&source_str, (const size_t *)&source_size, &err);

    err = clBuildProgram(program, 1, &device_id, NULL, NULL, NULL);

    cl_uint program_num_devices;
    clGetProgramInfo(program, CL_PROGRAM_NUM_DEVICES, sizeof(cl_uint), &program_num_devices, NULL);

    size_t * binaries_sizes = new size_t[program_num_devices];
    clGetProgramInfo( program, CL_PROGRAM_BINARY_SIZES, program_num_devices*sizeof(size_t), binaries_sizes, NULL);

    char **binaries = new char*[program_num_devices];
    for (size_t i = 0; i < program_num_devices; i++)
        binaries[i] = new char[binaries_sizes[i]+1];

    clGetProgramInfo(program, CL_PROGRAM_BINARIES, program_num_devices*sizeof(size_t), binaries, NULL);
    for (size_t i = 0; i < program_num_devices; i++)
    {
        binaries[i][binaries_sizes[i]] = '\0';
        std::cout << "Program " << i << ":" << std::endl;
        std::cout << binaries[i];
    }
    return 0;
}

When compiled and run, it emits the follow PTX code from the OpenCL runtime:
Program 0:
bplist00?^clBinaryDriver\clBinaryData_clBinaryVersionWCLH 1.0O!.version 1.5
.target sm_12
.target texmode_independent

.reg .b32  r<126>; /* define r0..125 */
.reg .b64  x<126>; /* define r0..125 */
.reg .b32  f<128>; /* define f0..127 */
.reg .pred p<32>; /* define p0..31 */
.reg .u32  sp;

.reg .b8   wb0,wb1,wb2,wb3; /* 8-bit write buffer */
.reg .b16  ws0,ws1,ws2,ws3; /* 16-bit write buffer */
.reg .b32  tb0,tb1,tb2,tb3; /* read tex buffer */
.reg .b64  vl0,vl1; /* 64-bit vector buffer */
.reg .b16  cvt16_0,cvt16_1; /* tmps for conversions */

.const .align 1 .b8 ndft_gid_base[52];
.local .align 16 .b8 ndft_stack[8];
.entry ndft(
    .param.b32 ndft_0  /* re */,
    .param.b32 ndft_1  /* im */,
    .param.b32 ndft_2  /* num_values */,
    .param.b32 ndft_3  /* spectrum_re */,
    .param.b32 ndft_4  /* spectrum_im */,
    .param.b32 ndft_5  /* spectrum_abs */,
    .param.b32 ndft_6  /* sin_array */,
    .param.b32 ndft_7  /* cos_array */,
    .param.f32 ndft_8  /* sqrt_num_values_reciprocal */
) {
    mov.u32 sp, ndft_stack;
    mov.u32 r0, 4294967295;
    ld.param.u32 r1, [ndft_2 + 0];
LBB1_1:
    add.u32 r0, r0, 1;
    setp.lt.s32 p0, r0, r1;
    @p0 bra LBB1_1;
LBB1_2:
    ret;
}

ie. a kernel stub containing none of the computation loop. When the three global memory writes in the last three lines of the kernel are uncommented, it emits this:
Program 0:
S.version 1.5inaryDriver\clBinaryData_clBinaryVersionWCLH 1.0O
.target sm_12
.target texmode_independent

.reg .b32  r<126>; /* define r0..125 */
.reg .b64  x<126>; /* define r0..125 */
.reg .b32  f<128>; /* define f0..127 */
.reg .pred p<32>; /* define p0..31 */
.reg .u32  sp;

.reg .b8   wb0,wb1,wb2,wb3; /* 8-bit write buffer */
.reg .b16  ws0,ws1,ws2,ws3; /* 16-bit write buffer */
.reg .b32  tb0,tb1,tb2,tb3; /* read tex buffer */
.reg .b64  vl0,vl1; /* 64-bit vector buffer */
.reg .b16  cvt16_0,cvt16_1; /* tmps for conversions */

.const .align 1 .b8 ndft_gid_base[52];
.local .align 16 .b8 ndft_stack[8];
.entry ndft(
    .param.b32 ndft_0  /* re */,
    .param.b32 ndft_1  /* im */,
    .param.b32 ndft_2  /* num_values */,
    .param.b32 ndft_3  /* spectrum_re */,
    .param.b32 ndft_4  /* spectrum_im */,
    .param.b32 ndft_5  /* spectrum_abs */,
    .param.b32 ndft_6  /* sin_array */,
    .param.b32 ndft_7  /* cos_array */,
    .param.f32 ndft_8  /* sqrt_num_values_reciprocal */
) {
    mov.u32 sp, ndft_stack;
    cvt.u32.u16 r0, %tid.x;
    cvt.u32.u16 r1, %ntid.x;
    cvt.u32.u16 r2, %ctaid.x;
    mad24.lo.u32 r0, r2, r1, r0;
    mov.u32 r1, 0;
    shl.b32 r2, r1, 2;
    mov.u32 r3, ndft_gid_base;
    add.u32 r2, r2, r3;
    ld.const.u32 r2, [r2 + 40];
    add.u32 r0, r0, r2;
    ld.param.u32 r2, [ndft_2 + 0];
    mul.lo.u32 r3, r0, r2;
    shl.b32 r3, r3, 2;
    mov.f32 f0, 0f00000000 /* 0.000000e+00 */;
    ld.param.f32 f1, [ndft_8 + 0];
    ld.param.u32 r4, [ndft_7 + 0];
    ld.param.u32 r5, [ndft_6 + 0];
    ld.param.u32 r6, [ndft_5 + 0];
    ld.param.u32 r7, [ndft_4 + 0];
    ld.param.u32 r8, [ndft_3 + 0];
    ld.param.u32 r9, [ndft_1 + 0];
    ld.param.u32 r10, [ndft_0 + 0];
    mov.u32 r11, r1;
    mov.f32 f2, f0;
LBB1_1:
    setp.ge.s32 p0, r11, r2;
    @!p0 bra    LBB1_7;
LBB1_2:
    shl.b32 r1, r0, 2;
    add.u32 r2, r8, r1;
    st.global.f32 [r2+0], f0;
    add.u32 r1, r7, r1;
    st.global.f32 [r1+0], f2;
    abs.f32 f1, f2;
    abs.f32 f0, f0;
    setp.gt.f32 p0, f0, f1;
    selp.f32 f2, f0, f1, p0;
    abs.f32 f3, f2;
    mov.f32 f4, 0f7E800000 /* 8.507059e+37 */;
    setp.gt.f32 p1, f3, f4;
    selp.f32 f0, f1, f0, p0;
    shl.b32 r0, r0, 2;
    add.u32 r0, r6, r0;
    @!p1 bra    LBB1_8;
LBB1_3:
    mul.rn.f32 f3, f2, 0f3E800000 /* 2.500000e-01 */;
    mul.rn.f32 f1, f0, 0f3E800000 /* 2.500000e-01 */;
LBB1_4:
    mov.f32 f4, 0f00000000 /* 0.000000e+00 */;
    setp.eq.f32 p0, f2, f4;
    @!p0 bra    LBB1_9;
LBB1_5:
    add.f32 f1, f2, f0;
LBB1_6:
    mov.f32 f3, 0f7F800000 /* inf */;
    setp.eq.f32 p0, f0, f3;
    setp.eq.f32 p1, f2, f3;
    or.pred p0, p1, p0;
    selp.f32 f0, f3, f1, p0;
    st.global.f32 [r0+0], f0;
    ret;
LBB1_7:
    add.u32 r12, r3, r1;
    add.u32 r13, r4, r12;
    ld.global.f32 f3, [r13+0];
    mul.rn.f32 f3, f3, f1;
    add.u32 r13, r9, r1;
    ld.global.f32 f4, [r13+0];
    mul.rn.f32 f5, f3, f4;
    add.u32 r12, r5, r12;
    ld.global.f32 f6, [r12+0];
    mul.rn.f32 f6, f6, f1;
    add.u32 r12, r10, r1;
    ld.global.f32 f7, [r12+0];
    mul.rn.f32 f8, f7, f6;
    add.f32 f5, f8, f5;
    sub.f32 f2, f2, f5;
    mul.rn.f32 f4, f4, f6;
    mul.rn.f32 f3, f7, f3;
    add.f32 f3, f3, f4;
    add.f32 f0, f0, f3;
    add.u32 r11, r11, 1;
    add.u32 r1, r1, 4;
    bra LBB1_1;
LBB1_8:
    mov.f32 f1, f0;
    mov.f32 f3, f2;
    bra LBB1_4;
LBB1_9:
    div.approx.f32 f1, f1, f3;
    mul.rn.f32 f1, f1, f1;
    add.f32 f1, f1, 0f3F800000 /* 1.000000e+00 */;
    sqrt.approx.ftz.f32 f1, f1;
    mul.rn.f32 f1, f2, f1;
    bra LBB1_6;
}

I think this is pretty irrefutable evidence that it is compiler optimisation which is causes the difference in runtime, and depends only on whether memory writes are included in the kernel code or not.

I guess the final question then becomes why this is so slow (irrespective of the debate about whether this is caused by compiler optimization or not). The 1.5 millisecond runtime you are seeing is a true reflection of the performance of the code and the real question is why. From my reading of your kernel code, the answer looks to lie in memory access patterns which are pretty horrible for the GPU. Inside the compute loop you have a two global memory reads with very large strides, like this one:
x = cos_array[thread_id * num_values + i] * sqrt_num_values_reciprocal;

According to the comment in your code num_values is either 24 or 48. That means the memory reads can't possibly coalesce, and the L1 cache on a Fermi GPU isn't going to be much help either. This will have a huge negative impact on memory bandwidth utilisation and make the code very slow. If you are stuck with that input data ordering, then a faster solution would be to use a warp to do the computation of a one output (so do a warp wide reduction to the final sum). This will reduce the read stride from 24 or 48 to 1 and coalesce the global memory reads from those two large input arrays.
Inside the loop there is also repeated fetches to global memory for either 24 or 48 elements of re and im:
    sum_re += re[i] * x + im[i] * y;
    sum_im -= re[i] * y + x * im[i];

This is unnecessary, and wastes a lot of global memory bandwidth or cache efficiency (the GPU doesn't have enough registers to let the compiler hold the whole of each array in register). It would be far better to have each work group read those two arrays into __local memory arrays once and use the local memory copy inside the compute loop. If you have each work group compute multiple times, rather than just once, then you can potentially save a lot of global memory bandwidth and amortise the initial read until it is almost free.


Call to help stop excessive use of deadly force!
Over the weekend, Sacramento County DA Anne Marie Schubert announced that the police officers that murdered Stephon Clark in his grandmother's backyard would not be charged. Stephon was unarmed and the father of two children. Stephon's family, and their coalition of supporters, would like to use this announcement as an opportunity to draw attention to the importance of AB 392 - the bill to change the police use of deadly force standard.
Please take a few moments today to call your state legislators in support of AB 392. Click below for a call script the phone numbers.
Indivisible Marin's new book club met last night for a discussion of " White Fragility: Why It's So Hard for White People to Talk About Racism" by Robin DiAngelo. This book challenged all of us to explore racism and our own role in it's powerful place in our local communities and the nation. Several participants led an important and timely discussion of the recent events in the Dixie School District in San Rafael regarding renaming the district and how they connect to many of the ideas in the book. We all felt we gained much insight into the systemic nature of racism and hopefully some skills in having the difficult conversations that are necessary to combat it- whether in our own neighborhoods, families, or in activism work.
In March we will be discussing activism and policy work and the ideas in George Lakoff's book "The ALL NEW Don't Think of an Elephant!: Know Your Values and Frame the Debate".
Please join us for another evening of great conversation on March 25th!
Our March Membership Meeting on Sunday March 10th will feature speaker Marc Levine, our state assemblyman. He will join us for a discussion of important legislation and issues that affect Marin and California, including bills that he has introduced this year focusing on gun reform, the environment, mental health and suicide prevention, as well as a Q and A. Our California legislature is leading in many state efforts to counter the Trump administration's agenda. Please join us as at this informative event!
Our book this month is "White Fragility: Why It's So Hard for White People to Talk About Racism"by Robin DiAngelo (Author) with a forward by Michael Eric Dyson (Foreword). This New York Times best-selling book explores the counterproductive reactions white people have when their assumptions about race are challenged, and how these reactions maintain racial inequality.
Click here to watch a short interview with the author.
Everyone is welcome and you do not need to have finished the book to attend. Please join us for conversation as we discuss the challenging issues in this important book.
Call our elected officials to stop the fake Trump emergency!
This past Friday, Trump declared a national emergency to get around Congress's decision to deny him the money he needs to build his border wall. We need to call our MoC's and let them know we find this unacceptable, and that they must use their power to block this illegal action. Even though we are confident, in our blue state and blue district, that they will vote this way, they do appreciate the calls so that they can use them in Washington to make statement and have leverage for their positions. Thank you!
Hi, my name is [NAME] and I'm a constituent from [CITY] and a member of [YOUR GROUP].
I'm calling today because I'm outraged at Trump's declaration of a national emergency. He is clearly abusing his power. The only emergency at our southern border is the human rights crisis created by separation of families and harsh treatment of immigrants. And Trump's redirection of funds appropriated by Congress to his pet wall project clearly violates the separation of powers under our Constitution. I expect all of my representatives to Congress to act immediately to challenge the emergency by using powers granted under the National Emergencies Act.
SASHA, Students Against Sexual Harassment and Assault, is based here in the Bay Area and works to fight sexual violence and harassment against young people, especially minorities, women, the disabled, and immigrants. They are currently developing an anti-violence curriculum for use in high schools. SASHA recently received a grant from The Pollination Project in Berkeley that will help them develop their organization. Indivisible Marin is pleased to support them in their important work. Please refer to the calendar page for information about their upcoming fundraiser gala!
Dan Pfeiffer's book "Yes we (Still) Can" was an informative book on why the Democrats lost in 2016, why Trump won and how the Democrats can win in 2020, written within a memoir of what it was like as a key player in President Obama's campaigns and later as his Communications Director and Senior Advisor.
Giving many examples, Pfeiffer states that the Republicans weaponized racial anxiety during the Obama's presidency, focusing fundamentally on white victimization; that the Republicans are incapable of working with Democrats and that confronting the Republicans with who they have become must be the key focus in 2020.
The media/fake news has been building for years with Breitbart, and other right wing platforms. Fox News is state run propaganda - not news by any definition. The media is "in the midst of a massive, rapid, disruptive transformation that is re-writing all the rules of politics and presidential communications." Trump is not the problem, but a symptom of the problem. Effective use of social media is key to winning. The focus of the news is no longer just to inform…. it is also to entertain and engage the public.
There are more Democrats in the population than Republicans. Our focus has to be on increasing the voter turnout, especially young people. Millennials will outnumber Boomers in 2019. Millennials won't vote for what's not right. We have to convince the blue-collar workers who voted for Obama to return to the Democrats by convincing them that in voting for Trump they voted against their economic interest vis-a-vis healthcare costs, income equality, jobs, clean air and water, infrastructure, etc.
Help improve the California Democratic Party by voting on 1/26!
Do you want a voice in decisions made by the California Democratic Party? Like who to endorse in for President in 2020, or for congressional races in California. Delegates also make endorsements on ballot measures and help decide and promote the Party agenda - all while representing our community.
If you want a voice in those decisions, please come vote for The Democrats United Slate on January 26. Susan Morgan, our founder and director, is running to be a delegate in our district and needs your support! RSVP here.
It's important to know that in the AD-10 Assembly Delegate Election Jan. 26, there are 2 slates of candidates running. While both slates support the same progressive values, such as the Green New Deal and Medicare For All, Democrats United is also committed to uniting and strengthening our Democratic Party so we can win elections to take back our country.
Arrive at UA Local 38 Plumbers & Pipefitters Hall, 3473 Santa Rosa Avenue in Santa Rosa between 10:30 AM - 12:45 PM to register (on-site voter registration available!) and cast your ballot for the Democrats United Slate. To vote, you must be a registered Democrat and resident of Assembly District 10 (Marc Levine's District) Please vote for each slate member plus Max Perrey twice - once for Delegate and once for Executive Board Representative.
Once you cast your ballot, you can leave. You can also stay for candidate speeches.
FOR TIGHT SCHEDULES: If you are short on time, you can arrive at 10:45 AM when the registration starts (but no later than 12:45 PM) to simply, register, vote and leave.
For more details and to support us online, please visit our Facebook page.
Sign up to participate in this project here.
In 2019 we will be partnering with Sister District Marin and the Sister District Action Network to send 30,740 voter education postcards in 3 waves on January 31st, April 24th, and July 1st (total of 92,220) encouraging low propensity voters to go vote on November 5th and educating them about how the state legislature affects them. They will be sent to three states with State Legislature votes taking place in 2019 - Mississippi, Louisiana, and Virginia. These races are very important to the upcoming restricting decisions that will take place following the 2020 census, as these decisions are made at the state level.
Sister District Action Network ('SDAN') is attempting to build on its postcarding experiments by investigating postcarding as a voter education tool early in the election cycle. This study achieves two important goals: first, we'll be able to begin to create relationships with potential Democratic voters in our target states and prime them for more political activity later in the cycle, and second, we'll be continuing our investigation into effective postcarding to help us refine our messaging and targeting.
SDAN is planning on continuing our exploration of postcarding by sending voter education postcards. Our previous postcarding experiments were focused on motivating people to return a voter registration form or to get out and vote nearer to the election. Our first study provided us with encouraging results, and we expect our second study to support these results once we can fully investigate the data. The GOTV postcard study results should be available in early Spring 2019 when the voter file from 2018 is released. This study will build on the first four by sending voter education postcards to low-medium likelihood voters who are highly likely to support Democrats to establish contact with these voters earlier in the cycle. We will use 3 waves of postcards to begin a dialogue with voters and prime them to be more open political messages and actions later in the election cycle. This initial postcard will educate voters about the election itself, the second postcard will educate voters about the issues Republicans have caused in these states, and the third postcard will educate voters about the ways Democrats will effectively address these issues if elected.
Our teams will be sending about 30,000 cards at the end of January to reach voters at the beginning of 2019 (should arrive in homes during the first week of February). An additional 15,000 people will not receive a postcard. .


text:
Q: How many spaceships has Doctor Who discovered in London? Doctor Who often seems to find spaceships buried under London (For example the Cyberman ship) or perhaps disguised as buildings in London, (I can think of two) or hidden in bedrooms in London.
How many spaceships has Doctor Who discovered in London, in the time period up to and including the 12th Doctor?


What effect does a delay in the time domain have in the frequency domain?
Improving spectrogram resolution in Python?
How do you calculate spectral flatness from an FFT?
What is the phase and magnitude response of white noise?
Why does spectral leakage arise in an FFT?
Lower frequencies stronger in FFT?
Why real part of FFT converts image into rotation + original?
What is a frequency bin?
What data should I use to test an FFT implementation, and what accuracy should I expect?
When to use the DTFT vs the DFT (and their inverses) in analysis?
Why do I have frequency leakage in DFT after zero padding if frequency resolution is fine?
Can you increase frequency resolution of FFT without increasing window size?
ADC performance simulation: How to calculate SINAD from FFT?
Discrete Fourier Transform: What is the DC Term really?


text:
es un barrio que se encuentra en la ciudad de Saitama, Prefectura de Saitama, Japón.

Según datos de 2003, tenía una población estimada de 109.580 habitantes y una densidad de 2.229,05 personas por km&sup2. El área total es de 49,16 km&sup2.

La ciudad fue fundada el 1 de julio de 1954.

Enlaces externos
 Página oficial en japonés

Localidades de Saitama