You are viewing all the entries related to the category: Teaching Diary
As a classroom teacher, I have a wide range issues which I wrestle with every day! Some are related to technology, and some aren't. Here's some issues I've grappled with....
What is the answer when asking an AI to please describe the most effective techniques and methods of teaching high school computer science?
There is no one-size-fits-all answer to this question, as the most effective teaching methods will depend on the specific goals and objectives of your course, the abilities and needs of your students, and the resources and materials available to you. However, there are some general principles and best practices that can help you create an effective and engaging learning environment for your students.
First, it's important to create a clear and organized syllabus that outlines the goals and objectives of your course, as well as the specific topics and concepts that your students will be learning. This will help your students understand what they can expect from the course and how they can prepare for success.
Next, it's important to use a variety of teaching methods to engage and motivate your students. This can include interactive lectures, discussions, hands-on activities, and group work. Using a variety of teaching methods can help keep your students engaged and interested in the material, and can also help students with different learning styles to succeed.
It's also important to incorporate real-world examples and applications into your teaching, to help students understand how the concepts and skills they are learning can be applied in the real world. This can help make the material more relevant and meaningful to your students, and can also help to motivate and inspire them.
Finally, it's important to provide regular feedback and support to your students, to help them understand where they are succeeding and where they may need to improve. This can include providing individualized feedback on assignments and exams, as well as offering extra help and support outside of class. Providing this kind of support can help your students feel confident and supported in their learning, which can in turn help them to succeed in your course.
Overall, the most effective techniques and methods for teaching high school computer science will depend on your specific goals and objectives, as well as the abilities and needs of your students. By using a variety of teaching methods, incorporating real-world examples and applications, and providing regular feedback and support, you can create an effective and engaging learning environment for your students.
Yea, about that.
Truly a wonderful learning opportunity...
This weekend, we are immersed in a Lego robotics competition. Students and coaches have come from other international schools to compete in a robotics challenge. The nature of the challenge is to program a robot to perform different manipulative tasks of various difficulties (within 2 minutes and 30 seconds). For example student robots need to push the red section of the windmill.
This will then trigger a different piece to fall, which must be collected for different points. The cool thing about this project is how many different times student-groups can attempt these challenges. It's ultimate design in my opinion, where a student will try / fail / try / fail many different times. This constant cycle of iteration is really at the heart of learning, construction and design - and is just such good stuff.
In computing, procedural generation is a method of creating data algorithmically as opposed to manually, typically through a combination of human-generated assets and algorithms coupled with computer-generated randomness and processing power (ref).
The amazing thing about procedural generation is that infinite unique possibilities can be created with little work from humans (ref). I've been interested in procedural for a few years, and would encourage you to take a peek at the following resources to learn about procedural generation:
What is cool about procedural generation is how easy it is to start with procedural generation. In the example code below, we can get the following output:
# procedural generator to write a brief history
origin_1 = ["Born", "Hatched", "Invoked", "Discovered"]
origin_2 = ["in the land of", "in the wilds of", "in the forest of", "in the ocean of", "in the small village of", "in the modest hamlet of"]
origin_3 = ["Tr'lor", "Kor'mer", "Kobiyashi", "Greenest", "Mordora", "Gondor'e", "Rivendell", "Mirkwood"]
story_part_1 = random.choice (origin_1) + " " + random.choice(origin_2) + " " + random.choice(origin_3)
I have some students working at high levels of complexity and other students working with more basic levels, as seen above. But for all of them, this is a fun approach to deconstructing a complex system, identifying the patterns within the system, and introducing the correct randomness to the system to make it unique.
Procedural generation gets us close to modeling and simulation where a student must understand a system in order to create a model of it. In my opinion, modeling and simulation is close to the the very best learning we can get.
Procedural generation goes into the stratosphere when students apply machine learning to highly complex systems.
Considered and deliberate approach to design leads to high quality solutions. The obverse is also true.
My 9th and 10 grade (ages 15 and 16) students are working the design cycle as they solve a problem through programming. The problems are all unique, and fit the student's skill / capacity window. An example of some the projects are below:
|How to find the perfect guitar?||A web-based application to help people find a guitar based on certain criteria|
|Which sport should you play?||A web-based application help people decide what sport they might enjoy|
|Dungeons & Dragons character builder helper||A web-based application to help people build a D&D character|
The students have begun to really think and understand their problem. As they dig into the problems, I note they are changing their success criteria and more carefully adding features based on research into solutions. This process - of inquiry into a problem and understanding the problem deeply - reinforces the power of design.
In education, we talk about transfer learning, where students can transfer learning to novel scenario or situation. A key question I like to ask is:
What do I want my students to know / be able to do in 5 years, 10 years
This kind of approach to solving problems is extraordinarily powerful, and a good thing™ to have in schools. Students who do not attend to this process generally do not have high quality solutions.
This PDF answers the question. Good stuff.
I've been very busy online lately, just not here 😊 Please do take a look at my computer science wiki. I'm building it for my high school, middle school, and IB students. Once it is filled-out enough, I will probably ask the internet for some help to add to it. Please enjoy, and check out the list of recent changes.
I use (and love) linode for my web hosting, email, database, and other linux needs. I'll be using linode for my web applications class next year (about 15 students). I had a problem thinking how would I enable students to write to a web directory (var/www) without giving them all SUDO access (and allowing them to write into another students directory).
This took me some time to find a solution, and it is beautifully simple (of course). Click here to see the thread.
If you make /var/www writeable by its group and add the user to the group, that user will not have to use sudo.
sudo adduser www-data
sudo chown -R www-data:www-data /var/www
sudo chmod -R g+rwX /var/www
The user should then be able to edit /var/www/ files without hassle. The first line adds the user to the www-data group, the second line clears up any files with messed up ownership, and the third makes it so that all users who are members of the www-data group can read and write all files in /var/www. If you are logged in as you need to log out and log back in for the group membership to take effect. I confirm this works.
The more complex code is, the longer it takes to understand and debug. If it is poorly written code, a multiplier is added to the time required to read it. I have worked with my students to build a "must do before asking questions" list in computer science.
1. Google your question
2. Re-read your code (or function). It can be helpful to read this backwards
3. Use debugging tools
4. Ask the person next to you
5. Read error messages!
6. If you have to ask a teacher for help, make sure you ask a very specific question about a very specific topic
Great questions get great answers. Bad questions get, well, not-great answers.
I need some advice about a common question: "can you look at my code really quickly"? I am starting to work on increasingly sophisticated programs with my students. My students ask me to help them diagnose a problem, suggest alternatives, or figure out what is broken in their code. My problem is reading their code takes time, thinking about what they are doing takes time, and suggesting a good alternative takes time. This isn't something I can do in 30 seconds. How do you manage student requests for support and assistance when their code is very complex and requires more than 5 or 10 minutes to read?
Well. I haven't been this enamored with a piece of software in a long time. Sublime - a text editor - has won my heart. The last time I got this happy about text editing was back in the day with UltraEdit. Someone put some love into this software.
#cdl_mooced I'm currently learning via a fascinating MOOC Coaching Digital Literacy.
The unit I am working through is about social media and PLN's (personal learning networks). For the record, I love personal learning networks, and have benefited tremendously from my involvement in them. I've been a social media user for a while, but I don't really think they work for me as a PLN.
What I see in social media (twitter, facebook) is a lot of a little.
After reducing the "signal to noise" problem*, I see people post links to tools, without any deep thinking or consideration of context. It's pretty easy to post an infographic, link to a blog, embed a youtube video, but it's much harder to meaningfully change student learning with that same link.
Social media makes it very easy to share, but does that equate with better? I'm unsure. Where I have seen social media shine is when a very specific content area is linked to another very specific content area. For example, when a third grade teacher "follows" another third grade teacher. Or when a 10th grade English teacher "follows" another 10th grade English teacher. Posting a link, a website, or some great web 2.0 tool might help, but I don't think it meets the definition of being connected. My bias is rooted in my growing conviction that focused, mindful attention is the best way to learn and remember.
This weekend, I'm on my way to Istanbul, Turkey where I will meet with other IT Directors from the Central and Eastern European School Association. We all work in similar schools, with similar issues, challenges, and successes. This is my primary PLN, and one which I derive great value from. This face to face contact, this focused, uninterrupted time where we are learning with each other is like solid gold for me. And it is this that is missing from social media. Social media makes connecting quick, easy, and ephemeral. And that's the problem I have with it. I'm curious to hear your thoughts about this. *
Bill's social media signal to noise maxim: the ratio of cat pictures to actionable useful content determines the value of social media as a learning tool.
Expression Engine 2.8 is out. Really cool feature set that will save time and make it easier to develop great web-apps for schools. My latest use of Expression Engine is for a professional development request system. Works like a charm!
A substantive article by Pete Herzog about hacking in High Schools. I hope you read this reply, Mr. Herzog. You are so right about this. I think the key point is what schools do with hackers (geeks) when we find them. Many times we have "caught" students doing stupid stuff like installing key-loggers, running port scans, writing bash scripts and changing /etc/hosts in amusing ways. When we catch them, we discipline them but then we invite them to learn. And this is my key point. We need to teach kids to be responsible and ethical digital citizens, but also teach them how to hack. And as you say, be "motivated, resourceful, and creative" learners. I liken this to "geek fishing". Schools generally don't do a great job of fostering an environment of open exploration, discovery, hacking, and making. We have a curriculum to think about, after all. But when we discover a hacker / geek in our school, we have a duty to encourage them and grow them. As I reflect more on this blog post, I think what should change in schools is our attitude towards hacking; to invite it, encourage it, and recognize the value this type of challenge / curiosity-based learning brings to learning. We also need to help kids make good decisions.
As I was learning about computer science curricula in the K-12 sphere, I discovered the Computer Science Teacher Association. I've joined, and I am learning a great deal about the value of their membership. I'm currently reviewing their suggested K-12 Computer Science standards, and learning more about computational thinking. I'm looking forward to learning more about how this organization can help me understand how best to plan, implment and assess computer science curricula in the K-12 world.
I just finished the CodeAcademy PHP introduction. Not bad, I have to say. I've been dabbling in PHP for many years, and I learned some new things, which is cool. I finished in about two days (total time, probably 6 hours). I found the learning environment to be good. A few user interface quibbles, but overall, the teaching and assessment was spot-on. I liked the feedback when an answer was incorrect. I found the scope and sequence to be good. I think a more robust summative assessment would of been nice. I also think some different types of assessment would of been neat (look at this code, where is the error). Amazing, the last time I formally learned about PHP, I used a book, and manually typed in the code. This was much different.
Great video and talk about the difference between training and learning. [url=https://www.usenix.org/conference/lisa12/education-vs-training]https://www.usenix.org/conference/lisa12/education-vs-training[/url]
This is a proposal I sent to our school social committee. I'm not sure what they will think about it! I would like to have the first annual ASW Dungeons and Dragons game. The purpose of this game is to have fun and learn about a foundation of geek identity and culture, Dungeons and Dragons (version 4e). I imagine each game will take about 2 hours, with 5 to 6 players. I have already created the characters and settings, so gameplay should be fast. There is a a small bit of reading prior to each game, and ideally each player would watch one of the lord of the rings movies prior to playing. The game would be classic D&D, "the hero's hack and slash to save the world kind-of-story". Players would choose a classic class such as fighters, barbarians, rogues, clerics, magic-users, wizards, archers, etc.. Players will have a chance to play the following races: human, elven, dwarven, goliath, and perhaps a dragon-born. They will in turn fight the classic monsters, including orcs, dire-wolves, skeletons, spiders, and perhaps even a beholder. I was thinking about the following dates: Thursday, March 21 2013, from 1600 to 1800 in the board room Thursday, March 28 2013, from 1600 to 1800 in the board room Light snacks and drinks would be served (as is traditional for D&D games). I will handle all logistics, registration, total cost for one game would be less than 50 PLN for snacks. Anyway, I know this is pretty far over on the "weird" scale, but it does strike me as a potentially fun and social experience for our community. I would especially welcome people who have never played Dungeons and Dragons before. My request is for you to think about this proposal and get back to me with your reaction. If enough of you think this should be a "go" I would ask that you talk it up with your various divisions.
How should we formally evaluate technology integrators? You know, the folks in the classrooms, meeting with teachers, holding workshops, coordinating trainings, hand holding, pushing, shoving, cajoling, and generally doing everything they can to move technology forward. Saints, the lot of them. We have a special opportunity this year to create a formal evaluation for these folks. As technology director, I'll be formally co-evaluating the technology coaches with the building principals. These evaluations will be "official-in-the-personnel-file" evaluations. So what should be on them? Some of them are pretty easy: communication skills organization and planning contribution to the work environment But what about the meat and potatoes? How do we point to a technology coach and say "yup, that is effective technology coaching". Do I look at teachers that have worked with the technology coach? Do I look at the students who are in the classes? Artifact research? I see many technology coaches using project-based integration. Maybe we should just look at projects and base evaluation on their projects - that seems a bit thin to me, though. The purpose of evaluating a technology coach is to evaluate if this person is improving student learning in our school through the effective use of technology. I'm wondering: Are the coaches available for teachers? Are the presentation of training differentiated? Are the coaches working to change building culture? Do we see teachers using technology effectively and progressing with coaches? Are coaches using differentiated instructions for their teachers? Are coaches partnering? Ultimately, I think the smart thing to do is let the coaches build their own evaluation instrument. Of course, we will include goal statements and all that other normal stuff, but I think they all know best. What are your thoughts? What do you use to evaluate technology coaches?
If you ask 10 different moms what they would do in a given scenario, you will get 10 different answers. Especially related to computer use, filtering, and behavioral standards. Last year our school had a strong parent technology partnership program (I intend to build on it this year). One of our activities was to present a scenario and ask parents what they would do (this was led by the indomitable Nick Kwan). One of the questions was "what would you do if you walked into your child's workspace and they quickly minimized a window?". The answers ranged from "nothing" to "take the computer away for a week". Our school has a one to one laptop program. The school owns the laptops and the students take the computers home with them. We use open dns for filtering. The students have admin access to their laptops (which is a topic for another blog post - I love it). We got several (well-placed) criticisms last year which stated students were coming home with laptops, and parents had no way to control this device. I considered this complaint fair, because there really are a wide range of parental attitudes and beliefs to technology use. I tend to be fairly liberal and open about tech use, but many parents are not - they are conservative and very careful about technology use. Is it fair to send kids home with no way for parents to control their device? Of course we talk about social contracts, and talking with your child, and trust - but some parents have strong beliefs that a computer should be locked down (the 10 moms doctrine). The obvious choice is to install filtering software and teach parents how to use it (or teach them to use open dns). It's an option. If parents want to activate filtering, we tell them how to do it. If they don't want to activate filtering, then they don't. We are clear that there is to be no filtering during school time, only at home (from 3:00pm to 7:00am). We also talk about parenting advice and tips and offer parents a venue to discuss technology issues and share solutions to problems with each other. We talk about the technical weakness of filtering, that filtering alone can't solve many problems, and that at the end of the day, there has to be some kind of involvement with parents and their child's technology. tl;dr: people have different values, ed tech should do what they can to respect and support those values.
I have encountered a wonderful resource for learning HTML 5, Dive into HTML 5 by Mark Pilgrim. Not sure which adjectives to use, so I'll just use the always-helpful-but-not-really-because-it-is-overused, "awesome". Everything about this online book is great - I even (finally) got educated about unicode and character sets. His links for further reading are great. I've spent about 4 hours just reading and digesting - I'll certainly come back to this as I learn more and start implementing an HTML 5 site.
Orginal thought here The four noble truths of technology and learning. 1. Engage, stop, turn off, reflect. 2. Program 3. Participate 4. Sift I believe it is important to stop, reflect, turn off, and consider when we we are using technology in the classroom. This happens naturally when teachers are using technology to reinforce an idea or concept. The classic pattern is "let's learn about XYZ, a discussion, activity, and then a closing discussion". When teachers are using technology to teach, they must remember to stop using technology, and allow their students to reflect and think about what they just did. Take a look at that mashup - is it any good? Does it demonstrate learning, or just that you know how to use the tool? Does it meet our ideas for learning? This is the classic idea of kids who get caught up in the tool, and not the learning. Not rocket science, but very important for learning with technology. I think we can extend this idea further. When we are asking our kids to use technology and media, we need to ask them to stop and think. We didn't need to do this before the rise of 1:1 programs or ubiquitous computers. Why? 1. Divided Attention. This idea of multitasking really is bull. The more I understand about divided attention, the more I believe that we need to ask kids to focus and input on one thing at a time - sometimes. Part of being a digital learner is sifting (see my discussion on noble truth number 4) and learning to process and filter multiple streams of incoming data. Sometimes, kids should be free to "open the hose" and get drenched in the information flow that is the internet. But sometimes, they should stop, discuss, and think deeply - you know, Zen. 2. That so much of the internet is about commercial posturing, marketing, eyeballs and selling. Kids need now, more than ever, to separate the "froth from the foam". To carefully evaluate the information, the idea, the "sense of truth" they have. Kids need an adult to guide them in this maze of stilted information. 3. We have so many students who see the first three google results as gospel. This is lazy. Again, stopping and reflecting, digging a bit deeper, look for a different facet on this gem. Using different databases, different repositories. Even wikipedia (which I love). Students could benefit so greatly from simply reading the discussion page and seeing the disagreements people have about the article. I often find more truth in the argument about a wikipedia page than the actual page! 4. And finally, the way our brains work. A cognitive scientist I am not. But I know when we step away from the screen, and give ourselves time to digest, we tend to remember better. There is balance here. There is this unending stream of intense information, media, images, links, connections, and fun. It is not ok to turn it off, but better to teach our kids how to engage and then disengage. And then engage.
Looks like the fine gents at the lonely island have released another chart-topper for the Christian charts! This one is entitled "I just had sex" (vid here). The Lonely Island is a comedy troupe who, among other things, creates these funny videos. The videos often have inappropriate language, racy themes, and pretty much everything disdainful and horrible to well-adjusted parents of young children. The same comedy troupe made a very popular video (over 30 million combined views) entitled "I'm on a boat" (vid here). Again, inappropriate for young kids, and certainly questionable for teenagers. This video has been viewed 30 million times, and there is a pretty good chance your kid has seen it, will see it, or will soon hear about it, and then watch it. So what should you do? I suggest you talk to your kid about their internet use, create clear expectations of behavior, and be aware these videos are around. As always, we prefer a proactive approach to computer issues rather than reactive.
Seems like people have pretty strong opinions how they should name their servers. I understand in an enterprise organization you would want a corporate naming convention for your servers. Especially if you have billions of them. I'm sure google doesn't sit around and think how they should name their servers. The probably call them something like borg_7121_location_8 and borg_7121_location_9. But in small organization, there is something to be said for having fun names. This is actually one of the many small pleasures in the life of an IT guy in a school. Naming servers. People still call our fileserver Zeus, and we refer in-house to different servers around the school by their Greek names. I think it adds a sense of fun and playfulness to an IT department. Moreover, when a server has an issue, we ascribe the issues to a Greek Deity. Here at the American School of Warsaw, we are using Greek Gods as our server names. Today, we are setting up a virtual print server, and decided to name it Apollo. Seems to make sense for a print server (even if it is virtualized).
As of 4:00pm today, I've finished my tenure at Hunter College Campus Schools (the high school and the elementary school). I worked there for four years as an instructional designer, helping to integrate technology into the curriculum. If you'd like to see a normal day for me, take a peek here. I loved this job. The kids are amazing. Like, genuinely amazing. I will never forget the conversation I had with a 7th grade student (13 years old) about advanced cross-side scripting and brute force attacks. This was no script kiddie, but a well developed hacker. I met several others like him, who were profoundly gifted. One of my favorites is a student who zapped from one idea to the next - he wants to compile code on anything he can find, I think. He was dealing with very high level code concepts in 10th grade (16 years old) - so much so, he had to take classes at Hunter College because we couldn't feed him anymore. The students were the intellectual cream of the crop in New York City. It was such an honor to work with them, and support the fine teachers who guide them everyday. I ended up working more on the technical side of things than the integration side of things (a common occurrence, I think), but I saw the implementation of interactive whiteboards in every room, robust wireless network implementation, laptops for the teachers, transition to a fully OS X platform for the elementary school, and so many other things... I loved the faculty there. I really did. I recount the daily struggles and triumphs at our school. We had a chemistry teacher who is the nicest person, and he was delighted to learn how to incorporate pictures into his powerpoint presentations - he did wonderfully, and the students are able to see copper in different states because of his hard work. We have teachers who still don't even turn on their computers, and others who can't get enough. I worked with an active administration team, who was supportive, and engaged in the success of the students. It was a little frustrating working within the CUNY bureaucracy, but I learned quite a bit from my time at Hunter. I am left with a specific sadness as I leave; these kids and teachers deserve the very best (really) - it is my genuine hope they get everything they need.
Yes! I did it! I passed the New York State Certification tests for School Building Leader and School District Leader (SBL and SDL, respectively). PDF here. Soon, I'll be a certified New York State Principal and Superintendent. I am very happy; this was a ton of work (2 years) and many more years preparing. My goal is to be a director of technology (which I'll be realizing soon at the American School of Warsaw in Poland). But I suspect I'll soon be a principal. I'm enjoying a glass of Jameson Whiskey in celebration.
I recently had a wonderful meeting with a fellow ed tech geek here in NYC. He was helping me with some issues relating to blackbaud. The conversation was wonderful, he was insanely helpful, and we discussed all sorts of interesting things. He is a Drupal guy. I'm an Expression engine guy. After his enthusiastic recommendation, I started to review Drupal (it's been a while since I've used it). I did a fairly standard google search and was pleasantly surprised to find a thoughtful, well-considered discussion about the relative merits and shortcomings of both systems - very few flame-fests. I personally find EE's templating much more intuitive and powerful. I also like the way I have very fine control over my individual pages than Drupal. Contrary to some comments, I find EE's support amazing (you are paying for it, after all). I've had to avail myself of their help many times! I'm going to stick with EE. This may be due to the fact that I know EE really well. I like EE more - with one big reservation. I think I would more participative in the EE community if it wasn't a for-profit company. I know Ellis lab through emails and over 4 years of community interactions. I love what they've done with Code Igniter (open-source). But at the end of the day, if I am investing my free-time into a community, I'd like it to be about something more than helping (a really nice) group of people make money. Is EE a best-of-class product? Yes. Are Ellis labs intentions top-notch? I think so. But the one thing Drupal has over EE is it is open source in the truest form of the idea. I have recently begun digging back into Hspace - a text-based space simulator. As my three faithful readers know, I'm a text-based game aficionado - this is an open source project I would love to commit my (increasingly limited) free time to. I know (not personally) several people who made careers of supporting the Ellis lab ecosystem. I plan on using EE / CI to be the system that drives my school web-based communication company. I will continue to encourage people to use expression engine, and I will encourage people to take a long look at EE as an excellent choice for web publishing. I hope this post has added something to the discussion about EE and Drupal. I look forward to your comments.
I've deleted my facebook account. It wasn't one single event, but several which came together. 1. The intention of facebook went from "connecting" to "profit". Not sure when this happened, but icky. 2. I hate like - I dont want facebook to know everything (see #1) 3. Funny thing - facebook controls your privacy from everyone except facebook. They are selling gorgeous demographic-based advertising. (see #1 and #2) 4. Facebook says they own my data. So if I write a wall post - it's theirs. icky. 5. How hard it is to keep my student / personal information walled off. There' some things I don't want to know about my kids. I also already have a pretty well-established web presence, I'm building a bigger web-presence, and I never had trouble with people getting in touch with me. I'll miss remembering people's birthdays, I suppose.
I'm filing this one under teaching diary category. Today I asked one of my student-geeks to explain to me what a mutex is. 45 minutes later, he left my office, I have a headache, and I understand what a mutex does. He's 15 years old. I love my job. edit later in the evening, this student sent me the following email: Wow I just realized I did an awful job of explaining mutexes, but instead actually gave u the model i prefer, which is essentially designed to avoid them. whoops. Anyway, the mutex itself is the lock (or rather what a lock is called in unix systems -- MUTualExclusion (lock)). Basically think of it as an atomic pthread * (way to impl. specific, sorry) where when you need a resource associated with a lock, you do some system call (or something) to make the mutex point to the current thread (which is *acquiring* the lock) as long as it is null. If it is not null, it has been acquired by a different thread, and you need to not use whatevers associated with that lock until it is released by whatever other thread is using it -- which would set it to null. some common actions would be to implement a 'spin' lock, which basically is while(lock!=thisthread); or canceling the action. Note that resources associated with a lock are entirely programmer defined, meaning that you can do whatever you want with them, and you wont be stopped even if you dont have a lock, but the idea is to acquire the lock before using the resource (this is obvi way simple in object oriented code, where accessors can just acquire a lock thats an ivar of the object before actually changing the ivar). Many things which are 'thread safe' actually just use mutexes internally on all state variables. Second note - the impl. i described is prbly not at all the way unix does it, and syscalls are probably not involved -- gcc has builtin atomic operations which just show that this doesn't need to involve semaphores, although it sometimes does (beyond this is farther than I have plunged into OS kernel level stuff), but basically the main things to know are that with a mutex you acquire and release it. Oh, and mutexes make poor performance code, being that you're literally just intentionally wasting cycles waiting for something while you spin. I think thats it (I _really_ love my job)
One of my students came in and asked me this : So I realize this question sounds stupid (and yes I am using a dual core), but I have tried two different libraries (Grand Central Dispatch and OpenMP), and when using clock() to time the code with and without the lines that make it parallel, the speed is the same. (for the record they were both using their own form of parallel for). They report being run on different threads, but perhaps they are running on the same core? Is there any way to check? (Both libraries are for C, I'm uncomfortable at lower layers.) This is super weird. Any ideas? I told him this smells like a problem with the tool he is using to measure clock speeds, and perhaps an issue with the scheduler. He posted this question here and sure enough, clock() isn't the best way to measure code execution speed. This kid is 14 years old. I love this stuff.
I'm sitting here at work on Monday, February 15th. It's a federal holiday, yet here I sit, cleaning up my desk, writing, and tending to some projects I haven't had time for. Why am I here, and not with my wife and 9 month old? A robot. In the room behind me, there is a group of students (who are here during their February break) working feverishly on a robot. They are partaking in the FIRST competition - and this reminds me why I love teaching and technology. They bought a drill press (with a laser guide) to make the structure of the robot. They are excited, motivated, and absolutely focused on building this robot. It is a truly delightful thing, to see kids lit up about technology. With very little experience, they have built wireless controllers, steering, and even coded a simple autonomous control. They have done a simply wonderful job of building this robot. They are fairly sure they won't win this competition, but they are aiming for rookie team of the year. I often talk about games in education because I see how motivated the kids are. It is amazing to see the energy a student will put into learning when it is something they really care about - and this is exactly why I love experiential learning - and the strange looking robot behind me.
[url=http://www.pbs.org/wgbh/pages/frontline/digitalnation/]http://www.pbs.org/wgbh/pages/frontline/digitalnation/[/url] I sent this email to my faculty - in the high school and elementary school: Last night PBS aired a remarkable documentary about digital life in 2010. I found the documentary truly, truly, exceptional. I would really appreciate if you could take the time to watch this - perhaps this evening or this weekend. [url=http://www.pbs.org/wgbh/pages/frontline/digitalnation/]http://www.pbs.org/wgbh/pages/frontline/digitalnation/[/url] Last week I sent you a link to a study that stated the average child spends 10.4 hours a day using some type of media. I think we could all benefit from a discussion about how technology is changing the way our children learn, think, and see the world. I hope to lead a more thoughtful discussion about computers, media, and learning this year. Until then, I would really appreciate if you could watch this documentary. Here is a reply I received from a teacher: I did watch the Frontline documentary, "Digital Nation," last evening, and I must say that it was, as is customary of Frontline, very incisive and comprehensive. Many parts of the program, particularly those addressing the effects of technology on young people, were very unnerving. The situation in Korea should be seen as cautionary to the western world, particularly to us here in America with our almost idolatrous love for all things technological. That poor Korean mother has already "lost" her son to computer games, as far as I'm concerned because the son as lost his soul to the machines. I felt both sad and angry when I saw that part. For my part, as an educator and specifically as a language educator, I have very mixed feelings about the use of technology in the classroom. On one hand, it has made it possible to access, literally, the world with the click of a mouse. But I am equally concerned about the "losses": the loss of true attentiveness; the loss of the printed word; the loss of community and relationships and the increase of anonymity and the impersonal. "Digital Nation" posed many, hard questions about this but offered no easy answers. That's where we come in. But it is very important that those questions get asked.
This is a pleasant surprise! I'm offering an after-school, non-credit bearing class in advanced applications today. We will start with wiki's, move onto serious web design, and then finish off with video editing. I expect the class to take about 2 weeks. I sent out an email to all 10, 11 and 12 grade students - and I am pleasantly surprised to have 15 replies - all of them girls! I encourage young women to get involved in STEM - and I think this class is a great way to "bridge" girls into computer science and engineering. In my wiki class, I'll be focusing on templating, which uses variables. I'l keep you posted on how it is going. In the mean time, I plan on using this lesson plan for today's class.
This PDF is my lesson outline for teaching students how to read a wiki - it is quite utilitarian in nature - we don't talk about evaluating information, or triangulating sources. Instead, this lesson is about the nuts and bolts of using Wikipedia. It presumes the teacher has a moderate amount of knowledge in using Wikipedia. I'm encouraging teachers to use our school wiki for written assignments instead of written papers. This lesson is part of my effort.
I don't normally repost, but there is a nice piece from Larry Ferlazzo taking on "those who can't, teach" thinking. . It's nice to see how he picked apart this dubious claim, and his research trail. He asks for help, saying: "...I’d love for a math person to examine the numbers on page 91 of the report on the Condition of Education 2002 to tell me what it really says in plain English..." Here is the Condition of Education 2002 report (PDF) and here is the graph on page 91 and 92 I shared this blog post with my colleagues, all who said "what the hell does SAT and ACT scores have to do with good teaching?" Indeed, that.
I saw one of my students facebook post "my father joined facebook today - and the answer is no" on their wall. Hilarious, and a perfect example of how things have changed with regards to privacy, private-space, and the idea of public space. I call this the blur. The standard definitions and understandings of privacy aren't the same as they were in 1990. In schools, we normally encounter the blur when a student writes something inappropriate at home about something in school. But as we craft AUP's, and think about how kids use technology, we need to remember things aren't the same as they once were. As I think about how kids communicate, and the transparent, interconnected, and ever-linked nature of their connections, I realize how the blur touches everything. Things stick around, media is easy to share, hard to forget, and also strangely impermanent. I will write more on this later.
I work at a school for gifted kids. One of my great joys is having long, highly detailed technical talks with the kids. When I first started working at this school, I was shocked when I engaged in a 45 minute debate about cross-side scripting with a 7th grader (13 years old). I mean, this kid REALLY understood his stuff. Yesterday I had another such conversation. One of our students is just eons ahead of his peers as a programmer and geek. He generally likes to frolic with low-level code, device drivers, and small servers. He has a well-reasoned philosophy that light-weight, locally compiled code connected to the cloud is better than scripting languages and monolithic programs. Really neat stuff. We don't see eye-to-eye about everything, but from a geek point of view, he is a delight. He is, in every sense, an implementor. So, part of discussion yesterday was around "what to do" with a program. Like, what direction to take. After a few seconds thought, I told him to write a game! As I reflect, almost all of my programming knowledge and experience came from designing games, hacking games, and rolling my own game. Even now, I occasionally hack at a multiplayer text-based game and continue to learn. Time and complexity be damned! I'm sure he will write something really fun, and I can't wait to play with it. This is the magic I see in computer games - observe the time, enthusiasm, and energy they spend with computers. It really is intriguing. Now. A Practical Note (tm) - Making / modding a game takes a long long time in my opinion, not for in-class work. However, as long as there are good guidelines for outcomes (so the kid doesn't spend 10 hours making a flaming sword with an accurate heat ratio) hacking at a game is a delightful way to learn.
Yet another reason why working in education is incredibly rewarding. Now we need to hold a few bake sales so we can buy a karaoke machines. I wonder if President Obama's stimulus plan would include some disco balls, a couple of microphones, and a nice fat karaoke machine.
part 1 part 2 We started our exploration of MUD's today (specifically, we played legend mud). We talked about the similarities and differences between interactive fiction and MUDS. We used Atlantis client to connect. After a brief character generation process, we settled into the game - the syntax and milieu was familiar to the kids, save the "real time" aspect of muds. We noted the status (HP, MP and MV) and looked at SCORE, STAT, and other MUD commands. We put our party in a group and started with small MOB's like rats, toads and snakes. The excitement was palpable as the combat started - experience points started flowing into our group and each combat was followed by a period of rest as we waitied for our hit points to regenerate. It wasn't long before we ended up in a swamp, and encountered something (I forget the name) but it ended in a total party wipe. Humbled, we restarted and continued our adventures. Again, I was struck with their enthusiasm and excitement. These kids were (not literally) glued to the screen, laughing, jumping out of their seats and carefully coordinating their attacks. A snippet: Student 1: ok. Everyone type attack toad, but DONT PUSH ENTER! Student 2: ok Student 3: where is the d key? oh yea. ok! Student 4: ready! Student 1: ok! now! (The poor toad never had a chance) The time went quickly and with 5 minutes left, we debriefed. Again, we discussed the differences between MUDs and interactive fiction. We talked about making a text based game, and they were full of questions; how long does it take? Can I make a mud? I want to make a mud like our school! Is it difficult? They seem especially interested in making their own game...I warned them that making a game takes a long time. I told them we still need to explore the MUSH family of games (there is a world war II mush I might take them to in a few weeks) and then we will decide what kind of game we will make. I reminded them about the differences between single player and multiplayer, and I told them I knew more about mushing and interactive fiction than mudding, but if they really wanted to make a mud, I'd learn with them. Next week, we will continue to play this mud, and I'll start looking for a decent mush.
Our art department wants to scan about 1500 35mm slides. We'll be scanning at fairly high resolution, so each file will be around 5MB. We are looking for a digital image library - web-based - which will let us upload and categorize our pictures. We would like something like Flickr or Picassa. We'd like casual user management (single login for the whole school, and a teacher login to edit / change upload slides). Availability is important, as is optimization. We would like to be able to download original file size (like Xanga) or a derivative thereof. We're a school, so inexpensive == good. As this collection of 35mm slides represents the heart of our art department, we are interested in data integrity, and long-term storage. Please contact me here with any suggestions. Thank you!
From New Scientist Tech (warning: weird redirect thingy) comes this fantastic article (pdf here) about the tethered self. This op-ed piece talks about some of the social aspects of things like myspace and facebook. A quote: Our new intimacies with our machines create a world where it makes sense to speak of a new state of the self. When someone says "I am on my cell", online", "on instant messaging" or "on the web", these phrases suggest a new placement of the subject, a subject wired into social existence through technology, a ethered self. I think of tethering as the way we connect to always-on communication devices and to the people and things we reach through them.
Today is a professional development day at hchs. There are no students, and the faculty is busy in department meetings and taking technology professional development. I started the day teaching naviance and then moved to blackboard. Later this afternoon, we are tackling smartboards. It's hard to describe how cool it is to watch seasoned teachers look at this stuff and say "Man, that is cool...how do you use this stuff?" For me, part of getting games into the classroom is being part of the team. Getting professional development done, helping faculty with other technology projects and supoporting facult in their use of technology is a great way to help build an affective relationship with technology. It's a good, busy, great day.
I'm an open source advocate. I think there is a place for open source in education, and I regularly look for open-source solutions to common server tasks at my school. I'm an Ubuntu user at home (as a long time OS X guy, I'm loving ubuntu!). Yesterday, I asked my supervisor about changing our webserver from a windows/IIS environment, to a Linux/apache setup. She was shaking her head no before I was done with my sentence....the reason? Support. And you know what? I totally understand. I'm very comfortable using and administrating Linux, but in an organization like a school, there has to be layers of support. After all, if I'm sick, or leave, I don't want to leave the school in a lurch. Still, though, I admit to being a little dissapointed. My long-term career goal is to be a district technology coordinator. I will make sure to hire people who are conversant in multiple operating systems, and multiple network configurations. After all, as someone Way Smarter Than Me ©, said, "It's not what you know now that counts, it's what you are capable of learning as systems change". I think that's a good philosophy. Update: Looks like we will be putting Open Office on all the computers in our labs! Yahoo!
As many of my faithful readers know (all four of you), I am very interested in the role of games in education. And while I don't consider games to be the panacea for all our ills in education, I do think they can really push us in the right direction. After reading and digesting The World is Flat, my wife and I started talking about education. She is European and came from a very different educational background. As we were talking about what's wrong with American education, and American competitiveness, we tossed around some ideas, and came up with the following questions: * Maybe our students just aren't working hard enough? * Maybe parents don't make education a high-enough priority? * Perhaps we aren't doing the right kind of work in school (like focusing on basic skills instead of innovative thinking)? * Maybe we are doing pretty good, and the media is tainting our perceptions with yellow-journalism. I'm not saying our kids aren't capable of working hard enough, but as I think about American shrinking dominance in the world (which I think is happening) I look back on our educational system, and wonder how we can do it better. When I was living in China, I noted the kids weren't more or less smarter than any other kid - they just worked much much harder than students I was used to working with. I write this as a question, looking for a response and any comments.
Every Friday, we have some time during lunch recess in the computer lab. Students are allowed to come up and play games, surf the net, or listen to music. Today, we had a fifth grade in the lab doing some math problems (here), and as such, had limited seating available. The result? During lunch I witnessed an EXQUISITE planning process amongst 9 boys. Teams were created, different boys planned how they would take multiple routes to the computer lab to get their first, and roles were assigned in the game. They ate their hotdogs & chips at light speed, and, without waiting for lunch to end travelled over the sound barrier to the lab. They, of course, failed to plan on the following contingencies: 1) Other people on the stairs 2) Our "don't leave the lunch room until lunch is over" rule. 3) Each other (as they stumbled up the stairs) 4) The number of available computers (only 11 were being used, we had 18 free) In the end, I asked them all to come to the office, and we discussed proper behavior . I'm happy to report we had no injuries, just some excited boys. There was an animated discussion and debate about what actually constituted "lunch over" and "running on the stairs" ("Mr. MacKenty, I wasn't running, I was just moving quickly!"). And as I was walking up the stairs, laughing out loud at the ludcridity of the situation, I was again reminded why I love working with kids.
Hello! So today I heard some 1st graders (7 years old) imitating some characters on South Park (and here). So the thing of it is, I enjoy watching South Park. I think the show is satire, and regularly skewers issues that need it. It's a nice way to end a day (it's usually on in the late evening). It is, however, grossly innapropriate for younger children. Without the ability to correctly discern fun from fact, kids may believe the behavior, language, and ideas of the characters are representative of normal and acceptable behavior (when in fact nothing could be farther from the truth, that\'s one reason the show is funny). I don't advocate a strict "No South Park" policy; instead, I think a sensible approach to the show is in order. Parents should talk with their kids about South Park. Help them know and understand the difference, and discern fact from fiction. Discuss some of the ideas and provocative actions the show (regularly) hilights. What do you think?