November 27, 2013
How do i rotate is one of the most frequently asked questions for beginner Inkscape users. There are multiple ways to rotate in inkscape, and this FAQ will show you the basics for four of them. The three different ways for rotating objects are: the toolbar buttons, the on-canvas rotation handles, transform dialog, and the keyboard shortcuts.
Method 1, the toolbar buttons
Rotating with the toolbar buttons only lets you rotate objects 90 degrees at a time. To rotate with the toolbar buttons, first choose the select tool:
Next, select the object that you want to rotate by simply clicking on it. Once you have clicked on the group once, arrows and a dotted line should appear around the object:
Finally, press the rotate button on the toolbar to rotate your selection in 90 degree increments.
Method 2, Rotate on Canvas
Using the toolbar buttons to rotate objects in inkscape is by far the easiest method to discover. However, it only lets you rotate in 90 degree increments.
For a wider range of motion, using the on-canvas rotate handles is the way to go. As with the previous method, choose the select tool, and then select the object that you wish to rotate. The select box and handles should appear as before:
Now that the resize handles are visible, simply click on the object again to display the rotate handles:
Now that the rotate handles are visible, simply click on one of them, and drag it to rotate your object freely.
Method 3, the Transform dialog.
The free rotate that the on-canvas rotate controls (method 2) give are great, but what if you need more accurate control? When using method 2, you can hold down the ctrl key to limit the rotation to 15 degree increments, but what if you want to rotate the object by a specific, arbitary amount?
That is where the transform dialog comes in. First, as with the other methods, select the object that you want to rotate. Then open the transform dialog from the menu, Object > Transform.
Switch to the “Rotate” tab of the newly opened Transform Dialog, enter in how many degrees you need your object rotated, and click apply to rotate.
Method 4, the keyboard shortcuts
This method is super simple. Select the object(s) that you wish to rotate, and press the square brackets key( [ or ] ) to rotate left and right by chunks.
For finer-grained rotation with the keyboard shortcuts, use the shortcuts alt + [ and alt + ] to rotate one degree at a time.
The four methods above outline the basics of rotating objects in inkscape. For further information about rotating and transforming objects in Inkscape the “Select Tool” chapter of the Inkscape Manual has more detailed information, including how to change the rotation point or rotation center of your object. The transforms chapter of Tav’s Inkscape Guide also provides some in-depth documentation of rotating in Inkscape.
November 27, 2013 03:30 PM
This video is so beyond awesome that it deserves its own blog post. I may or may not have shed a few tears watching it. Keep on kicking butt, GoldieBlox. We need you.
(Edit: I've replaced the original video with an update after it was removed due to controversy surrounding the use of the Beastie Boys' song.)
Read more about this video and project here
November 27, 2013 10:15 AM
My UPS has decided that every two weeks when it performs a self-test that my 116V mains power isn’t good enough, so it drains the battery and shuts down my home network. Only took a month and a half for me to see on the network graphs that my outages were, to the minute, 2 weeks apart. :)
In theory, reducing the sensitivity will fix this…
© 2013, Kees Cook. This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License.
November 27, 2013 04:25 AM
November 20, 2013
I posted a few testimonials about why arts and social science needs code last week. I have a new one from a PhD student in psychology here at Carleton, and since it's such a good one I made a new post for it.
Chunyun Ma, PhD Candidate in Psychology, Carleton University
Why do I want to learn python?
There is the thrill of learning something new. There is also the practical part. I will focus on the latter today.
I study math cognition. What is that? You may ask. Simply put, I spend most of time studying how people process numbers and quantities. Several months ago, I become interested at how people do arithmetic. Not to bore you with the details, I needed to design an experiment in which participants would be doing mental addition and multiplication—all one-digit problems such as “2+3” or “3*5”. These problems would show up on a computer screen at a pre-determined interval for participants to solve. Everything seemed straightforward and easy except for one: I had more than 300 arithmetic problems to be included in the experiment. With the software I had at that time, each problem needs to be set up manually by point-and-click for it to show up properly on the screen.
Hours of point-and-click eventually led me to think: “there must be a smarter way of doing this”. Sure enough, Python entered my horizon at that time and proved to be much more efficient. With python, like with many other programming languages, I can write the code for presenting one arithmetic problem and recycle it for the rest of the problems. What’s better, I can stipulate in the code what output should be generated and in what format.
The advantage of Python over other programming languages is that it is relatively easy to learn. For psychology folks, knowing python also has an added bonus—being part of a vibrant community consisting of python users from all over the world who are knowledgeable of both python and experimental design. For example, Pygame and PsychoPy are two excellent tools for designing experiments, both of which are products through collective effort from the community.
November 20, 2013 10:05 AM
November 13, 2013
For both my classes, I put together a study guide that included some general tips on studying as well as what topics to focus on. Since the general advice works for many classes, I figured I'd share it here. It's based on what I used to do as an undergrad.
York College Library Study / CUNY Academic Commons
A good strategy is to create your own study notes, preferably on paper (manually writing will help you remember what you are thinking about better). Here’s one possible way to make these notes:
- Go through the course learning objectives, slides, and assignments, and make a list of key concepts that you should understand.
- On a separate piece of paper for each concept, write the concept at the top of the page.
- For each concept, write a general description of what the concept it about. Try explaining it as if you were teaching someone who has never seen it before.
- Look for ways the concept has been used in class. How does it apply to the topic’s contextual question? What other contexts did we apply it to (in code, assignment questions, Poll Everywhere, etc)?
A few general studying tips:
- Find ways to stay relaxed. High stress will make your studying time far less effective. (Don’t leave it to the last minute!)
- Try to stop working on your notes before your normal bedtime the night before the exam (if not sooner). Get a good night’s rest - this really does matter!
- If you have time, you can spend some time memorizing some of your notes.
- On the day of the exam, review your notes. By now you don’t want to be still trying to understand the concepts or memorizing key points if possible.
Be sure to state any assumptions you make when answering the questions.
Be strategic rather than starting at the beginning and working your way through. Read all the questions first, then start answering the questions you are most confident about.
November 13, 2013 12:31 PM
November 08, 2013
Part 2 of my "Why are we learning this?" guide for arts and social science students is a set of testimonials from people in the field that learned to code. I'd like to share those testimonials here.
Angelica Lim, PhD Candidatehttp://winnie.kuis.kyoto-u.ac.jp/~angelica
I do research on emotions across music, voice and movement. I believe that my background in programming has let me make unique psychological experiments that most people can't do.
Here's a video and article on something similar to my work: http://wheatlab.virb.com/dynamics
Programs have also let me automatically detect things like reaction time, instead of spending hours poring through videos to do manual annotation.
Kathleen Woestehoff, Desktop Support Engineer for Gilt.com
I work in IT presently but that was after a purposeful (and challenging) career switch.
I studied psychology as an undergrad and got my MS in Education with advanced certification as a School Psychologist.
I learned some code through online courses I took. I've found it super applicable to be relevant and respected in my current career. I've heard from many people that basic HTML is nice to be able to adjust things on social media sites (though I've never taken advantage of what I know in this way).
I've seen it be highly sought after as a skill set in many companies for their marketing department, sales, graphic design, and more.
Emily Daniels, Software Developer and Research Analyst, Applied Research and Innovation at Algonquin Collegehttp://www.emilydaniels.com/
Dear Fine Artist Learning to Code,
Being able to code to express yourself is one of the most powerful tools available to artists today. Artists should look at programming languages as they do any other medium- watercolor, acrylic, clay- they are all tools to allow you to develop and communicate your vision with your audience.
Artists who work with traditional mediums often have problems keeping up with the speed of society’s technological advances. What worked for Rembrandt and Picasso does not work for many of today’s artists. The scarcity surrounding the creation of a unique work of art contributes so much to the value of that work, but the minute your work is shared on the internet it loses value. The catch for artists is overcoming obscurity in a world inundated with information fighting for your audience’s attention. There is little you can do to help this, unless you are independently wealthy, like working several part time jobs to fuel your art, or you change the medium you work with and the way you communicate with your audience.
Though I still love to draw, after graduating from art school I took a hard look at the mediums I used to create art. Oils and acrylics are toxic to people, bad for the environment, and a fire hazard. The act of learning by painting on 2D surfaces and throwing them out or giving them to friends seemed selfish to me and a waste of resources. Personally I think we have a responsibility to reduce or eliminate our burden on the environment as much as possible, but this way of thinking does not fit very well with making traditional fine art. It took me a while to realize how much better it would be for me to transition my art making to my computer, but when I did it was a revelation. The learning process of writing code and scrapping it or sharing what you’ve written online is cheap and wastes less time and resources in comparison.
Most software projects depend on collaboration and also individual creation, which I find is a nice mix and less isolating than the traditional artist working alone in a studio approach to creation. Solving a problem with a team of people can be immensely gratifying and can give you a sense of belonging that is hard to recreate as an individual artist.
Learning to code and using it in a project allows you to become a modern artist in many different ways. You can tailor your work to a format that a wide audience can understand and interact with easily, which increases your reach and scope. Artists want to reach people on a fundamental level and engage with them in meaningful ways, eliciting responses that go beyond the surface reaction to uncover a deeper understanding and appreciation of our world. Touching people in a meaningful way is not owned by any particular medium but by the way the artist chooses to use that medium to communicate their message.
As an artist you probably already have a thick skin developed by years of crits where others continually tear down your work and expect you to pick up the pieces. This will prepare you for similar responses to your programs and is also immensely useful in software development. It seems from my experience that most computer studies programs don’t spend nearly enough time preparing people to respond well to negative or constructive feedback of their work. It would benefit a lot of developers to be able to take criticism in stride like an artist can, so if you can, you are ahead of the game.
You will need to hone your analytic and logical thought processes in order to program effectively, but if you have a solid background in working with abstract concepts in fine arts, it is not too hard to make the jump to visualizing how components interact and being able to mold them to get them to interact in the way you wish. A well built program is a beautiful thing, simple and complex at the same time. Any application you make or contribute to will still feel like you’ve made offspring from your mind that you are giving to the world. Stick with it- the work you’ll be able to create after learning to code is a million times more rewarding than what you can currently create.
All the Best,
Stephan Gruber, Associate Professor, Department of Geography & Environmental Studies, Carleton Universityhttp://carleton.ca/geography/people/gruberstephan/
When I was about 25 and just about to finish my MSc, I had a key moment that I still remember: the day I was victorious over integrals. I knew what integral were from my high school math. But when I came across one in a paper, I would usually be left with an uneasy feeling. I knew what it meant, but had no idea, what to do with it. That day, I discovered, that I could discretize the integral in Excel and then just find an approximate solution. This then allowed me to explore the relationships I read about with practical examples that I calculated and plotted. It increased my understanding of the matter I was concerned with manyfold as now, I could interact with my problem and bring it from the abstract realm to, for instance, a plot or a number. Today, data processing and numerical experimentation, sometimes on high-performance computers, are a large part of my research. The power of this approach is what I believe enables me to chose great places to do research: mountain ranges across the world, the North, and Antarctica.
Learning how to organize and process large amounts of data and to write computer code has been the biggest single advance in my education. While it sounds counter-intuitive, I am convinced, that this is especially true for people who think they are not good at Math and who shy away from equations. Being able to write a small program to plot things is ultimately a tool to use the power of your brain better: viewing and manipulating a plot provides a broader experience than text and equations. If you work with data and models, you understand the subject you work with much better. And this will help you to better confront existing knowledge with the observations you make next time – or to plan more efficient observations.
And, there is another benefit. Writing computer code forces you to organize your thoughts. This is an analogy to how we see the writing of scientific text as an integral part of knowledge generation. Only when we formulate and structure what we have in our heads as text, do we see where it contains flaws or needs more work. Only then can you show it to someone and ask for feedback. Both ultimately let you grow in your understanding. The same is true for writing computer code. It helps us to be clear and to put the finger on areas that need work.
Learn how to program! It will be one of the most valuable skills you acquire in your studies. Don't be demotivated by having to spend many hours with the help function and Google to solve trivial things. All this helps you to acquire problem-solving skills and to be able to build the tools you need instead of being limited by what is available.
Stephanie Jackson, E-Communications Strategist, University of Ottawa
Word and Excel, just like the hardware of a computer itself, are tools to do a job. You wouldn't use a laptop to hammer in a nail, and you wouldn't use a screwdriver to analyze complex statistical data sets. Just about every complex task you work on requires the right tools for the right results. In the current technology-focused world, understanding the basics of major coding languages, as well as how they interact with one another, is critical for achieving the best results with the resources you have available. If I don't have a grasp on how various coding languages 'talk' to one another, even without having a proficiency in coding the language itself, I cannot effectively create a system which is both efficient and sustainable.
Of course, my experience is primarily web and web application based, so more php and ruby, less python, but the principle still stands ;o)
Kristen Jeanette Holden, Stay-at-home-mom, pausing from PhD studies at University of Chicago
Who knew that my 15 year old self's desire to put up a page on hometown.aol.com with comic sans paragraphs over animated backgrounds and blaring midi music would help me in grad school?
Rachel B. Bell, Website Designer at Verbatim Design in Providence, RI
I majored in Studio Art at Smith College. My focus was on Photography and Reduction Linoleum Cuts. I took one class that included about a week of working with basic html. Little did I expect at the time that two years later, I would be a website designer and search engine optimizer.
Bonus: Chris Bosh, NBA Superstar
Being a kid of the 1990s and living in a house run by tech-savvy parents, I began to notice that the world around me was spinning on an axis powered by varying patterns of 1s and 0s. We’d be fools to ignore the power of mastering the designing and coding of those patterns. If brute physical strength ran one era, and automation the next, this is the only way we can keep up. Most jobs of the future will be awarded to the ones who know how to code.
We use code every time we’re on the phone, on the web, out shopping — it’s become how our world is run. So I take comfort in having a basic understanding of how something as big as this works.
Read the whole article: http://www.wired.com/opinion/2013/10/chris-bosh-why-everyone-should-learn-to-code/
November 08, 2013 03:57 PM
November 04, 2013
In my Intro to Computers for Arts and Social Sciences class, I have been introducing the students to a bit of programming and algorithmic thinking in addition to the traditional topics (data representation and MS Office). I try to connect back to why learning to code is useful, even in arts fields, but I am not always successful. So, in hopes of doing a better job making my case, I decided to put together a document that summarizes the answer to the question "Why are we learning this?"
This post summarizes some of what I've got so far. I've also been collecting testimonials to share with the students. These are stories from arts and social science students, graduates, and professors explaining why code is useful to them. I will share those another day.
If you've got any ideas to add to this, please do share!Why Learn About Data Representation
It’s inevitable: no matter what field you’re in, you’ll have to work with data in some form or another. Having a good mental model of how information is stored on a computer can help you not only manipulate that data, but think about the best ways of collecting, storing, and analyzing it.
For example, if you need to collect images for a project, you might have previously just used colour images by default. But now that you know how much less space grayscale images can take, you might decide that they are the better choice when colour is not needed.Why Learn Computational Thinking
Computational thinking is about problem solving. We use computers to solve problems in every field these days. It’s not enough to be able to follow a tutorial on “how to do X” - you need a deeper understanding of how computation works in order to tackle previously unseen problems and know that you are solving them correctly and efficiently.
Here are some specific reasons to practice this type of thinking:
Why Learn About Algorithms
- You need to know how to take a problem you need to solve and transform it into something a computer can actually work with. We think too high-level for a computer to “get” what we want to do without breaking things down into really specific chunks.
- The world is becoming increasingly complex, and you need to be able to deal with that complexity.
- Similarly, you need to be able to handle ambiguity and open-endedness in the way a problem is defined and even in how you are expected to solve it.
Algorithmic thinking is part of computational thinking. You might run into a situation where you have to program your own algorithms as solutions to problems. Even if you never touch a line of code again, learning algorithmic thinking is useful. Here’s why:
Why Learn How to Code
- You build a mental model for how computers work. This helps you choose the right tool for the job when you have to solve your own problems, and do a better job of troubleshooting when things go wrong.
- The ability to write out an idea correctly and unambiguously transfers to the ability to write effective instructions or arguments in essays and other documents.
- To think algorithmically is to be able to specifically translate a problem into something the computer can solve, whether you use Python, Excel, SBSS, or some other tool to actually solve the problem.
This is a big one, obviously. Being able to solve problems with code means you can tackle problems that Excel and other programs can’t help you with (for example, text-based problems). It also means that you have full control over the solution, giving you the ability to customize it to suit your needs exactly.
Here are some general reasons to learn how to code:
- Writing some code is the best way to understand concepts that can be applied elsewhere, like if statements and while loops. It is also the most precise form of algorithmic thinking.
- If you know how to code, you have the power to be endlessly creative. From interactive fiction to web apps to computational art, there’s a lot you can do with code that is difficult or impossible without it!
- Writing simple programs can help you automate the really boring parts of using a computer.
- If you have an idea, you don’t have to wait for someone else to create it. You can do it yourself!
- If you can put a knowledge of programming together with whatever it is you are studying, you become extremely valuable to that industry. High paying jobs that few people can do well become open to you.
Here are some real example problems that can best be solved with code:
- Rescaling climate change data to analyze it in new ranges
- Text analysis by making a concordance of a text
- Digitizing horizon shading (when does the sun rise/set behind mountains, local rocks, trees, ...)
- Removing noise from measurements of snow height made by an ultrasonic sounder
- Facilitating collection and analysis of data from an experiment that determines whether seeing the sign of a simple mathematical equation before the numbers gives someone an edge in solving that problem quickly
These are some answers I got on Twitter when I asked “Why do you think an arts/social science student should learn to code? Reply with your reason, be it fun or practical, general or specific.”
- “Same reason a CS student should learn from the arts: a different perspective is aways [sic] 'a good thing'.”
- “Social science - 1 word, data. Arts - creativity.”
- “So they know enough about the difficulty of software dev that, if elected, they don't do a http://healthcare.gov”
- “because Robert A. Heinlein: http://www.elise.com/quotes/heinlein_-_specialization_is_for_insects”
- “the world is increasingly complex, and built, more every day, in code. being unable to understand basic science or software will soon be nearly as self-limiting as lacking numeracy or literacy is for many people now.”
November 04, 2013 09:19 PM
October 28, 2013
Way back in the springtime I signed up for a Coursera offering on video games and learning. I had no idea when the course would actually be offered, and forgot about it until they finally, around the end of September, announced that the course would be beginning shortly. Right in the middle of my first term of full-time teaching. A term in which I have 700 students. Talk about timing!
Despite the possibility that I couldn't give this course as much attention as I'd like, I decided to give it a try anyway. It's an area I'm interested on a personal and research level, and if nothing else, I figured the videos should be interesting.
So far, so good in that regard. I was excited to see so many familiar faces in the lectures and concept videos. They aren't people I know personally, but whose work I've been following for some time. The topics have been interesting, and I really enjoyed seeing the Games Learning Society
lab space (totally a place I could see myself working).
I've consistently been about a week behind the lecture and assignment schedule, so I often miss out on the more timely discussion in the forums. I'm not sure it matters much in my case, though, since I don't have a huge amount of time to dedicate to interacting with other students anyway.
One question that's fair to ask is whether I've actually learned anything from the course so far. Honestly... I'm not sure. Because it's an area I've been watching for a while now, I probably know most of the basics already. I also can't remember many of the specifics of what was covered in the lecture-style videos (they are very, very hard to focus on, unlike the animation-supported concept videos). That said, it is nice to have the review and to think about new things via the assignments.
My experience with this, my first MOOC, has been good enough that I signed up for another one that's more directly related to my thesis project: The Future of Storytelling
October 28, 2013 10:37 AM
October 21, 2013
It has been a long wait for the next version of Inkscape. The last major release of Inkscape was over 3 years ago back in August 23, 2010. And since then, the inkscape developers have been hard at work adding a multitude of new and awesome features to our favourite open source vector graphics editor.
However, the question that most people ask is when is the next version of inkscape being released? About a month ago, after a long-standing blocker was resolved, Inkscape developer Martin Owens asked this question on the inkscape-devel mailing list. The basic consensus on the mailing list was that all the important blocker bugs (the count was 10 in September) needed to be resolved before the release process could even start.
Now, a month later, after a busy month, the awesome inkscape developers have whittled this down to 3 blockers. Martin writes on fedora-devel:
This is the bi-weekly report on our release-hope goal:
* High #1163449 Imported bitmap appear blurry when zoomed in
* Medium #953992 Imported pattern fill disappers while transforming
* Medium #1005892 Patterns applied to text objects are blurred
If you can fix one of these, please do. We can use all the help to
debug, locate the errors causing these regressions and fix them. These
blockers are high priority for our project goals.
So, we are inching ever closer to an Inkscape release!
October 21, 2013 02:12 PM
You may remember hearing about a project I've been involved with for the last couple of years. We're working on a book about computer science designed for beginners; something that could be used, for example, in my "introduction to computers for arts and social sciences" class. Well, we've finally got two chapters ready for review, and would love to get your feedback on how we're doing so far.
Note: If you're a beginner in the world of computer science, even better!
The first sample chapter is on Data Representation. This is the first chapter from Part I of the book, which covers computing fundamentals. The second chapter is on Artificial Intelligence. This is one of our in-depth subject areas and builds on concepts introduced in basic chapters. It will appear in Part II of the book, which surveys some of the major fields found within computer science.
If you're interested in helping out, you can review either one of the chapters, or both. There is a short survey to fill in about the chapters. We also intend to publish a list of our reviewers, should you wish to have your name included.
If you're interested, please contact me, and I'll send you all the information and links you need. (If you've left your email with us in the past, and haven't heard from us yet about this review opportunity, you probably will. Please still feel free to contact me directly now.)
October 21, 2013 11:00 AM
October 17, 2013
I gave a talk at this year's Grace Hopper on what I've been working on for my thesis project:
Coherent Emergent Stories in Video Games
Crafting satisfying narratives while preserving player freedom is a longstanding challenge for computer games. Many games use a quest structure, allowing players to experience content nonlinearly. However, this risks creating disjointed stories when side quests only minimally integrate with the main story. This talk introduces the problem of nonlinear storytelling in games and discusses our flexible, scene-based story system that reacts dynamically to the player’s actions.
My slides are embedded below and you can learn more on my website
October 17, 2013 10:03 AM
October 12, 2013
This is the next in the extensive series of tutorials from the fantastic 2D Game Art for Programmers blog. In this tutorial, Chris builds on his previous tutorial on gradients by explaining how to draw this awesome aquarium-type scene
October 12, 2013 04:49 PM
October 09, 2013
Maria Klawe (Harvey Mudd College, far left), Brenda Laurel (Purple Moon, far right), and Kim Surkan (MIT) gave an insightful panel about the images of geeks in the media. In some ways, I didn't learn much new, but I liked hearing about their personal experiences and getting new language to talk about the problem with.
For this post, I'd like to share some of my (mostly raw) notes from the session. Maria's Part
- no progress made in changing the image of professionals in the media
- is a believer of failure
- "people listen to you more" when you have gray hair
- remembers a time when there were very few female doctors and lawyers
- in the 70's shows depicted both male and female doctors and laywers (though not in the same show), and this caused flood of women into these professions.
- more recently: forensic crime shows caused influx of women studying the field, even though job opportunities for forensic science and CS are at opposite ends of the spectrum
- it's not just about tech women (problem with portrayal of all women, and of tech guys as well)
- in the mid-90's, she was seated at dinner beside NBC exec responsible for Sat night movie series; said we needed shows about scientists and engineers; he said nobody knew any engineers in real life so wouldn't relate!
- tried to write a pilot episode but saw halfway through it was going nowhere (too unrealistic)
- someone wrote a pilot for a show called Rush about Silicon Valley start-up trying to win the DARPA challenge; she sent it out to 20 people with connections in the media; everyone loved it; but it went nowhere!
- optimistic but doesn't know what else to personally try
- looking at the GHC poster from last year: not geeks, wearing nail polish; white woman in the middle giving advice to the black woman, asian woman starting into space (did a photoshop to fix this)
- Numbers proves it's possible
- we are responsible for our own representations ("I like the way we look!")
- "put out our own self-representations"
- "deny power to the spectacle"
- "do good work and get noticed for it"
- check out http://femtechnet.tumblr.com and Wikipedia storming
- media consumption is growing (2010: average 7 hours and 38 minutes)
- stereotypes of women being bad at math, as STEM fields being boring and unfulfilling
- it's hard to notice what's not there, but when it isn't, you begin to associate the idea, for example, that all doctors are men, white, etc...
- only computer science is declining in females, not other STEM fields
- was not always this way; women were active in programming (e.g. ENIAC)
- nerd stereotype most common explanation for low female participation
- sexism in CS culture (especially gaming): recruitment, hackathons, sexual harassment/rape culture, lack of role models
October 09, 2013 08:12 PM
October 07, 2013
I love the curriculum that Zoe Wood and Julie Workman created for their school's CS0 course and that they spoke about at GHC13. It uses Processing, like the CS1 course that I'm currently teaching for non-majors, but focuses solely on the idea of computational art for its context. My course has a bigger variety of problems to introduce concepts, but that's not necessarily a better thing. I do like their course's focus.
Although the hope is that some of these students continue on in CS, this course is not as in-depth as a full-fledged CS course. Some of the outcomes include students understanding that computers process commands one at a time, commands must be precise, variables allow for flexibility, functions allow simple concepts to be combined into complex programs, and playing is ok! (I hope my students walk away with that last one especially.) The curriculum embodies basic computational thinking, basic programming skills, working in teams, learning basic college skills, and enjoying computer science. It covers shapes and 2D coordinates, colours, interactivity, animation basics, geometric shapes (implicit and parametric), images (arrays and pixels), and particle systems (classes).
The five course projects really inspired me. I loved how flexible they are, and how interesting the demoed results were. These are the project topics:
- Chuck Close, up close (each student makes one pixel, group puts them all together)
- self portrait of social interaction (every mouse click shows visually how student feels)
- self portrait (get a photo of themselves, do image manipulation, and implement hot spots that have different responses)
- tell a story (computational animation)
- interactive montage with a 'journey home' theme (done in teams)
Zoe and Julie emphasized just how fun the course is to teach, but also shared its success in terms of increasing female participation. In four years, they went from 9% to 21% women!
I've already been leaning toward Processing as a better choice for a first language
as compared to Python. The experience shared in this talk along with my own comparison of teaching both languages this semester is solidifying my view on this. Python is a great early language, but I still prefer Processing first, especially for its potential to engage non-traditional students.
October 07, 2013 12:25 PM
October 03, 2013
As the opening keynote here at GHC reminded us, computer science has a supply problem. The number of people we need to create technology is increasing at a much faster rate than students taking computer science in schools. The Exploring Computer Science and Computer Science Principles projects are aiming to help fix that.
At a panel discussing the two projects, we learned why they matter and how they work. CS Principles is an advanced placement (AP) course for high schools that is currently in pilot mode. (AP classes, for the non-Americans like myself, are like college level classes taught to high school students in exchange for college credit later on.) On the other hand, Exploring CS is intended as a high school level class taught to high school students.
Both take an approach to teaching computer science that is dear to my heart. They want to show why computer science is interesting and relevant; students should "learn how computer science is used as a lever to move the world." They do it not through typical lecture-based styles of teaching, but through inquiry, offering interesting problems that engage students. Exploring Computer Science is described as student centred, collaborative, and inquiry based — a very powerful combination!
The goal is not to teach coding, but computational thinking. For example, CS Principles centres around several big ideas including creativity, global impact, abstraction, the Internet, and more. It does make use of fixed-response questions as assessment, but it also has performance tasks that give much more flexibility to students. This really gives some insight into the kind of "content" delivered.
It's this kind of philosophy that I was inspired by when creating my version of our "Introduction to Computers for Arts and Social Students" course. Of course, with 440 students in a huge lecture hall, the kinds of in-class activities and assessments is somewhat limited. Even still, I could take this course's design so much further than I have so far, and hope I get the chance to in the future.
I'd also like to push my outreach teaching and curriculum to the next level. As I do, I should take heed of the advice given by the panel in response to an audience question: If you are a non-profit (like Girls Who Code, for example), and you are considering using these curricula, start by talking with teachers. They know how to engage a group of high school students and teach them effectively.
October 03, 2013 01:09 PM
Today was our first full day in Minneapolis for this year's edition of the Grace Hopper Celebration of Women in Computing. It's so nice to live the conference through the eyes of the students I organized to get here, seeing as it's their first time at GHC. It's also nice to meet up again with all my women-in-computing friends that I rarely get to see outside of the conference.
Things got started with a nice welcome session that happened to include me going on stage with my co-chair for the Communities Committee, Charna, to get recognized for our efforts. The opening speakers (including student members of the ABI boards!) also gave some great advice for newcomers.
Then came a highlight of our day: the keynote / plenary session that featured Telle Whitney (CEO of the Anita Borg Institute), Sheryl Sandberg (COO of Facebook), and Maria Klawe (President of Harvey Mudd College). There was a lot of really good, frank talk about gender issues and facing them head on. Karla, a GHC Communities Volunteer, blogged about this session - check it out
There were a bunch of sessions in the afternoon, but I couldn't pay full attention to them because they were either full or I worked on my class's assignment to be released on Friday instead. I did have fun presenting my Gram's House
poster at the poster fair, making some really great connections with potential collaborators.
I'm really pumped to see everyone again tomorrow (for longer!), the sessions, my own talk, and most of all, the dancing!
October 03, 2013 12:25 AM
September 29, 2013
For me, today is all about getting ready for the Grace Hopper Celebration of Women in Computing next week. As usual, I'm involved with the conference in many different ways, from presenting a poster and talk to being a member of the Communities Committee. Plus, I'm organizing a group of five other Carleton students who are attending for their first time!
I was thinking about all the different posts I've made about GHC over the years, and realized that I probably have a few that would be useful to attendees this year, too. So here's a round-up of my most useful posts as we all gear up for next week:
September 29, 2013 02:29 PM
September 21, 2013
It's not finalized, but here's a preview of the poster I made about Gram's House, a research project I started a few years ago, for the Grace Hopper Celebration of Women in Computing. Gram's House is a game designed to encourage girls to consider computer science through a story about making a difference for a loved one and through computer science concept puzzles.
As usual, my poster is fairly minimal in terms of text content. I use my posters as props to talk about the project during the poster presentation, or as teasers to entice viewers to get more information. If you'd like to know more, visit me during the conference poster session, or check out my research page about the project
where you can also look at the PDF of the poster.
September 21, 2013 02:06 PM
September 13, 2013
I've now survived the first three lectures in both my classes. Both are introductory computing classes for non-majors: one is heavier on concepts but includes Python programming, while the other is heavier on programming in Processing. Both are also quite large: 440 and 280 students respectively!
I have always been a strong believer in active learning, even in huge lectures. One of the main ways I'm incorporating active learning this term is through peer instruction and Poll Everywhere (an all-software version of clickers). Carleton has a paid account for Poll Everywhere that all professors are able to use, and the service is totally free to students.
So far, even though not all my questions have been perfect, I am quite happy with the results. It seems that students are engaged with the questions at hand, based on my walkabouts and seeing much arm waving toward the screen as students discuss the answers. In most cases, I see a marked improvement in how many are selecting the correct response.
Here's a good example. In my Processing class, I asked the following question after we learned about variables:
At first, the answers were pretty evenly split between red (52), blue ( 46), and neither (42). After students had a chance to discuss with their friends ("convince someone who answered differently than you why you are right"), the responses were mostly red (77), still some blue (24), and fewer neither (15).
Even better, after the voting, I ran the code so we could see that the answer was indeed red, and I said "I guess you want to know why, right?" There were students who audibly agreed with that sentiment. ;) So I did an explanation on the black board using our variables-as-boxes analogy. It was wonderful.
I have only done five "real" polls between these two classes so far, but I must say that I am already a strong believer. It will be interesting to see what students think of it when I ask for informal, anonymous mid-term feedback in a few weeks.
September 13, 2013 04:30 PM
September 11, 2013
Here is a tutorial from Máirín Duffy explaining how to quickly implement interactivity into your inkscape SVGs. The approach the Máirín Duffy takes is great for when you need an Inkscape SVG to have a small amount of interactivity, like a basic User Interface Mockup. However, this approach probably would not scale if for more complex interactive SVGs.
September 11, 2013 08:41 PM
September 10, 2013
A little known feature that was introduced in Inkscape 0.48 was the ability to resize and rotate selected nodes in a path using on-screen handles. These handles behave in the same manner as when rotating or resizing objects with the select tool.
Enabling the onscreen handles
To use this feature, first you need to enable it, so you need to select the Node tool from the toolbox, then flip the toggle to enable display of the resize / rotate handles for nodes:
Now, with the feature enabled, select 2 or more nodes, and the resize handles should appear around them in the same way when you select an object with the selection tool.
Use these handles in the same manner to resize the nodes.
Note also that the ctrl and shift keys work to constrain the transformation in the same way as with the select tool.
The same applies to rotating nodes. Select the nodes to be rotated, then single-click one of the nodes again to enter rotate mode.(just like when free rotating). Now use the handles in the same to rotate the selected nodes.
Note also that the ctrl, shift and the rotation point all also work for rotating nodes as it does with the select tool.
September 10, 2013 01:39 PM
September 08, 2013
Summer is winding down (in the northern hemisphere) so hang on to summer with this fantastic set of summer vacation clipart by gnokii. If you are in the southern hemipshere, lucky you! summer is on its way! These vectors are 100% free (they cost you nothing, and you are free to use them according to their cc0 license)
September 08, 2013 03:20 PM
Here is another awesome intermediate-level tutorial from vector tuts+. In this tutorial, you learn how to create a simple cartoony vector rocketship.
September 08, 2013 02:49 PM
September 07, 2013
The inkscape developers have been drastically improving the functionality of the Text tool in inkscape for the 0.49 version. One improvement to the text tool is that when looking at the font list, inkscape now displays the fonts that are currently in use in the document at the top of the list. This super simple improvement makes the text editing user experience much better, as the user had to hunt through the list of all fonts to find a font they had already chosen.
The currently used fonts shortlist is available in both the font list in the tools control bar:
and in the Text and Font dialog box:
If you want to try out this new feature already, you will need to Download a “nightly” or “development” version of inkscape. Links to various builds of development versions of inkscape are listed at the Inkscape downloads page.
September 07, 2013 04:10 PM
September 05, 2013
This is the next in the extensive series of tutorials from the fantastic 2D Game Art for Programmers blog. In this tutorial, Chris builds on his previous tutorials by introducing the gradient tool, and goes though how to construct a cute jack-o-lantern, and a ship’s wheel.
September 05, 2013 11:52 PM
The upcoming release of Inkscape has a new feature that allows an artist to select objects that have the same properties as the currently selected object. For example, you could select an object that has a fill of blue. Then, using the new feature select all other objects in the drawing with a fill set to that same shade of blue:
The new feature is a menu choice under Edit > Select Same or as a Context menu if you right click on a selected object.
Also there are other choices available to select same, including: matching both Fill and Stroke, matching just stroke, matching stroke style, or matching on object type.
If you want to try out this new feature already, you will need to Download a “nightly” or “development” version of inkscape. Links to various builds of development versions of inkscape are listed at the Inkscape downloads page.
September 05, 2013 07:03 PM
I moved into my new office on Tuesday, and finally decorated a little bit. Here are some photos of my new home!
My teaching and office hours are now posted on the little sign outside my door. Why, yes, I did use scrapbooking supplies to decorate my schedule!
This is the view when you walk in. The setup is actually quite comfy, with a proper adjustable keyboard tray and all. I brought a lot of stuff from my desk in our research lab; that's the only reason the shelves look at all full.
There is a little table and chairs to the right of the door. I don't think most profs have this - it was just left over from the previous administrative occupant. I also finally found a home for some photos we had framed for our photo club exhibits.
This is a close up of some of the shelves. I've got mugs and thank-you cards from various outreach events and invited talks, a family photo, and of course Computer Engineering Barbie. The teddy bear came from a student in one of my mini-courses.
September 05, 2013 05:20 PM
September 04, 2013
The Inkscape developers are hard at work developing the new version of Inkscape (0.49). This is the first in a new series of posts
that will outline some of the awesome new features that will be available when Inkscape 0.49 is released.
The new updated Inkscape features a new set of buttons in the Align and Distribute Dialog called Exchange position of selected objects. It adds the ability to exchange the positions of the objects that the artist has selected. In the following example, three objects were selected, and their positions were exchaged with each other (using this new feature) according to their selection order.
There are also two other new buttons in the dialog that allow the artist to exchange the selected objects based on the stacking (z-index) order, or just exchange them clockwise based on there positioning on the page.
If you want to try out this new feature already, you will need to Download a “nightly” or “development” version of inkscape. Links to various builds of development versions of inkscape are listed at the Inkscape downloads page
September 04, 2013 09:56 PM
September 03, 2013
Here is a super quick tutorial outlining the workflow for creating a quick stylised graphic reminiscent of electron trails on a visualization of the rutherford model of an atom. The primary tool used to create this effect is Inkscape’s awesome, yet often forgotten, Tweak Tool
September 03, 2013 05:35 PM
Have you ever been doing path manipulations in inkscape, and needed to select nodes in a path in order, yet it is too time consuming or tedious to select them the ways you normally do? When editing a path using inkscape’s path editing tool, the most common ways to select multiple nodes is either hold shift and click each individual node:
or to click and rubber band select the nodes that you require:
But what if you have too many nodes to select them individually, or the rubber band box selects more nodes than you need? Well, using a mouse with a scroll wheel, you can select nodes in a path in inkscape by:
- Clicking on a node with the path tool.
- Keep the pointer hovered over the node
- Hold down the control key, and wheel the scroll wheel up. Inkscape will select the next nodes in the path:
September 03, 2013 11:38 AM
August 31, 2013
Here is a tutorial for creating a simple sticker with a folded edge. I originally posted it a few years back on my personal blog.
This is what we are aiming for:
1. Draw a circle with the circle tool.
2. Using the path tool, draw a shape that intersects the circle for your ”dogear”
3. Select the path and the circle and use Path>Cut Path.
And set the colours of both the paths that result from this.
1. Select the ”Dogear” (mine is black) and press flip vertical.
2. Then press flip horizontal.
1. Select the main body of the sticker (mine is blue)
RightClick > Duplicate, then change the colour. (mine is pink)
2. Do it again and change the colour to something different again. (mine is green)
3. Select the green one, and use the arrow keys to offset it a bit.
4. Then select both the green and pink objects and choose Path>Difference
5. Change the colour of the remaining path to black.
6. Open the stroke/fill dialog and play with transparency & blur
1. Duplicate the black “Dogear” object, and change the colour.
2. Select the black one (underneath) and play with the blur and transparency.
3. Duplicate the body of the sticker again.
4. Press CTRL+A to select all, then choose Object>Clip>Set
5. Add your text, and you are done!
August 31, 2013 10:34 PM
August 30, 2013
In another tutorial from 2D Game Art for Programmers, Chris builds on his previous tutorial by showing you how to create simple blocks suitable for 2D side scrolling platform games just using the square tool in inkscape
This tutorial also reinforces the fact that basically everything that you draw in inkscape is just a lot of simple shapes that are put together to create a masterpiece. Chris goes on to show an awesome example of this in his tutorial, by producing a drawing of a castle, then showing all the simple shapes he used to construct it.
August 30, 2013 06:31 PM
Here is an awesome SVG designed specifically for creating Web UI mockups in Inkscape. And the good news? according to the github page, it is licensed CC0
August 30, 2013 06:06 PM
When working on my introductory computer science class for non-majors, I started with the objectives. From there, I thought about the types of assignments and tutorials I wanted, but mostly moved on to figuring out the actual lecture content. I like to organize my courses by specific problems in a way that is loosely related to inquiry-based learning.
With this approach, I think about the kinds of things that my audience might find useful or interesting. The earlier problems tend to be more on the interesting side, but by the end the problems should be more relevant to the students' fields. During lectures, I will introduce the problem by showing the completed software, then go step by step in showing how that software is built. In the process, new concepts need to be introduced. For example, when we start to get bored of repeating certain values all the time (and start to run into errors when changing these values), I'll introduce variables.
The best part about having my learning objectives done first is that I can use them to make sure I've hit all the main points within these problems. As I write out my step-by-step outline, I highlight key words that are colour coded to the objective they relate to. I imagine this will also help tremendously as I move on to writing the code and creating the lecture slides and peer instruction questions.
Here's an example of the second problem's design for this course:
Another nice feature of the problem-based organization is that I have a natural way to organize the content (such as slides, code, and other resources) in our online learning management system. I haven't tried this before, so I don't know how well students will like it compared to, say, a week-by-week organization. I should mention that I am also including tables of resources according to topic (e.g. variables, functions, good programming concepts, etc) as well as by problem, so hopefully this will help.
With all of this laid out, it will be much easier to fill in the details. That's the most fun part!
August 30, 2013 02:02 PM
August 29, 2013
Libre Graphics World is a great source for news, tutorials and book reviews on all open source publishing, design, image editing, video editing, desktop publishing and CAD software. Be sure to check it out, and also follow them on twitter (@lgworld).
Remember too that you can get the links to all the new tutorials on the inkscape tutorials blog at our twitter too (@inkscapetuts)
August 29, 2013 08:28 PM
Aaron Nieze over at VectorTuts+ covers 6 simple tips for working with gradients in inkscape, including On canvas gradient creation and editing, editing gradients using the gradient dialog, applying gradients to multiple objects, gradient editing keyboard shortcuts, creating repeating gradients, and adding gradients to the stroke of an object.
August 29, 2013 01:09 PM
August 28, 2013
Inkscape has the ability to save as .eps (encapsulated postscript), which some printers require. However, getting inkscape to export them as pure vector (inkscape tends to convert everything to a bitmap and throw it in the .eps file) can be a bit of a black art. Luckily, Máirín Duffy has figured it out and outlines how to achieve it in this quick tutorial.
August 28, 2013 05:23 PM
In another awesome tutorial on Learning to Draw 2D Art, Olga provides a great overview of the theory of perspective views, then provides 3 techniques in Inkscape for drawing in perspective. Olga covers using Inkscape’s 3D box tool, the Perspective extenstion and the Envelope Deformation Live Path Effect.
August 28, 2013 01:09 PM
Did you know that the Grace Hopper Celebration of Women in Computing has a strong online presence? From Tweeting to blogging to note taking, we've got you covered. Whether you're an attendee who hasn't figured out how to be in 8 places at once, or someone enjoying the conference from afar, social media can show you what you've missed.
It's the Communities Committee along with our awesome ABI representative Rosario Robinson that make this all happen. I'd like to introduce you to the committee now!
Charna Parkey, Co-chair
DSP Engineer, PhD Candidate, yogi, martial artist, potter, step mom, volunteer, entrepreneur. Passionate about life, food, friends and family.
Gail Carmichael, Co-chair
Computer scientist, educator, and blogger who is taking leave from a PhD to teach undergrads for a year. Wrangler of a toddler who thinks bedtime is the worst time.
Software testing ninja, blogger and tweeter passionate about promoting, encouraging, and increasing the numbers of women in tech. Can be found chasing Frisbees and climbing walls in her spare time.
Rosario Robinson, ABI
Her Systers’ Keeper. Developer, open source advocate, and passionate about making positive social global change. Working for the cause and not the applause. Changing the world through technology and community engagement.
We'd love to get to know you, too. If you're interested in being a Communities volunteer at this year's conference, submit an application by September 7 by clicking the link on the right hand side of the Communities home page
. Be sure to read Kate's summary on why being a volunteer is awesome
August 28, 2013 12:45 PM