This week, the IMACS Blog visits with eIMACS student Shuli Jones. Shuli is one of our star students, having excelled in our university-level computer science courses since the 6th grade. She recently attained the highest score possible on the AP Computer Science A test exam as a high school freshman. A multitalented young lady with a passion for programming, Shuli is well on her way to a bright future.
Please tell our readers a little bit about yourself and what you enjoy doing.
My name is Shuli Jones. I’m fifteen years old, and I’m currently a sophomore in high school. In my spare time, I like to participate in a variety of activities: I love to read, I do archery recreationally, I’m part of a trivia team and a classics society at my school, and, of course, I love programming. I’m also interested in learning new languages, coding and otherwise!
You’ve done some amazing things already at a young age. Tell us about the accomplishments and experiences of which you are most proud.
In recent memory, the thing I am the most proud of is scoring a 5 on the AP Computer Science A test. I took it while still a freshman, so it was my first AP test and I was very nervous beforehand. However, eIMACS had prepared me unbelievably well, and that, combined with my own hard studying, meant the test was nowhere near as hard as I expected. When the results came in, both my parents and I were really pleased.
Something else I’m proud of is my performance in my school’s classics society. Every year in May, we participate in the Ontario Student Classics Conference. This is a three-day competition with numerous other schools that tests knowledge of Latin grammar and vocabulary, as well as Roman life, mythology, and history. For me, this was my biggest commitment during the school year, and it’s something that I love to do. I put in many, many hours of hard work studying and working on projects with my team members, and it paid off.
My team won the Phyllis Morgan Trophy for Overall Excellence, which is typically regarded as the "top" trophy at the conference. I won several individual awards in the Intermediate category (for those having taken two years of Latin): First in Pentathlon, for having the best overall score on the five main events (notably with a first in Latin Derivatives), and first in Latin Oral Reading. I was also part of a group of four students who came second in Quaerite Summa ("Reach for the Top"), which is a quiz-bowl style competition based solely on Roman life. It felt great to get recognition for my work on something I love so much.
How did you become interested in computer science?
When I was in sixth grade, I spent Spring Break at a Girls Learning Code camp. They had partnered with eIMACS to give away a scholarship for the first eIMACS programming course, University Computer Science I. To apply for the scholarship, I took the eIMACS Aptitude Test. The test was interesting and challenging, so my parents said they would sign me up for the course. From there, my interest only increased. I’ve taken three eIMACS courses now, and each one has introduced me to new programming languages, topics, and ideas.
What do you enjoy most about the eIMACS computer science courses?
I have to say, the thing that appeals to me the most about these courses is their rigor. I can tell a lot of care was put into creating them: the information is always laid out in a logical sequence, and the learning curve is perfect. Assignments are usually just the right difficulty level to leave me challenged but not frustrated. At the same time, the programming that I’m learning is very in-depth; I feel that I’m being prepared very well to succeed in the rest of the coding world. I especially liked the variety of languages that eIMACS introduced me to (Scheme, Haskell, Python and Java), as well as the focus on "good" programming and not just on getting things done.
What are some ways in which your eIMACS experience has had a positive effect on your academic and non-academic pursuits?
Completely thanks to the knowledge I gained from my eIMACS courses, this past summer I was offered my very first paid programming internship. It was a great opportunity to learn more about the outside world of programming (and the endless debugging that real coders must carry out!). The courses I’ve taken through eIMACS have also greatly increased my capacity for logical analysis and thought; I often find myself applying the programming principles I’ve learned to my schoolwork and assignments. Additionally, eIMACS has had a positive effect on my life overall. I’ve been participating in their courses for three years now, and they have broadened my mind and introduced me to new things I might never have experienced otherwise. I’m so happy that I chose to learn computer science through eIMACS.
What kinds of things do you see yourself doing in the future?
I’m not sure yet. I know that I want to work in a STEM field, and right now my thinking is that I’d like to do something with engineering — perhaps be a mechanical engineer? I want my job to be something that lets me create new things and leave my mark on the world. Whatever that may be, I know eIMACS has helped to prepare me by giving me a solid grounding in programming and logical thought.
As a homeschooled student, Shakthi could learn computer science anywhere. She chose IMACS. From 10th grade to 12th grade, Shakthi completed IMACS’ Modern Computer Science track, which includes University Computer Science I, University Computer Science II and AP Computer Science: Java Programming. Shakthi directly credits IMACS for her ability to deftly switch between various programming languages.
Shakthi’s multiple talents have earned her numerous honors. Original research in Number Theory propelled her and her teammates to the finals of the 2014 Siemens Competition in Math, Science & Technology where they won a $20,000 scholarship. Shakthi shines as a writer as well, having been named a 2015 YoungArts Winner in Poetry by the National YoungArts Foundation. As a high school student, she earned an "A" in UT Austin’s graduate-level course in Abstract Algebra.
Shakthi was accepted at Princeton, Harvard, UC Berkeley and UCLA and will attend Princeton where she plans to study theoretical math, creative writing and philosophy. She hopes to do research in some capacity throughout her career, either in academia or in a think-tank.
“I chose IMACS because it was thorough — it combined my predilection for theory and concept with rigor and practicality, both of which are needed to learn computer science well.”
Rachel began attending IMACS as a first grader. Homeschooled since third grade, she has always made time for IMACS in a busy schedule that revolved around competitive chess. While rising to the rank of #1 player in the US and #15 player in the world among girls under 14 and later attaining the title of Woman FIDE Master at just 16 years old, Rachel completed IMACS’ Advanced Math Enrichment and university-level courses in Computer Science and Logic for Mathematics.
As a high school student, Rachel earned A’s in multiple undergraduate math, science and computer science courses taken at Carnegie Mellon. She also scored a perfect 2400 on the SAT on her first attempt and earned 5′s on all of her Advanced Placement exams, including Computer Science A, Calculus BC, Statistics and Physics C.
Rachel chose Harvard, where she plans to major in Computer Science and Mathematics. She credits IMACS for motivating her to choose Computer Science as a major.
“IMACS fostered precisely the clear, logical thought processes necessary to succeed in advanced math and computer science classes. It is very important, both in math and computer science, to be able to think in an abstract manner, and I am grateful that IMACS prepared me very well.”
Related Blog Posts:
The "learn to code" movement has emphasized teaching computer programming to children, and so many parents are asking, "Which language should my child learn?" It’s easy to be overwhelmed by the myriad choices: Java, Python, Ruby, C++, Objective-C, and so on. Ten years ago, the list of languages would have been different, but the question would still have been the same. So instead of focusing on learning a particular language that is popular at the moment and wondering if it’s the "right" choice, consider that your child would benefit most from learning the fundamental concepts in computer science that are applicable across all programming languages. Understanding these foundational ideas well enables a person to problem-solve in any programming environment more effectively than knowing the rules of syntax for one particular language. It’s a lot like the craft of photography. If you’ve mastered the fundamentals — composition, lighting, exposure, etc. — then you’re in a much better position to take memorable photographs regardless of whether you’re handed a Canon, an iPhone, or a disposable camera. The same is true in computer science where computational thinking and the ability to learn are and always will be more highly valued than code manipulation. Besides, by the time your child is a working professional, it’s likely that a different set of languages, some not yet invented, will be in vogue. Wouldn’t it be better for him or her to have a timeless set of skills and abilities?
This month the IMACS Blog caught up with Azzara Nincevic, who has been a star student at IMACS for seven years now. Azzara enjoys reading, drawing, and classical ballet. Although she dances at least 12 hours per week and performs throughout the year, she always finds time for IMACS.
“When I began IMACS in first grade, I immediately loved it.” Azzara says. “Having taken an interest in math, I quickly learned the traditional material and was looking for more challenging enrichment. When I attended class at IMACS, all of the problems were thought-provoking.”
As a member of her school’s math team, Azzara attends competitions such as MATHCOUNTS and Mu Alpha Theta where her IMACS background has been an invaluable asset. As Azzara describes it, “The IMACS curriculum helped me to develop logical thinking skills and the ability to quickly solve math problems, which are key to succeeding at math competitions.”
“With the preparation that IMACS gave me, I was able to score a 5 on the AP® Computer Science exam as a seventh grader.”
While Azzara’s achievements in mathematics and ballet, by themselves, are enough to impress anyone, it’s her recent performance on the AP® Computer Science A exam that readers will recognize as a rare feat. Soon after starting IMACS Math Enrichment program, Azzara enrolled in our Computer Enrichment & Virtual Robotics class where she developed a great interest in programming. Over the years, she continued with IMACS University Computer Science (UCS) track, which culminates in our AP® Computer Science: Java Programming course.
AP® exams are typically administered to high school students, but at the time that Azzara was ready for APCS, she was only just entering seventh grade. That didn’t deter her. “After inquiring, my mom and I found out that there is no minimum age requirement for an AP® exam, so I registered. With the preparation that IMACS gave me, I was able to score a 5 on the AP® Computer Science exam as a seventh grader.”
With such a busy schedule, Azzara appreciates that one of the greatest benefits of IMACS is that the computer science and logic programs are accessible online and self-paced. “I was able to excel at my own pace and access the IMACS curriculum anytime and anywhere.”
What does the future hold for Azzara? “I am entering the eighth grade with a greater passion for and interest in math and computer science. IMACS made me realize that I would like to pursue computer science in college and after. The fundamental skills that I have learned in the UCS courses and the logical thinking skills I have learned in the Math Enrichment and Mathematical Logic courses give me the advantage I need to be successful. As such, I plan to continue with IMACS in the upcoming years.”
UPDATE, July 28, 2014: IMACS has completed the update of our AP® Computer Science: Java Programming course to include eight fully-elaborated labs that far exceed the minimum requirements of the College Board. IMACS’ Be Prepared for the AP® Computer Science Exam online course has been updated as well. Students who are enrolled directly through eIMACS in our AP® Computer Science: Java Programming online course receive free access to the Be Prepared course.
Following a recent review of the AP® Computer Science A course and exam, the College Board has decided to replace its case study requirement with a requirement to complete a minimum of 20 hours of hands-on lab experiences. This change, which will take effect for the 2014-2015 school year, is being implemented to more effectively support student learning of core concepts in computer science. IMACS continues to follow closely all communications from the College Board, as well as discussions within the APCS community, on the forthcoming changes and will act accordingly.
From the beginning, IMACS’s philosophy has been to emphasize computational thinking and mastery of foundational ideas in computer science. This approach is reflected in how our Curriculum Development Group has meticulously designed our CS courses and, more importantly, in the success our CS graduates find in college, graduate school and at top tech companies. As such, IMACS fully expects that our AP® Computer Science: Java Programming course will continue to exceed, as it always has, all of the College Board’s requirements and remain College Board-approved.
GridWorld Case Study
Since the 2007-2008 school year, AP® Computer Science A has used the GridWorld Case Study to reinforce lessons on object-oriented programming.* GridWorld provides Java code designed to simulate the behavior of objects (Rock, Flower, Bug and Critter) in a grid. Ground rules such as Rocks cannot move, Critters eat Flowers and Bugs move forward and turn 45 degrees if blocked are part of the initial set-up. Given these starting parameters, students then write additional code that extends these various classes of objects. A student’s understanding of computer science concepts in the context of the GridWorld code is then tested on the AP exam with one free-response question and a handful of multiple choice questions.
College Curriculum Study
In 2011, the College Board undertook a College Curriculum Study in which institutions of higher education were surveyed about the AP® Computer Science A course case study.^ Of the 117 institutions that responded, 91% said they were not likely to change their credit/placement policy for AP® CS A if questions on the case study were not included in the exam. About two-thirds of respondents rated the inclusion of a case study as not important or only somewhat important.
“Although case studies have important benefits, their size and complexity have constrained the AP® CS program in adapting to new course content and pedagogy.”
— AP® CS A Exploration of a Change from GridWorld to Labs
Clearly, GridWorld is now past its prime. As the College Board noted on its website, the case study requirement in AP® Computer Science A needed updating “to stay aligned with the most recent practices in the continually changing field of computer science.”
Labs, Labs, and More Labs
This March, the College Board plans to release details of three sample AP® Computer Science A labs as examples of how the new lab experience requirement may be implemented. One expectation is that their shorter length will make the labs easier to integrate into the course curriculum throughout the school year. Teachers and curriculum developers will have the flexibility to include sample labs or other comparable labs at points they feel are most relevant and pedagogically effective. It is also expected that the sample labs will be more connected to real-world situations, perhaps increasing student interest in taking the course and studying computer science.
Most importantly, labs are expected to support student learning of fundamental ideas in computer science. Whereas the case study questions on the current exam are tied heavily to the context of the GridWorld code, the 2015 AP® Computer Science A Exam will test a student’s understanding of core concepts that are reinforced by hands-on lab experience, not knowledge specific to any particular lab. As an educational institution that has always emphasized foundational concepts in CS over code manipulation skills in the programming language du jour, IMACS is pleased to see the College Board take this important step.
Learn how you can give your child an unfair advantage in computer science. To find an IMACS teaching center near you, visit www.imacs.org. Talented middle and high school students can take university-level computer science online through our eIMACS distance-learning division.
*For readers who may be unfamiliar with object-oriented programming, it’s an approach in which the programmer creates “objects” with specified attributes and behaviors as modular, reusable code.
Abstract reasoning ability entered the national conversation this year as the Common Core State Standards in mathematics were broadly implemented in the United States. In particular, one of the eight Standards for Mathematical Practice is to “reason abstractly and quantitatively.” The so-called STEM subjects — science, technology, engineering and math — are well-known for emphasizing this skill. Given that STEM-related fields are where most high-skilled job growth is predicted, today’s students would do well to develop their ability to think abstractly.
So what is abstract reasoning, and why is it so important? Let’s break it down: To reason is to use logic in piecing together information, usually with the goal of forming an inference or conclusion. Abstract simply means that this process is a thought-based exercise of the mind as opposed to being based in concrete experience. For example, if you know that ice melts at temperatures above 32°F, you can reason abstractly that an ice cube placed on the counter of your room temperature kitchen will melt. You don’t have to take an actual ice cube out of your freezer and observe it for an hour to arrive at this conclusion.
Of the subjects that you could study in order to develop strong abstract reasoning skills, computer science is a natural and practical choice, as well as being a highly creative and exciting area in which to learn and work. The programming aspect of computer science is well-known and is one area where abstract thinking matters a great deal. Programming, after all, is the creation of a set of instructions that a computer can follow to perform a specific task. Such tasks typically involve the manipulation of digital information, decidedly not the kind of stuff you can grab hold of to see how it reacts in the tangible world.
Learning to program well involves developing the ability to think logically and abstractly so that you can anticipate how the computer will react to the instructions you give. Great programmers are actually capable of writing simple code without having to check it with a computer because they have the ability to analyze processes in their minds. If you cannot think abstractly, you may still be able to get your code to “work” with trial-and-error tinkering, but that approach lacks the robustness needed to solve meaningful problems that tend to be more complex.
The rich experience of learning computer science, however, is so much more than coding. When you study computer science, you engage in computational thinking, in which logic, abstraction and creativity come together to help solve intellectually interesting problems. As Professor Jeannette Wing of Carnegie Mellon University argues in her seminal article* on the topic, computational thinking is a skill set from which everyone would benefit no matter their career path.
Why so? Because when you study computer science, your mind learns to grapple with high-level questions such as: How can existing information be used to deduce further information that will help solve the problem? How should a complex system be designed in order to maximize simplicity and usability? How can a complex problem be broken down into smaller pieces that are easier to solve? Can a common approach be devised to efficiently handle similar problems?
If these questions seem like they would be applicable in a wide variety of fields, STEM and non-STEM, it’s because they are. In essence, when you study computer science you learn the valuable skill of thinking abstractly like a computer scientist even if you don’t plan on becoming one.
*Wing, Jeannette M. “Computational Thinking.” Communications of the ACM 49:3 (March 2006) 33-35.
This month the IMACS Blog speaks with IMACS student, Fiona Brady. According to Fiona’s mom, Susan, “IMACS was the first time Fiona had encountered a community of teachers and learners who were excited to hear her ideas and creative ways of problem solving.” After the Brady family moved out of the area, Fiona continued taking courses through our distance-learning program, eIMACS.
Having studied University Computer Science and AP® Computer Science through eIMACS (and scoring a 5 on the AP® exam), Fiona was able to pick up the Python programming language* when she encountered it at a summer mathematics camp at the University of Chicago with students several years older than she.
For students as talented as Fiona, homeschooling and early college courses often make the most sense as they and their families seek educational options that provide enough challenge, flexibility and inspiration to help them reach their highest potential. Let’s hear what Fiona has to say about pursuing this path:
Please tell our readers a little about yourself.
I’m turning sixteen this fall and I’m in tenth grade. I’m a second degree black belt in Tae Kwon Do, and I enjoy figure skating and horseback riding. I don’t feel like this gives a real image of me, but there it is. I enjoy making things with cardboard and duct tape, but definitely not wallets. I’ve made my Halloween costumes for the last few years. The year before last, I was Medusa. I wore a snake hat that I built in my bedroom and needed to turn sideways to get out. I have since learned that on some occasions it is important to get dressed outside of your room. When I’m not doing math, I love reading.
You are homeschooled and also taking college classes at Northwestern University. What is it like to do both? How do you balance the academic workload, extracurriculars and time with friends and family?
Homeschooling is not like regular school because there is no large division between having fun and learning. So I don’t balance it. However, when I have a large assignment due, my mom probably doesn’t see me for two days. My extracurricular activities — skating, horseback riding and Tae Kwon Do — force me to do something active. I also enjoy volunteering at the barn where I ride because they work with children with special needs. Our three dogs keep me pretty busy too, especially my own puppy, Mole (named because the white fur around his nose made him resemble a star-nosed mole when I first got him).
What circumstances led you to take university classes?
I have always liked math, so I started taking more than one math class a year. In my eighth grade year I took five. After that, I sort of ran out of other options. I participate in the University of Chicago’s Young Scholars Program, which is led by Professor Paul Sally. He and others at Chicago gave me advice and helped to set up a meeting with the head of the Northwestern Math Department, Professor Mike Stein. Professor Stein gave me permission to sit in on the courses, and introduced me to the professors.
Which classes are you taking at Northwestern? How did your IMACS courses prepare you for those classes?
Last year I took a course on Abstract Algebra and one on Multivariable Calculus and Linear Algebra. This year I am taking Physics and Analysis. IMACS was the first place where I encountered the idea that to learn something you have to own it; that is, you have to be able to form a picture of it in your head, and you need to be able to construct it from basic principles. In the IMACS computer science classes I took, you really needed to do that, otherwise you would get lost in the middle of writing a program and forget what you were doing. IMACS Logic for Mathematics is a continuation of that because it is constructing the basic principles of mathematics, which are skipped over in most high school classes (but assumed to be known in college courses).
[Editor’s Note: Three years running, Fiona has received the award from the Northwestern Mathematics Department for outstanding achievement in mathematics by a high school student.]
What advice would you give to young students who are thinking about taking university classes before they officially enter college?
Ask your teacher questions. I’ve had people in classes ask me questions, instead of asking the teacher. That’s a really big mistake, and it’s an even worse mistake to make in college because the professors are amazing. One of the things I most admire about the professors I’ve had at Northwestern is the unshakably solid understanding they have of the material. Also, if your professor asks the class a question and you think you know the answer, you should raise your hand. Even if your answer is not correct, that just gives you the opportunity to ask a question and figure out what you don’t understand before you try to learn something that builds on it or have a test.
What do you see yourself doing in the future?
I have three more years before I go to college and I want to keep taking classes and learning more. Being a professor sounds like an interesting career. (Being a stuntman does, too, but I don’t think I’ll pursue that.)
*IMACS added Python to University Computer Science II in November 2012 after Fiona had completed the course.
This year IMACS celebrates 20 years of educating talented, young students in mathematics and computer science. In all this time, we have never wavered in our philosophy that providing children with a deep and strong foundation in logical reasoning would enable them to take on virtually any intellectual pursuit with ease and confidence.
In mathematics, we continue to receive regular confirmation of our approach. Recent IMACS graduates often write to tell us of how advanced they are compared to their college math classmates, even at elite universities. Non-IMACS students who were so deftly skilled at applying formulas and algorithms in high school suddenly found themselves in college turning to our graduates for help in proving why these formulas and algorithms worked. It seems this phenomenon is steadily growing in computer science.
As strong advocates of K-12 computer science education, we are heartened by the broad realization that teaching children about this amazing and empowering field is of great importance. At the same time, IMACS urges parents, educators, and policy makers to understand the difference between coding and computational thinking, as well as the consequences of promoting one path over the other. As CS education decisions are made, we must not repeat the ruinous mistakes of math education policy lest we end up with computationally illiterate generation after generation as well.
Learning to Code Isn’t Enough
In a recent article titled “Learning to Code Isn’t Enough,” computer scientist Shuchi Grover offered the most articulate and convincing argument we’ve read on the shortcomings of the “learn to code” craze. In particular, Ms. Grover notes that the cognitive benefits gained through the process of good programming often fail to develop in online coding academies:
“Decades of research with children suggests that young learners who may be programming don’t necessarily learn problem solving well, and many, in fact, struggle with algorithmic concepts especially if they are left to tinker in programming environments, or if the learning is not scaffolded and designed using the right problems and pedagogies.”
“While the fun features afforded by these programming environments make for great engagement, they often draw away focus to the artifacts, many of which employ relatively thin use of computational thinking.”
The IMACS Approach
At IMACS, we have taken a considerably different approach to teaching computer science than the trendy, new organizations. Most importantly, we focus on universal thinking and problem-solving skills. That’s really what any programming exercise comes down to: thinking clearly about how to solve a particular problem. As Ms. Grover points out:
“If the goal is to develop robust thinking skills while kids are being creative, collaborative, participatory and all that other good stuff, the focus of the learning needs to go beyond the tool, the syntax of a programming language and even the work products to the deeper thinking skills.”
In our introductory computer science classes, IMACS deliberately uses programming languages that have trivial amounts of easily-mastered syntax. As a result, our students are able to concentrate their mental energy on learning the core concepts in computer science instead of on memorizing rules of syntax. Rather than focusing narrowly on ideas that only apply to a specific environment, IMACS classes develop computational thinking skills that can be applied to any programming situation.
Learning to Think with Logo
Children may begin taking IMACS Computer Enrichment classes as early as 3rd grade. Computer Enrichment uses Logo, an easy-to-learn language with a strong graphical component, to introduce students to programming ideas. Using a language with graphical components allows even our youngest students to understand and master advanced programming and problem-solving techniques.
IMACS Computer Enrichment places a heavy emphasis on computational thinking — thinking about logic, thinking about processes, thinking about good design. (All this takes place in a fun-filled class that incorporates interesting puzzles and problems.) A working program is not the main goal; rather, it is understanding how and why a program works or doesn’t. With a firm foundation rooted in computational thinking, IMACS students as young as 11 or 12 are well-prepared to move up to our university-level classes in computer science.
University-Level Computer Science
The IMACS curriculum continues with our Modern Computer Science track comprised of three university-level classes. The first course, UCS1, teaches the fundamental principles of computer science using Scheme. Scheme’s expressive yet simple syntax allows students to focus on learning universal concepts applicable in any programming language, even future languages not yet invented.
The second course, UCS2, begins in Scheme, but by the end students are programming in Haskell and Python. One reason that we introduced these additional languages into UCS2 was to show our students just how easy it is for them to learn new languages given their solid foundation.
The third course is our College Board-approved Advanced Placement Computer Science course in Java. This summer IMACS will be updating our APCS course with a new section on how to write Android phone apps. Although app development is not part of the AP Computer Science curriculum, the new component will allow IMACS students to gain experience in developing real applications.
The IMACS Advantage
While it sounds impressive to say that students who complete the entire IMACS computer science curriculum will graduate with significant experience in five diverse programming languages, what matters is that they leave us with something even more highly-prized: the ability to succeed in virtually any coding environment. Incidentally, whether or not IMACS graduates go on to study or pursue careers in computer-related fields, they gain an unfair advantage over their peers throughout their lifetimes thanks to their unmatched ability to dissect problems and articulate solutions. IMACS CS alumni, we look forward to receiving your emails.
Did you know that eIMACS serves students in over 10 countries around the world? This week, our blog post features current student, Hossain Md. Jihad Turjo. Turjo is a talented 11th grader at Mastermind School in Dhaka, Bangladesh. In addition to excelling in his eIMACS courses, he has also earned top marks from other prestigious online programs for bright students, including Johns Hopkins Center for Talented Youth (CTY) and Stanford’s Education Program for Gifted Youth (EPGY). When not immersed in his studies, Turjo enjoys reading novels and has even had three published book reviews for CTY’s Imagine magazine:
• “Guns, Germs, and Steel: The Fates of Human Societies” by Jared Diamond
• “H.I.V.E.: Higher Institute of Villainous Education” by Mark Walden (Click on the ‘Preview’ button to read Turjo’s review.)
• “The Boy Who Harnessed The Wind” by William Kamkwamba and Bryan Mealer
How did you first become interested in computer science?
My first programming experience of any sort was at school in 8th grade – we had the basics of Visual Basic as part of our coursework curriculum. There were quite a few incidents which hooked me to programming during the six months or so that I had Information and Communication Technology (ICT) at school as part of my curriculum. An example of such a case would be when we were learning to program a calculator for adding numbers with the digits 0, 1 and 2. The “calculator” would have virtual “buttons” labeled +, 0, 1, 2 and =, and would have a screen for displaying the numbers typed in or the result.
Of course, the very thought was horrid to me – the numbers lacked 70% of the digits, and I could only do addition. At the moment, our teacher was not inclined to be very explorative either. So I decided I could do better, and pretty soon I had a calculator with all the digits, an operation display alongside a numbers display, all the operations instead of simply addition, and functions for taking nth roots, raising numbers to any exponent and reciprocating numbers.
That was the kind of small trivial thing that later snowballed into a massive interest in computer science and programming – and eIMACS was perfect for it.
Residing in Bangladesh, how did you find eIMACS, and what made you decide to take one of our online computer courses?
I found eIMACS while browsing the net for computer science courses that are on offer for young and talented students. So I made an inquiry about what courses might be on offer for me, considering that I was a complete amateur in the field of computer science. The next day, I spoke on the phone with a senior IMACS instructor who suggested that I start off with University Computer Science I, that apparently being a very good beginner’s course. So I took the Aptitude Test, managed a good enough score, and started the course that very day. I guess the main deciding factors in what made me choose eIMACS was the promptness and enthusiasm of the instructor’s reply, the fact that he offered to be my instructor even though I was a novice, and the course description on the IMACS Web site.
As a student who has taken or is taking several online courses in math and science from different vendors, how did your experience with eIMACS compare?
In addition to UCS1 from eIMACS, I have taken Honors Chemistry, Honors Biology, and AP Calculus BC from CTY and AP Physics C: Mechanics from EPGY. I am now continuing AP Statistics from Northwestern University’s Center for Talent Development (CTD).
The courses from eIMACS and CTY were all self-paced allowing me to work on the lessons and the tests at whatever time suited me most, contrasted against a fixed course in which lessons are taken by an instructor, normally during his office hours. That was a thing I really liked about eIMACS and CTY – the self-paced option, seeing that a fixed course would be extremely hard for me to keep up with due to the huge time zone gap. Also the quality of presentations for both the eIMACS and CTY courses was really high.
CTD’s AP Statistics course, which has been a satisfactory experience thus far, is next best, and then EPGY’s Mechanics course after that.
UCS1 from eIMACS is the clear winner when it comes to the best course among these. It started at a very basic level in a way that made it extremely easy for me, a novice to understand. I loved the user interface and the way computer science code was introduced to the rookie. The course got progressively more challenging and, I might add, more fun. An awesome thing about UCS1 was the way the tests were taken entirely online. I mean, it is kind of tedious to have to write out answers on a give question paper, scan it and then e-mail it, the way I did it with CTY. But given that one was a math course, where steps and working are extremely important, I guess that was the most suitable option for CTY.
As to instructor availability, I think it’s reasonable enough to say my IMACS instructor was the one I had the most contact with. He was simply more cheery, more communicative and more encouraging than my instructors from the other programs. I’m not saying the others didn’t have those qualities, but my IMACS instructor had it to a great extent.
UCS1 is taught using the programming language Scheme, whereas many introductory courses take students straight into Java, especially since the College Board’s Advanced Placement exam is currently in Java. What’s your view on the eIMACS approach?
I felt that UCS1 did an awesome job in introducing me to the field of computer science. The approach of using Scheme seems to me to be much better. I have seen Java code for web pages a few times, and it did look quite a degree more complex than Scheme. Hence I would say the IMACS approach in using a simpler language (simple is a relative term) as a beginning language is all the more effective for its simplicity. I found I was able to focus on learning the programming concepts instead of worrying about whether I was getting the syntax right. And if anyone was very interested in Java, they can always take the AP Computer Science course from IMACS. So I would say that the IMACS approach is a very effective method.
Your goal is to major in computer science at a US university. What would you like to do after that? Do you have a career vision in mind?
I would simply love to become a top programmer or “Head Game Designer” at someplace like Microsoft or Sega. There are some pretty awesome games out there and someday I want to be the one bringing to life better themes than those games did, coupled with a much better game-playing experience. Sky Target and The House of The Dead series are classics that are impossible to forget – both Sega productions. Someday I hope I can do better.
Older Posts »