Disclaimer

The content of this blog does not reflect the positions of the Peace Corps and is solely the responsibility of the author.
Showing posts with label computers. Show all posts
Showing posts with label computers. Show all posts

The Incredible Thinking Machines

0 comments
I finished my final multimedia class unit of the semester, on games and game design, with a brief overview of AI.  After discussing Turing's Polite Convention, I asked my students if they believed that computers could think.  The confident response, with which the whole class claimed to agree was, "yes, computers can think because they have brains."

Since in the secondary schools, students in ICT classes are forced to memorize that the CPU is the brain of the computer, this isn't too surprising, though like many things secondary school students are forced to memorize in ICT classes, it's not really accurate.  It might be accurate in a broad metaphorical sense, but broad metaphors are not helpful in this case.  Computers do not have lumps of grayish organic matter inside them.  That would be gross.  Nor do computers have a simulation of a human brain.  That is currently impossible.

So I spent a while asking my students questions about what it means to think, which confused them, but they did bring up remembering and making decisions. So I talked about the differences between human memory and computer memory, and then we talked about how we  humans make simple decisions, e.g., what clothes to wear in the morning, and what facts (cold, dirtiness) we might use to make decisions, and the cultural factors that they don't necessary consider when making decisions (I told them that American university students might show up to class in their sleeping clothes.  My students were shocked.).

Since Tanzanian children play a game completely equivalent to Tic-Tac-Toe (the proof is left to the reader), I drew a board and had the students tell me which opening move they would make if they wanted to win, and which move the next player makes to try to win and so on.  Then I asked how they decided a move would help them win and how a computer could decided.   I actually talked them through the minimax algorithm for solving it, and told them that I could assure them they were not doing that in their brains when I asked them to try to win.
A Tanzanian Tic-Tac-Toe board.  Stones may be placed at
line intersections.  The object is still 3 in a row.   

Yes, I know I'm being ethnocentric calling it Tic-Tac-Toe, and I'm sorry, but the students all said they didn't know of a name for this, but most of them had played it as children, so I'm calling it TZ Tic-Tac-Toe because it is grammatically convenient for stuff to have names.

I always get this feeling that students never believe me when I contradict something they've been memorizing and receiving rewards for regurgitating, but I think the majority of the class actually thought a little about what it means to make decisions, and how complicated it can get, and that's all I was really trying to get across.  Well, that and don't just repeat stuff to me without thinking about it.  Arguably a lot of computer science is describing things in a very precise and unambiguous way.

In Which I Continue to Almost Teach

0 comments
I've been grumpy this past week.  No particular reason, I think I'm just losing patience with the things of the culture that annoy me here as I approach the end of my service.  I'm getting tired of flaky scheduling and stupid questions* about U. S. culture.  I'd rather not come into the office and have to field questions like "if you accept same-sex marriage in your country, what will you do if a man you want to marry marries another man instead of you?"  How is that any different from asking what I do if a man I want to marry marries another woman?   And why do all questions I get revolve around who I'm going to marry, anyway?

Then of course, there is the teaching situation.  I couldn't teach today because I found out my class period is scheduled for the same time and place as another class period.  I couldn't learn this last week because the other lecturer didn't bother teaching last week.  Grump.

At least today I got an email from a student asking me an interesting question that I didn't know the answer to!  I love it when that happens.  The kid went to my Linux seminar and now wants to know how to play a music file straight from the terminal in Linux.  I like working straight from the terminal for a lot of things, but it has never even occurred to me to try doing that.  For the record, I  suggested mpg123 and installed it myself. So far it is working quite well, if testing my knowledge of regular expressions in selecting multiple files to play.

*From my students, there are no stupid questions, because just getting them to ask any questions is a victory.  From people I may or may not know who start asking me about marriage apropos of nothing, there are plenty of stupid questions.

Seminar! Now with Pictures!

0 comments
Today, we moved to talking about server editions, and I did not give anyone a graphical interface.  All terminal, all the time!  Hahaha!  People still seemed into it!  It worries me that I get very few questions though.  Though one question was an incredibly good "how do we create a Linux culture here."  Umm, honestly?  I don't know.  Maybe tell your friends, try to help them (if you want), spread it from the grassroots level?   Two more days.  I'm really excited that this is happening and going well.



Award, another lecturer, helps out explaining to students. 





I have a weird face while teaching, but my dress is pretty. 

Giving people notes on their flash drives after the session. 

When you give students your camera and ask them to take pictures,
you get surprise photos. 

Seminar!

4 comments
I have just finished day 2 of a five day 2 hr/day seminar on Linux that I'm doing with my counterpart.  (Yes, it's weird that it starts on Thursday and breaks over the weekend, but our original plan of starting on Monday was revised at the last minute because Pagan Fertility Festival aka Easter.)  So far we've had ~25 people/day, many if not most of whom are my students.  I'm ok with that.  Actually, I'm a lot less nervous talking to my students than I would be talking to complete strangers.   Today, I noticed some of my students had gotten the notes in advance and were helping the people around them.  I could not be more proud.

Day 1 didn't go as well as I had hoped.  One of the other lecturers offered to teach the very basics of day 1 so I wouldn't have to teach all 5 days, and I accepted because 1) I should be encouraging participation and doing as little as possible because sustainability and 2) I was very nervous because some sys admins from the offices in town are present as well as lecturers from other departments, and I get nervous about teaching people who are real adults.  I wish I had just taught it myself since this lecturer, while good at lecturing, ignored every place I had written demonstration in the notes (I prepared all the slideshows and notes) and then people rightly complained that the seminar didn't have enough practical instruction.  But it's ok, today, I totally made people do things along with me, my students helped, and no one told me I should be doing anything better by Monday, so either I'm hopeless or awesome, and I just got to stand in front of people and proclaim my undying love for wget -c, so I'm going with awesome.  

Teaching, the Non-Frustrating Parts

1 comments
I do actually enjoy what I am doing, beyond the moments of frustration.  In fact, besides programming (which is and should be a difficult class), I have a multimedia class which I sort of set up just to be enjoyable.  Well, at least for me.  I have no idea what the students think, but they have yet to complain.   And they try.  Their semester-long assignment is to produce music videos, consisting of both still images and video footage they have taken themselves, with audio they have at least edited themselves.    They are not amazingly wonderful videos or anything, and clearly very few of them listened to my talk about not overdoing it on the fancy transitions because it is unnecessary and distracting, but I know it's easy to get carried away with fun transitions the first time you play with a video editor.  And they went to some effort and different places to get their video footage, and did not produce the standard Tanzanian music video of a line of people doing the same dance moves over and over for 10 minutes but with costume changes every three seconds.  So I call this a win.

The project I had rather mixed feelings about was one in which the storyboard (I made them make storyboards!  Mostly because I wanted to see what they would do.  It was unquestionably the most fun thing to grade ever.) showed a Miss Elizabeth (I tell them to call me Madam Elizabeth because it is difficult for Kiswahili speakers to pronounce my last name) arriving from America, and she is drawn in a rather short skirt for cultural appropriateness and is also a rather curvily drawn woman. I'm not sure how I feel about this.






Fortunately for their actual video they had to use one of their group members (not named Elizabeth) as their Miss Elizabeth, because I decline to star in student videos.  While their leading lady is progressive enough to wear pants (go her!) she does not follow the storyboard wardrobe choices.   I am uploading their video but I edited it to remove the end credits with their names.   Also, the still title image is the picture they edited as the first part of their project, which was to use image editing software and a camera to produce a poster advertising what they were doing.  This group's poster was one of the better ones in the class, they did a good job blending together various photos.







Note: everything is used by permission.  I asked the class if it was alright for me to show their work to people in America who were interested in learning more about Tanzania.  Everyone said yes.  Or at least no one said no.

In which I am a University Organization's Keynote Speaker!

0 comments
So it's just the computer club here at the Mbeya Institute/University* where I teach, and I'm the faculty advisor for the computer club, so I'm not sure it really counts.  Nonetheless, I was asked to present something I was interested in to educate club members, and the club president advertised that I was going to be speaking and some people from outside the club and the computer department entirely showed up on the basis of this!  The presentation also seemed to be well received--I just did a 50 minute or so talk on emulators and virtual machines and mostly just showed people the stuff on my computer, WINE, dosbox, a Windows XP virtual machine, and cygwin installed on the VM.  I talked briefly about the hypervisor and the scheduling problems it has to solve and demonstrated how to install and uninstall a VM using virtualbox.  I also mentioned that I was considering switching to vmplayer because Oracle acquired virtualbox and I don't like Oracle as a corporation, but my laziness tends to get in the way of my software related political gestures.   I got a lot of fairly good questions, someone actually asked me to expound on scheduling algorithms!  I love scheduling algorithms!  My favorite is shortest deadline first, unfortunately, multicore systems tend to break it so we have to switch to the much less intellectually satisfying credit system.    Anyway, I enjoyed it, other people seemed to enjoy it, and several people asked me for the virtualbox program (I came prepared with the windows setup package) and some of my .iso files. Preaching the good news of virtualization here in Tanzania!

*I think they changed recently to a university, which leads to an acronym change from MIST to MUST, which I actually disapprove of.  Mist is poetic, must is either smelly or something demanded.

In Which I am Still in Love with my New Site

0 comments
My new school has a lab technician who is not me!  This is exciting.  It is also exciting that I have reasonably firm approval to teach introductory programming, and do it in Python rather than C.*  Meaning I can make a Python install CD, show up, spend a certain amount of time showing the lab technician how to set Path variables in Windows and open a terminal to test the success of setting the variable, and then leave, because I have important things to do at home like make cookies. Not only do I not have to do all the lab work myself, I actually taught someone something about doing things to the lab computers, which is so much better than at the college, where the people who claimed they would "work together with" and "learn from" me had a tendency to answer their phones at the beginning of the process and then disappear for hours.   Though as a side note, that a lab tech doesn't know how to open a terminal terrifies me ever so slightly.  I accept this to a certain extant from even American undergrads, who know nothing of their computers except how to get online and possibly some word processing.  But a lab tech??  What do they teach in schools these days, grumble grumble.  Or I guess actually those days, since, like most teachers and some students, the lab tech is older than I am.  Still, in my day, all we had were terminals and ASCII art games!  Windows 3.1 even was a thing of the future.  Get off my lawn, all ye who rely wholly on graphical things.  

*Not that I have anything against C, in fact I think it is a delightful language.  Everyone should know at least the basics, but for beginning programmers, I think Python is easier and more fun.

In Which My Computer Problems are Still More Complicated than the Average Person's Computer Problems

2 comments
At my new home, I get an average internet latency of ~200 ms.  At my old house, I was getting, on a good day, between 400ms and 600ms.  To put this in perspective, websites load up to around 2000ms latency, but after around 800 ms you have to turn off images and be really patient.  Above 600ms video streaming isn't really worth the trouble and above 400ms it requires significant buffering time.  The point of all those numbers is to explain that at 200ms a lot more is possible on the internet.

Turing bless some amazingly generous friends of mine for providing me with 1) access to a stateside machine with permission to use it as a proxy server provided I set up RSA authentication rather than passwording into it (it's a reasonable stipulation), and 2) the password to a Netflix account with unlimited streaming.  The reason I care is that a lot of fun stuff from the states is only available to US IPs, for example, Netflix, a lot of Youtube videos (including Funimation's entire catalog which they tantalizingly uploaded to Youtube and then geoblocked outside the US.  Jerks.), the Daily Show, anything on NBC, and Pandora my favorite music streaming station.     Needless to say, having access to this stateside machine made me really excited.  Until I decided to check the internet speed on it and almost cried when I realized what I lost by leaving the US.  6ms latencies?!

Getting access to everything was pretty straightforward except that I've never set up a proxy server. I am the dumb kid of the CS department.  Nonetheless, with Google I can do anything.  The main issue was getting Netflix, because I can't run that natively under Linux.  Netflix uses some magical special proprietary player that doesn't play on Linux.  Fortunately, this is one of the things I can use a virtual windows machine for.  That becomes much more complicated with proxy servers involved, because even with the proxy as the system wide network setting on the host, it is not immediately obvious how to get a guest machine to use the proxy.  At least, not on VirtualBox it's not.  This shouldn't be a huge issue for me, really, because weirdly enough I am one of the world's experts on networking in virtual machines.   Also, I now have Pandora to provide me with music while I work on this.  But because I have a tendency to hack my way through problems rather than really acquiring expertise it became easier to install Cygwin on the VM so I could have a Linux-emulator to set up a second proxy server specifically for the VM (okay, so it's probably possible to do a proxy setup and Windows, but I understand how to do it on Linux)  Which is when I figured out that Cygwin's ssh key authentication is a little strange but ssh has helpful debugging output.  Another reason to do this out of a Linux emulator rather than using Windows system tools, I don't know how to troubleshoot stuff on Windows.   Anyway, I am now running a proxy out of a Linux emulator on a Windows virtual machine hosted on a Linux machine.  Which is running the same proxy at the same time.  Go me.  The amazing thing is the virtual machine and emulation isn't enough of a bottleneck to make streaming video off Netflix impractical.    

I realize most people that I know who read this blog don't care about any of this, but I had a good time.