Please create an account to participate in the Slashdot moderation system


Forgot your password?

Comment Re:This is why (Score 4, Interesting) 229

There are absolutely ways to stash file data in lossy compressed JPG files. You just have to have some knowledge of the file structure to know what bits are less significant and will mess up the file less. I personally wrote a steganography tool for JPEG-2000 files for a graduate school project - it just stored data in the least damaging sections of the file. The resultant files were still perfectly legal image files, lossy compressed, and minimally visually damaged.

Now if Amazon were to *transcode* every submission then you would be boned. But that would eat up a fair amount of overhead in processing time.

Comment BASIC Toy (Score 1) 414

I don't think of BASIC as a toy language, more as a teaching language. And you can do some interesting stuff in it, little games, simple programs, and it's all very easy to understand without some of the pitfalls of more "serious" languages, but it sets the stage nicely for you to move on to deeper languages later.

I do tend to think of LISP as a toy language though, and it was a lot of fun to play around with in my programming languages course (partly because it just intuitively made sense to me while 90% of the class when nuts trying to suss it out). But then too I did some fun projects in ICON in that class too, which probably makes it my favorite "toy" language. I remember building an Asteroids clone for my final project in ICON and having good times with that language. Not sure I could even still find a compiler for it these days though...

Comment Re:Conflicting with another California Law? (Score 1) 251

that every single employee who would have access to this data has the moral qualities of a Lensman, and that no one outside the government could possibly ever get hold of these keys.

I just had to step in and say: I'm SO GLAD to find someone else who liked that series =)

I also agree completely and believe this scheme is doomed to fail.

Comment Don't start with sorting (Score 1) 140

Look if you're going to start out you really need to introduce them to Boolean logic first and foremost. That is your lifeblood in computer science. Start with the basics - true/false, if/else then go to simple compound statements with or/and/xor/nand and show them basic truth tables for evaluating them. From there you can build out. And you should have them working on very simple projects.

If this is in a classroom environment where they will be doing actual homework and such your entire first week will be devoted to getting them to set up a basic build environment and have them do simple I/O. They needn't understand all the ins and outs, but they should be able, after one week, to build a simple "Hello World!" program that asks for input from the keyboard and prints the results back to the screen.

After Boolean logic you can start branching out. A really good goal to work towards is having them build out a text-based "Connect-4" style game. This gives them something they can actually show off and lets you build incrementally on a wide swath of programming topics. Start with loops - like how would you print out a row of empty squares on the command line? Then expand that to nested loops - how would you print out a 2d game board of empty squares? Now they can get an introduction into states - is it red's turn, black's turn, or is the game over? How do we keep track of which squares have a red or black piece in them? Oh wait, it has to occupy the lowest square on the board, how do you think we could do that? Now how and when do we check for a game over condition?

You can work collaboratively on the Connect-4 project with them throughout the semester as a teaching tool and assign side projects highlighting the topics you want them to learn along the way. For their individual final project you could have them make a Tic-Tac-Toe text-based game.

Depending on how fast they progress you could move on to more advanced topics - like showing them how to do a Depth First Search on the Connect-4 board to check for connected chains, modifying the Connect-4 game to be of arbitrary size/shape/connections for a win, and maybe some lessons on Object Oriented Programming by abstracting the game into its own class. Or maybe even introduce them to graphics programming by starting to make a graphical version of Connect-4 using the text engine as a base (the background structures are identical, all that really changes is how you draw the gameboard and how input is done).

And if you decide to show them sorting the best thing I can recommend is start with all the cards from one suit in a deck of cards. Then demonstrate how various sorting algorithms go about sorting. Remember - human sorting is typically a variation on insertion sort, that one will probably make the most intuitive sense to them, even though bubble/selection is easier to code up. This works well even transitioning into n*log(n) algorithms because you can at least visually show them the heap structure in heapsort and how it heapifies, the split buckets and merge process in merge sort, or the pivoting and splitting in quicksort. And don't get me wrong, I think sorting algorithms are fundamental to a good CS education, but they are kind of an advanced way to start. Usually that's a Sophomore CS class when you start learning about algorithm design and analysis (and it's often merged in with an introduction to data structures).

Comment Re:flush (Score 1) 412

Let me offer a counter-theory. Let's assume that this is an alien mega-structure (work with me here). Now as you say engineering on that scale would require an energy expenditure that staggers the mind. So we have to assume they're using something that supplies ridiculous amounts of energy that can be rapidly produced. Our current problem with energy production is pollution as a by-product. But consider - if we had cheap access to functionally limitless (by our current usage patterns) clean energy then what would be the new issue? Heat pollution. All that expenditure of energy would be heating up the planet very directly and by large amounts even if we removed all polluting chemicals. Wouldn't it be reasonable then, if we assume an alien civilization advanced enough to be engaged in stellar engineering, that at some point in their development of energy production they figured out a way not to be radiating all of that excess heat as a by-product of energy expenditure? Because otherwise their home world would be a molten hellscape just from all the waste heat.

And yes, I know we have no concept or even a physical framework as to how that might even be theoretically possible, but then too we don't have the remotest idea about how to begin a stellar engineering project either - not without some major advances in physics at least - so I don't think we could rule out some kind of industrial heatsink model either.

Comment Missing Infrared Signature (Score 1) 412

I just feel obliged to point out that if we are positing an alien civilization that can construct a Dyson Sphere/Cloud that blocks out fully 20% of a star's radiant energy in just under a century then why would we possibly assume that engineering that advanced would necessarily radiate excess infrared heat signatures from such a massive engineering project?

Comment Re:Really? (Score 1) 136

If the criminal is tech savvy enough and motivated enough to hack your camera's firmware in support of robbing your house, then you were boned anyway. They're already too dedicated to getting in for a small COTS CCTV solution to stop them. At that point of opposition you would need to invest in a more expensive security solution.

The solution as presented is sufficient to stop your basic smash and grab / crime of opportunity attacks. At that level you don't have to worry about firmware hacks.

Comment Re:Majority of successful programmers uneducated? (Score 1) 397

Your story would be much harder to start today. It's very difficult to find programming jobs without having some sort of degree to get your foot in the door. At this point in your career you have so many years of experience that the degree is now irrelevant. It can't teach you anything you don't know (most likely).

But what a degree does give you is a jump start. You still have to have an aptitude for programming either way, but a degree can expose you to a lot of the pitfalls that you otherwise would find out about on your own. There's another comment in this thread from a guy who talks about his co-workers re-inventing red-black binary trees for example. That's probably going to be one of the biggest areas is algorithm analysis. Knowing the tradeoffs between an O(n*lg(n)) sort vs. an O(n^2) sort and when to use one over the other. Formal definitions of inputs/output, invariants, graph theory, boolean logic, statistical analysis - all of these *can* be picked up along the way, but it really really helps if it's front loaded and you don't have to muddle through and figure it out on your own.

Comment Re:It's not entirely a lie (Score 4, Interesting) 397

Programming education should try to find people who have the aptitude to be good programmers and quickly weed out those who never will.

I had a professor in college who would actively and zealously apply this principle. His class was the one gateway class in all of the computer science department - if you couldn't pass his class, you couldn't get a CS degree period. When I was an undergraduate I remember his class being a lot of work but surprisingly engaging and with interestingly tricky problems to solve. When I was a graduate student I got to see behind the veil a bit and he explained how those tricky problems would separate out the folks that shouldn't have been in the class in the first place. I always thought that was kind of cool, that he cared about the state of the field that much to not want people who shouldn't have a CS degree to get one.

Comment Sounds Out of Touch (Score 1) 172

That advice seems really great for people that have tons of disposable income where they can split their assets like that. Meanwhile, the 75% or so of the populace that's living paycheck to paycheck is going to take one look at that and be like If you're barely making enough to pay the bills how are you supposed to fork your assets into two different accounts like that?

Comment Yahoo! Mail...Site? (Score 1) 328

Wait...people actually still use web-based email? I thought everyone got their messages on their smartphones these days. I almost never use the web interface except for those rare and few occasions where I need to send a file from my computer specifically. And even then I'm apt to just punt it to Dropbox and send it from my phone anyway...

Slashdot Top Deals

Pound for pound, the amoeba is the most vicious animal on earth.