Archive for the ‘Computer Science’ tag
Computers are an everyday part of life. We use them constantly in our personal lives and in the workplace. According the the U.S. Bureau of Labor statistics, over 50% of jobs today require some level of technology skills. And, that percentage is expected to grow to almost 80% in the next ten years.
There’s no question that computer science skills are helping students succeed. But, computer science is about more than just learning to program. Students also need to learn how to think programmatically, to use programming as a problem-solving tool, and to understand the global impact of computer science and computing.
The most effective STEM programs include what are sometimes called the “Big Ideas” of computer science – foundational principles that are central to computing and help show students how computer science can change the world. Here’s a quick overview of some of the big ideas we think are important, and some tips on how you can incorporate them into your STEM Robotics or Computer Science classroom:
- Abstraction – Abstraction is a key problem-solving technique that we use in our everyday lives and that can be applied across disciplines and problems. Abstraction helps students manage complexity by reducing the information and details of a problem, allowing them to focus on the main idea. But how do you teach students abstraction?
One way is to Implement a project that start with a complex problem but uses mini-challenges to break the problem into smaller pieces. Have students solve the mini-challenges, focusing on one aspect of the problem at a time, and then use those mini-challenge solutions to build a final solution to the larger, more complex problem.
2. Algorithms – Algorithms are used to develop and express computational problems and they’re an important part of Computer Science. But, algorithmic thinking is a tool that students can apply across disciplines and problems. Algorithmic thinking means defining a series of ordered steps you can take to solve a problem. Therefore, it’s important that students learn how to not only develop algorithms, but to also learn how to express algorithms in language, connect problems to algorithmic solutions, and evaluate algorithms effectively and analytically.
Here’s one idea for introducing algorithms into your STEM Robotics or Computer Science classroom: Provide students with a list of numbers. Ask them to find the largest number and document the procedure they used. (This is also good pseudocode practice!) Next, tell students that they will be given a program that generates 10 random numbers between 0 and 30 and they will have to provide an algorithm to find the largest number from the list. Once students have generated the algorithm and seen it in action, discuss why the algorithm is valuable. While it may not be a big deal to find the largest number out of a group of 10, what if we increased the range of numbers from 0 to 10,000, and increased the amount of numbers from 10 to 1000? In a situation like that, an algorithm would be able to find the largest number much faster than a human.
To learn more about implementing computational thinking in your classroom, read our blog post from last month, “What is Computational Thinking and Why Should You Care?
4. Creativity – People often think that science and creativity are two terms that don’t belong together. However, that couldn’t be further from the truth. Innovation and creativity are at the heart of STEM and Computer Science. Along with programming skills, students need to learn how to think creatively and need to get comfortable with the creative process.
One great way to do this is by using structured problem-solving in your classroom. Structured problem-solving allows students to be creative, but within parameters. While students will still have opportunities to personalize their projects and justify their solutions, their creativity will still be structured. That way, teachers don’t have to worry about students constantly losing focus.
5. Data – This “Big Idea” revolves around the fact that data and information facilitate the creation of knowledge. Over the past 50 years, the tasks that we perform on a routine basis have gotten more and more complex. According to an analysis done by Frank Levy and Richard J. Murane, the amount that employees are asked to solve unstructured problems and acquire and make sense of new information has increased dramatically, by more than 40% .[i] Therefore, it’s important to teach students how to analyze and interpret data.
You can do this by having students use coordinate data to code precise movements. Or, ask students to design a short, school-appropriate survey to collect data and answer specific questions. Then, have students write a program to input and analyze their data and calculate basic descriptive statistics such as mean, mode, range, and frequency. You can also ask students to plot their data on a chart or graph, and identify subgroups within the dataset to explain response patterns. Finally ask students to draw conclusions or make generalizations from their data and present their results to the class.
6. Impact – Computers have had a global impact on the way we think and live. The way we work, play, collaborate, communicate, and do business has changed dramatically in recent years and will likely continue to change. It’s important for students to understand the global impact of computing in everyday life, and the numerous ways computing helps enable innovation in other fields.
One way to help students understand the impact of computer science is to use activities that involve things like the internet, cybersecurity, internet searches, and the power of programming within advertising. You can also create activities that ask students to connect their programming skills to content from other classes (science, math, etc.). Or, you can ask students to think about and report on the less obvious ways they use technology every day, such as making breakfast, driving in a car, using the self-checkout line at the grocery store, etc.
7. Precision – Programming is precise. It’s important for students to learn that a computer program will do exactly what they tell it to do. This is especially evident with robots. If you aren’t precise about what you tell your robots to do, they probably won’t do what you want. However, precision does not need to be complex. Even simple programming activities can require precise, thoughtful communication – How far should the robot move? How far should it turn?
Ultimately, we’re asking students to change the way they think about giving directions. So, a great activity is to have students create a set of instructions explaining how to do a task like following a recipe, drawing a house, or making a paper airplane. Have one student provide the instructions and a second student act as a robot, doing exactly what student #1 is telling him or her to do. Most times, it quickly becomes apparent that students have not fully considered the level of detail required for programming and that they need to be more precise with how they provide instructions.
If you’re looking for more ideas on how to integrate “Big Ideas” into your STEM classroom, we’ve embedded these “Big Ideas” into our research-based curriculum, which is available for free online, or through the purchase of a classroom edition that comes with the benefits of:
- Guaranteed Uptime – Keep your classroom up, even if your internet is down.
- Zero bandwidth requirements – 30 kids accessing the same curriculum can really slow things down.
- High Quality Support – Have a question or need help getting started? You’ll have access to our best-in-class support team.
- Individual curriculum access for each student or group – With individual access to the curriculum, students can move at the instructional pace that’s right for them.
Carnegie Mellon’s Center for Computational Thinking says that computational thinking is, “a way of solving problems, designing systems, and understanding human behavior that draws on concepts fundamental to computer science,” and that “to flourish in today’s world, computational thinking has to be a fundamental part of the way people think and understand the world.” But what does that really mean? Think of it this way: computational thinking is like a Swiss Army Knife for solving problems.
Programming as Problem Solving
Computational thinking may sound like it’s complex, but it’s a basic a problem-solving process that can be applied to any domain. This makes computational thinking an important skill for all students, and it’s why our curriculum is structured to teach students how to use computational thinking to be precise with their language, base their decisions on data, use a systematic way of thinking to recognize patterns and trends, and break down larger problems into smaller chunks that can be more easily solved.
Here’s a video from our Introduction to Programming for VEX IQ curriculum that explains the concept of breaking down problems and building them up, and then shows how to apply that concept to programming a robot.
Computational Thinking is Everywhere
Instead of simply consuming technology, computational thinking teaches students to use technology as a tool. With computational thinking, students learn a set of skills and a way of thinking that they can apply to technical and non-technical problems by:
- Applying computational strategies such as divide and conquer in any domain
- Matching computational tools and techniques to a problem
- Applying or adapt a computational tool or technique to a new use
- Recognizing an opportunity to use computation in a new way
- Understanding the power and limitations of computational tools and techniques
Students who develop proficiency in computational thinking also develop:
- Confidence in dealing with complexity
- Persistence in working with difficult problems
- Tolerance for ambiguity
- The ability to deal with open-ended problems
- The ability to communicate and work with others to achieve a common goal or solution
These dispositions and attitudes are all important for students interested in pursuing STEM careers, but they’re also important for any student who wants to be able to succeed in today’s digital, global economy.
If you’re still not sure how computational thinking is important to you or your students, consider this:
- A math student trying to decide whether they need to multiply, divide, add, or subtract in order to solve a word problem
- A writing student who is researching a topic and needs to take notes in an organized and structured way
- A science student trying to draw conclusions about an experiment
- A history student trying make comparisons between different historical periods
- A writing student trying to organize supporting details for a topic sentence
- A reading student trying to find evidence to support character traits within the text
- A math student trying to find a new way to solve a problem
- A music student trying to learn how read a new piece of music
These are all examples of how we apply computational thinking each day, whether it’s in math, science, the humanities, or the arts.
Computational Thinking in Your Classroom
If you’re looking for an easy way to add computational thinking to your classroom, both our VEX and LEGO curriculum include computational thinking as part of the students’ learning process. Our curriculum teaches computational thinking skills by:
- Immersing students in the problem-solving process, both individually and collaboratively
- Teaching students how to decompose problems and then apply that to larger tasks
- Providing students with opportunities to seek or explore different solutions
- Providing students with opportunities to apply computational thinking skills across different disciplines
If you’re looking for a low-cost way to work computational thinking into your classroom, check out Robot Virtual Worlds, a robotics simulation environment that can help you extend your STEM classroom by teaching kids to program, even if they don’t have access to a physical robot. With the Robot Virtual Worlds Curriculum Companion, you can use both our LEGO and VEX curriculum in your classroom, even if you don’t have access to physical robots.
We also recommend checking out:
We’re excited to give you an early look at the newest installment in our Robot Virtual Worlds series, coming out later this month: Atlantis Prime!
Based around the legendary Atlantean civilization, Atlantis Prime is designed to make connections between STEM and computing, while fostering students’ ability to interpret information presented as charts, graphs, maps, word problems, and diagrams. These skills are important to students’ college and career success, and are crucial factors in standardized tests like the Program for International Student Assessment (PISA).
In Atlantis Prime, students experience all their learning activities through an avatar they select. The avatar is a futuristic explorer trapped in the recently discovered remains of the ancient society of Atlantis. Students must make their way through the challenges as they explore what remains and find their way out!
Here’s what teachers are saying about the game:
“I like the use of and interpretation of graphs exercises. I like the way that the complexity builds as you progress through the game. I teach robotics and science at a STEAM middle school. This is a great program that blends science, math, engineering and technology.”- Paul, Fisher Middle School, South Carolina
“While I was playing the game, I had a few 8th graders come in to help me and observe to see if they would be interested in something like this. They thought it was great and would really like to try something like this in their science, math, or computer classes.” – Maureen, Notre Dame Academy, New York
- Challenges based on programming logic, puzzles, and games
- Player Customization and Online Badges
- Instructional CS-STEM assessments with student reports
- Introductory Programming with a drag-and-drop interface and interactive contextual help
- A comprehensive user guide to help you get started in your classroom
Be on the lookout for more info on Atlantis Prime later this month!
iCarnegie and Robomatter, two STEM Education solution providers, founded by researchers at Carnegie Mellon University, have merged to form a global Computer Science and STEM education solutions company. The mission of the new company is to make research-based STEM educational solutions accessible to every global classroom. The company’s vision is for all students to be technologically literate and computationally proficient as innovators competing in a global emerging economy.
iCarnegie and Robomatter have been partners in developing STEM education solutions for over 4 years, and the combined organization creates a uniquely differentiated company to meet the growing, global demand for high quality STEM education products. Our products will be a combination of our unique brands and attention to quality STEM teaching methods, rigorous curricula, certification, and educational technology to drive change in the globalized STEM classroom. Our classroom programs provide educators and students with a range of resources to accelerate STEM learning–from programmable technology, robot activity and virtual environments to pedagogic methodology, assessment tools and certification programs.
Our on-site (in Pittsburgh, PA) and online Summer Professional Development classes for VEX CORTEX, VEX IQ, and LEGO MINDSTORMS are filling up quickly. Register today to make sure you get into your preferred course (listed below!)
- Acquire new skills with technology and new ways to teach STEM with robotics using innovative pedagogy!
- No Prior Experience with Robotics or Programming required!
- Hands-On Experience with 36 Contact Hours!
- Learn directly from the curriculum and technology developers!
Here’s What People Are Saying After Our Trainings:
“You guys were fantastic! This was some of the most enjoyable and informative professional development I’ve ever attended. The instructor was incredibly knowledgeable and always willing to offer help when needed. I would recommend the Robotics Academy to any teacher that is wanting to get into robotics education.”
“I thought that just about every aspect of the sessions was valuable. As a person coming in with an almost zero knowledge base, I left feeling I had a strong sense of how things work and how I can immediately implement things in my classroom.”
“Instructors were great … this stands as one of the most enjoyable workshops/courses I have taken in a VERY long time. I learned a lot, I had a good time, I was challenged … what course could hope for a better outcome than this.”
Find out more at CMU Robotics Academy Professional Development!
VEX and VEX IQ
ROBOTC for VEX CORTEX
July 6 – 10, 2015
July 27 – 31, 2015
ROBOTC for VEX IQ
June 22 – 26, 2015
July 13 – 17, 2015
ROBOTC Online Training for VEX CORTEX
June 22 – 26, 2015
Monday-Friday for 1 week
3 – 5pm EDT (12 – 3pm PDT)
ROBOTC Online Training for VEX IQ
Jul 6 – 10, 2015
Monday-Friday for 1 week
3 – 5pm EDT (12 – 3pm PDT)
ROBOTC for LEGO
June 29 – July 3, 2015
July 20- 24, 2015
ROBOTC Online Training for LEGO
Jul 13 – 17, 2015
Monday-Friday for 1 week
3 – 5pm EDT (12 – 3pm PDT)
My name is Ringo Dingrando and I teach Robotics and Physics at International School Manila in the Philippines. For the past three years, high school students have been inquiring into how to program using ROBOTC and how to use their programming skills to build robots, often with VEX hardware. In the classroom, most of my students learn the basics through some great online tutorial videos and by teaching each other. They can then try their code out on virtual robots by using Robot Virtual Worlds software. This code is then modified and put onto a physical robot that they build themselves.
This has led to quick progress in the classroom, but it is in our after-school Robotics Club where the benefits of this are becoming more visible. Students in the club needed a venue to showcase their creative robots, and so we developed Robolution. This is a daylong event in which ISM students in elementary, middle, and high school are given the opportunity to showcase the creations they have been working on in the previous month.
We recently completed our second annual Robolution and the results were spectacular. Some of the highlights included a life-size robot arm controlled in “Iron Man” style, an air-powered pong game, and a ping-pong launching device. (Check out the video links!) Design Tech students were wowing the audience by demonstrating the capabilities of one of our 3D printers. Students in the middle school robotics program showed off their Lego Mindstorm robots with highlights such as a Rubik’s Cube solver, a spinner factory, and a stair-climber. Elementary school students taught letters and numbers via Bee Bots and showcased their programming prowess through interactive Scratch games.
Robolution was a fantastic learning experience because it promoted programming, design thinking, and creativity. Almost a thousand people in the ISM community were exposed to the awesomeness of robotics. I fully expect that a year from now I’ll be sharing even more amazing results from our 3rd Annual Robolution.
After last summer’s on-site training at Carnegie Mellon Robotics Academy, Palisades Middle School’s technology and computer teachers initiated semester STEM units featuring the VEX Cortex Clawbot, Robot Virtual Worlds software, and ROBOTC programming. 8th grade students now experience how to build and program a robot through collaborative teamwork.
In technology class groups of students learn about robotic systems and mechanics by building and remotely controlling a VEX Clawbot. In computer class students program the VEX Cortex Clawbot in a virtual, immersive environment using Robot Virtual Worlds software and through coursework provided by Carnegie Mellon Robotics Academy’s CS2N Moodle-based learning management system. By combining their knowledge and skills in groups, students will ultimately compete using autonomous and remote-control programming in a class competition called, “Tic Tech Toe”.
Julia, 8th grade middle school student
I attend Palisades Middle School and am in the 8th grade. I love how both our computer and technology class are combined. Being brand new to the whole experience of robotics, finding new ways to use technology educationally is something that really intrigues me. Currently I am in computer class and cannot compare it to anything else. Overall, the atmosphere and supportive people make this experience fun and worthwhile. It has introduced me to concepts that I didn’t even know were possible and are very educational. For example, I have recently learned to use a very cool program called ROBOTC. Basically, ROBOTC is a program which allows you to give your robot “tasks”. In my computer class we have been doing this quite a bit and I just love everything about it. Its a new and educational way for students to learn programming. My learning this at a young age really builds success for the future.
Lydia, 8th grade middle school student
Our technology and computer classes joined together while working on robotics. I really enjoyed being able to create and program robots. In our tech class each student was assigned a partner to build a robot and race it in a competition against fellow classmates. Our computer class involved robotic programming.We learned how to compile and download programs to a virtual robot and complete different challenges. This program was so much fun and I really enjoyed how we got to experience both “hands-on” and “hands-off” learning.
Making Robotics Real for Students
There is a real advantage in learning how to program in a virtual environment. Most programming courses offer 2-dimensional “Hello World” feedback. Robot Virtual Worlds gives students immediate 3-D feedback and opens their eyes to real-world programming applications. We have been pleasantly surprised with how students respond with interest to learning how to program when it’s presented in this context.
Robot Virtual Worlds also offers an engaging method of project-oriented learning involving challenges. Students don’t just program the robot to move, they learn what it would be like to manipulate a robot through various simulated environments. These environments called “worlds” could be a space mission, tropical island, or could even be student-designed obstacle field. These worlds have been effective in stimulating interest and maintaining learner engagement.
In addition to the classroom experience, our first semester students also visited a local robotics company and learned first-hand how their robotics experiences have real-world relevance. Students were given the opportunity to see actual robots in development and other related technologies. This visit got the student’s attention, providing them with a better understanding of potential opportunities in engineering and programming.
We are anxious to continue this collaborative program. There was an initial investment in training, software, and hardware, but we feel that the return for the students is well worth it. In sharing our classes and resources, students are learning about information and machine technology in a unique way. We hope that this transfers over into their continuing studies and even future careers.
Jason McKenna, from the Hopewell Area School District outside of Pittsburgh, PA, writes about his experience in the classroom with the new Robot Virtual World game, VEX IQ Beltway. Check it out below …
The new VEX IQ virtual game Beltway is a great way to challenge your students to apply the basics of ROBOTC programming while also asking them to come up with unique strategies to try to score as many points in the 2 minute game as possible. My students just spent about 3 weeks working on the challenge and trying to score the highest score as possible. The students had an absolute blast and as a teacher, it was great seeing all the different ways the students tried to tackle this completely open-ended challenge.
The objective in Beltway is the same as VEX IQ Highrise: program your VEX IQ robot to autonomously score as many cubes as possible during a 2 minute period. With Beltway, a conveyor belt has been added around the perimeter of the game field in order to assist with game play. Additionally, the virtual environment utilizes “magic stacking” meaning that the cubes automatically jump onto the stack when they are placed onto of the stacking cube regardless of the apparent size of the robot. The conveyor belt reduces the accumulation of error, where, for example, a robot’s slight error in one turn becomes a larger error when the robot repeats that same turn 4 or 5 times. Any time students attempt a long program with many different elements they will at some point become frustrated with the accumulation of error that occurs. Magic stacking and the large margin of error that enables easy pickup of cubes eliminates any frustration that the students may encounter as try to pick up cubes and then stack them. These elements of gameplay in Beltway allow students to focus on their strategy, and it also allows them to try to experiment with many different scoring methods because they are not spending a lot of time programming perfect 90 degree turns and aligning their robots perfectly to pick up a cube. You can click here for a more extensive list of rules and information about gameplay!
Beltway comes with a variety of sample programs that students can use to help them get started or as a reference as they adjust their strategies. For example, if students decided that they wanted to control the conveyer belt manually, they could refer to a sample program to see how that is done. I did that many times while monitoring the students. After a few days, the students aren’t repeatedly raising their hands; instead, they just refer to the sample programs for guidance.
The game also served as a great tool to teach beginning programmers the utility of comments. Oftentimes, beginners don’t make programs quite as long as the ones they will make for Beltway. Students quickly saw the need to point out what was going on in their code with comments so they could go back to those sections and make whatever adjustments they wanted as they progressed with their gameplay.
As I stated earlier, my students had a lot of fun while playing Beltway. It is not easy to keep students’ interest level high in an activity that takes 3 weeks. The students maintained their level of interest and they consistently asked to stay after school to work on their programs some more. We had an in-class competition where the students ran their final programs. The winning team scored the winning points as the timer, literally, went to zero. It was pandemonium in my room. Kids were high-fiving each other, cheering, and remarking at how awesome the competition turned out. Students were also talking about the different strategies that the other teams used and how they could change their programs based upon what they had just seen.
So now, of course, the students want to play some more. This is great because now I can use that as an opportunity to show students how they can take some of the code that they used over and over again (for example, picking up cubes) and show them how they can use full ROBOTC to turn those behaviors into functions. Beltway has proven to be both a great teaching and learning tool in my classroom.
- Jason McKenna
We recently asked a group of engineering students from the University of Aalborg in Denmark to write about their experience using ROBOTC on a recent project. Check it out below!
Hi all! We are 6 software engineering students from the University of Aalborg in Denmark. As part of our Bachelor’s degree, we had to design and implement an embedded system, and we chose to design and implement a robot that would solve the Simultaneous Localization And Mapping (SLAM) problem. We called the robot ColumBot.
The hardware we were issued were LEGO NXT bricks and sensors as well as a few from MindSensors. MindSensors provided libraries for use with ROBOTC, which was one of the reasons why we ended up choosing ROBOTC as our IDE.
Work in Aalborg is group-based and many of the other groups spent the first weeks trying to get their NXT bricks set up for the firmwares they were using, but ROBOTC allowed us to have the part of the project kept to a minimum. ROBOTC provided us with a strong and versatile tool in solving our project, and was of great help.
Using ROBOTC, we were able to implement a mapping robot with a drive queue, with enough memory for 100m2, as well as a particle filter to correct the inaccuracies that arose from sensing when mapping. All this functionality was scheduled using a real time scheduling scheme. We do not believe this would have been possible with some of the IDEs used by the other groups.
ROBOTC has its quirks, namely much of the documentation is faulty. [Editor’s Note: ROBOTC recently went through a complete documentation overhaul to address issues like these – take a look at our help docs here.] As the focus of our project was to fit as much functionality as possible into the limited space, this problem mainly arose with the sizes of different types, where the documentation deviated from the reality. But the community is fantastic and many answers to difficult questions were found in the forums during the project period. The most useful features in our project were the Bluetooth Communication and the Debug Stream, which allowed us to monitor the robot remotely and communicate with it.
We would recommend ROBOTC to anyone attempting a build of the same size as ours, but advice you to be wary and test things for yourself, because this was sometimes a problem for us.
Check out one of our test runs here:
4.29 -> 4.30 Change Log
- (EV3) LEGO NXT Sensors that are normally auto-ID’d no longer have their autoID flag disabled for that port.
- (EV3) Fixed an issue with the EV3 remote screen may have caused a ROBOTC crash.
- (ALL) Rebuilt firmware to version 10.30. All platforms will require a firmware update.
- (ALL) Prevent Graphical files from asking to save if the “Save On Compile” flag is set to false.
- (ALL) Update all standard models to have correct drive train setting.
- (ALL) Fixed an issue where a “sprintf’ varArg list contains a string constant the compiler was generating incorrect code causing a firmware crash.
- (ALL) Compiler Fix: ‘long’ pointer temporary variables were sometimes being allocated as type ‘signed’ instead of ‘unsigned’.
- (ALL) Checking for “divide by zero” exception forgot to check in the “module” opcodes; it was only checking the “divide” opcodes. Fixed.
- (ALL) Fixed issues where the first time the Debugger “Local Variables” window is painted with values (rather than blank) the address field displays “0xCDCDCDCD” rather than the offset.
- (ALL) Graphical Interface now support “multiple selection” using Shift/Control keyboard modifiers (drag select coming soon!)
- (ALL) Fix for DebugStream which was adding \r to the String as it was written to file.
3.64 -> 3.65 Change Log
- (All) Fixed issue with licensing system when an unexpected error code (i.e. server is available but service is down) would cause ROBOTC to crash.
- (All) Fixed issue with ‘Check for Update’ functionality where a hotel/school wifi login screen might cause a ROBOTC crash with unexpected XML parameters.
- (All) Fixed issue with licensing system where a license could not be used on the same computer twice.
To read more about the updates from 4.29, visit our post from earlier this week. Happy Programming!