Is this really necessary? I mean, I'm sure there are a lot of people who don't know who he is, but how many of those people read to the end of Wall Street Journal articles about cybersecurity?
The Fed, headed by Chairman Ben S. Bernanke, argued that revealing borrower details would create a stigma -- investors and counterparties would shun firms that used the central bank as lender of last resort -- and that needy institutions would be reluctant to borrow in the next crisis.
No shit, Sherlock! I sure wouldn't invest in something that racked up that much debt, and I'd be wise to avoid doing so. But I guess if you're not going to keep secrets in a way that entices people to make terrible investments, it makes sense to plan for the next crisis instead of fixing this one.
Code Search is also the only way I know of to figure out how to use libraries with barely-documented interfaces. Killing Code Search will also effectively kill many useful but hastily developed small tools that people might find useful.
Intel's move to SW upgrades of CPU microcode is creating the tech and business infrastructure for regular FPGA upgrades to these new hybrids.
Not to mention undetectable, CPU-resident malware. Yeesh. If FPGAs get cheaper to manufacture and program in huge quantities than regular non-reprogrammable hardware, then sure, use them. But don't make the whole freaking CPU reprogrammable via software running on that CPU. That's going to be nasty. Think AESDEC becomes AESDEC and copy the key material off to somewhere shady.
I don't think it's a particularly scary movie. Most of the bad guys are just normal people in latex cat suits, and they don't meet their ends in particularly horrific ways (except for the one guy that gets thrown through the propeller). To me, Red Skull seems too weird looking to be scary. If he looked more human, he might be kind of scary, but he looks slightly more like a real person than Shrek. The costume is pretty good, which is to say that he doesn't look fake; he just doesn't look human, so it's not very freaky. Just my two cents. If anything might scare your son, the scene where they perform the experiment on Steve might. It's obviously pretty uncomfortable, but you can't see anything, and Steve takes it like a man.
Having seen Transformers 3 when it came out, I was quite relieved that this movie lacked the sexual exploitation and inane humor that are so common in big action movies and that Michael Bay has turned into a science. If you want your kid to enjoy and get something out of any of the recent superhero movies, this is probably your best bet. Cap's an imitable, stand-up guy, but his story doesn't feel preachy or overly simplistic, and it's not diluted with raunchy filler for its own sake. Plus, it's big, loud, and exciting.
It's been pointed out before, and is worth pointing out again, but US government default is prohibited by the 14th amendment of the constitution [wikipedia.org]. Whether they follow it or not is left to be seen.
IANAL, but if the US government defaults, aren't they just saying that they are unable to meet their obligations? That doesn't sound the same as questioning the validity of the public debt. To do that, I should think they would have to default and then lie and say they didn't.
I'm a junior in college majoring in Electrical and Computer Engineering. I haven't "accomplished anything" that Evans would take seriously at this point. The main reason is that I'm extremely busy for most of the year. I work for probably between 55 and 65 hours a week on average. Could I contribute to open source projects or develop Android apps on the side? Sure, if I wanted to regularly stay up for four days at a time and accept a hit to my QPA. (I know people that do this.) Last summer, I wrote a good amount of code for internal use at the company I worked for, but I can't really go sticking that in portfolios. I hope that Evans will forgive me for taking an actual break on my winter break, as opposed to seeking out "real-world projects with real-world users" to contribute to in a way that I can demonstrate pre-interview. (I want to do systems software, so things that I would seek out to work on probably won't have that many direct "users.")
I can buy that a technical interview with no demonstration of coding ability might let through some inept people. I got my last internship with just one technical interview. I hope I turned out OK. The company I'm working for this summer had a more thorough process. The recruiter comes to campus and interviews people whose resumes they liked from the career fair a few weeks prior. I can't remember much about that interview, but I don't think it was very technical. It only lasted about half an hour. Later that day, everyone that interviewed got an email directing them to go to a website and take a timed test with various programming questions. Most or all of it was multiple-choice, and there might have been some short-answer questions. People who they liked on the basis of the interview and test came out for on-site interviews. There, I was given a programming problem and five hours by myself to solve it optimally. There was a guy somewhere else in the building who I think was looking at my code periodically who would come over at various times and ask me if I could do anything to improve performance for a particular input. After I was done coding (actually the next morning), the actual interview occurred. The interviewer had read my code (and maybe talked to the guy who watched me work), and he asked me to explain it and describe my thought process as I designed it. I'm pretty sure that was the most important interview. In the other one, I asked the interviewer how he liked the surrounding city, and he talked about that for 20 minutes.
I haven't started working there yet, so it's possible that I could still show up and be the new guy that can't code. I think I can code. In the last year, I've helped write most of a small OS kernel for ARM, and I've helped implement a basic MIPS processor in Verilog (not real programming, I know). Those were both partner projects, but the commit logs will show that I pulled my weight. Nevertheless, if Evans recruited for this company, he would probably complain that I was working on contrived problems and that nobody actually used my results. I don't think that means that it wasn't freakin' hard or that I didn't do a good job. The interview process seemed pretty solid, though. It also seemed pretty time-consuming. I've never hired or managed anybody, so I don't know how you decide how much time to spend on a candidate.
Well, the best of my knowledge was wrong. I was combining Great Theoretical Ideas with another course about functional programming. Great Theoretical Ideas is entirely theory and has no programming component. Nevertheless, it perhaps addresses at least some of your concerns about teaching problem solving.
Right now, CMU offers a CS course called Great Theoretical Ideas in Computer Science, which I think fills the gap that you are describing. Its course description from the course catalog:
This course is about how to use theoretical ideas to formulate and solve problems in computer science. It integrates mathematical material with general problem solving techniques and computer science applications. Examples are drawn from Algorithms, Complexity Theory, Game Theory, Probability Theory, Graph
Theory, Automata Theory, Algebra, Cryptography, and Combinatorics. Assignments involve both mathematical proofs and programming.
To the best of my knowledge, this course is currently taught and will continue to be taught using functional functional programming. I took the Fundamental Data Structures and Algorithms course referenced in the article. It has some of the problem-solving ideas from Great Theoretical Ideas, but it's more about just knowing what algorithms are out there. Up to this point, the course has been taught in Java with heavy focus on object-oriented ideas, but that will now change to functional programming with ML. I appreciate the benefits of the knowledge it provides, but its mathy nature was sufficient to convince me never to take Great Theoretical Ideas. I'm more of a systems guy.
As an Electrical and Computer Engineering major at CMU, I agree with you. ECE students currently get almost all of their programming experience from courses offered by the CS department. Those of us that go the software route generally tend in the systems direction or at least toward things that are useful in a non-theoretical sense. The upper level systems courses in the CS and ECE departments depend on the course Introduction to Computer Systems, which will stay the same during the change from OOP (Java) to FP (ML). Currently, this course depends on a freshman course, Effective Programming in C and UNIX. This course is to be replaced during the transition. Apparently, it will start by gradually weaning students off of the nice, clean functional model of execution and only allow them to use a "safe" subset of the C language until the very end.
I fear that there will be a nasty chain reaction of sorts: students will start with one of the intro courses and get the functional view of the computer without learning much at all about how it actually works or why that might be important. When they get to the imperative course, they will spend significant time learning what were previously considered to be the basics of introductory programming. Because of this, they will spend less time actually becoming proficient with C and Unix. When they get to Intro to Computer Systems, their lack of proficiency will make what is already a very challenging course an absolute nightmare. I predict that, as a result of the planned changes, fewer students than currently do will stick with computer systems.
This sounds like completely run-of-the-mill encrypted email that you also have to pay per message and identify yourself for. The one significant advantage that I can see is that you might be able to convince other people to actually use it.
I like the floating header and sidebar, because I can see the useful links wherever I am in the page. If I had a small monitor, it might come across as a waste of space, but it's fine for my situation. They don't seem to float on my phone, which is nice. More than a new regular interface, I think that Slashdot would benefit for a phone-optimized interface that takes effect when you visit with your phone. This interface doesn't seem much worse than the previous one on Android, but it is still pretty bad compared to websites that design specifically for phones.
If you've never programmed before, then you will likely need to practice thinking in a logical, structured manner. Certainly, you should learn your first programming language while doing this, rather than take any kind of math/logic course. Unless, that is, you really like that sort of thing. Posters above me have suggested starting a project that you are motivated to complete, finding out what language is most suited to your goal, and learning it as you go. This can work, but you may hit a few road blocks:
When you aren't that familiar with programming, it is hard to know which language is the right one to use. If you have perfectionist tendencies like me, this problem could completely halt your efforts to learn programming. Note: avoid such behavior. For really basic stuff, most languages will be serviceable, but you might get along faster if you use one considered appropriate to your attempted task, simply because more experienced people will know how to fix the problems your run into.
If you aren't particularly creative, also like me, you may not have any projects in your head just waiting for the right programming language. I find it nice when I'm learning a new language without a project in mind to have assignments with clearly defined goals and reference solutions with explanations.
If you learn your first language as need dictates, you may end up doing things the hard way because you didn't know that better options were available. A guided tour of the language features is helpful to prevent some of this. This is also where the new way of thinking comes in. As you learn logic and math (while learning programming, as suggested), you will probably learn some pretty basic algorithms for doing common things, and knowing one half-decent way of doing something will keep you from sticking with some horrible way of doing it because you can't think of anything else
To get around all of these potentials problems, I recommend the book
Python for Software Design: How to Think like a Computer Scientist,
which I used when I first learned to program, back when it had a different title. It is available for free here, under yet another title. It's positive attributes are that it uses Python, contains short problems at the end of each chapter (many with solutions and explanations), and explains various things about math, logic, and algorithms as it goes along. Python is a good first language because it doesn't get into details of hardware, it is interpreted rather than compiled (quicker feedback when you change something), and it has clear, simple syntax that enforces good style. If Python doesn't suit you for whatever reason, I would recommend that you seek out a book that professes to teach you how to think as well as how to program.
I have been assuming that you intended to self-teach, but an introductory computer science course at community college should also work. The quality of your education will depend upon your instructor, but that's not much different than picking up a book and hoping the author knows what he's talking about. I think Allen Downey does a good job, but that's just me.
If you do one of these things, learn a language, and it piques your interest, learning other languages is a good time to find a project you're interested in and learn the appropriate language as you go, already having the proper mindset and background under your belt.
Linux: Rute User's Tutorial and Exposition by Paul Sheer is what I used when I was first getting started using Linux. The first few chapters are about computers in general, and the rest of the book is about Linux. Approximately one third is about being a user, and the rest is about administration. The entire book would be a bit heavy for an introductory computer course, but you would have no difficulty finding in-depth explanations of the things you described (file systems, what the operating system does, etc.) in a Linux context. The book is intended to teach you how to administer Linux systems, but it really gives you a thorough understanding of how the systems you're configuring work. Even if you don't finish the chapter on configuring your box as a router, your students could get a lot out of the first part of that chapter that explains how IP works. It's a very long book. There's probably a section for whatever you would want to talk about in a basic computing course.
I can't recommend this book enough. It is by far the best book that I have found on how to use *NIX systems, but it is much more than that, and it significantly furthered my computer education.
Re:But what of using robots on civilians
on
Wired for War
·
· Score: 1
Will robots take away any responsibility or accountability for war crimes or atrocities? When 20 people are wiped out by a "robot malfunction", is it any less heinous? Who is held responsible in these cases, the manufacturer, the operator, who?
At a lecture I attended where Singer talked about the book, he contended that responsibility for a "robot malfunction" should be traced the whole way up the chain of everyone involved to find any people who were responsible, and that they should be held accountable accordingly. If the operator screwed up, then he shares in the blame. If the malfunction was caused by a software glitch, then the manufacturer, and even the individual programmer share in the blame. This was a little bit of an unpopular statement in a room containing mostly people that are or will be robotics engineers or programmers. I haven't read the book. so I don't know how much he elaborates on this idea, but he gave an example system where the robot programmer receives a fine when the robot malfunctions and hurts somebody.
Some of these ideas seem like they would work to ferret out bias in legal proceedings, but mostly this would be because all of the judges and lawyers were too busy participating in scientific evaluations to actually get any (potentially biased) work done. The experiments that he describes (like holding two trials on the same charges for a white guy and a black guy) could take days, and that's just for one judge. To rigorously test the entire judiciary (and I imagine that this would optimally take place periodically), you would probably need almost all of the time of almost all of the judges, not to mention all of the other people that have to participate.
The thing about having a panel review alleged child pornography before charges are pressed wouldn't take that much time, comparatively, but preventing incorrect charges isn't as important as preventing incorrect convictions. IANAL, but isn't that what grand juries are for?
My high school had laptops for every student, and one of the most annoying things was the VPN. While the laptop was attached to the school's wireless network (maybe the wired network too, I never used it), access to any site outside that network (including the school's own websites) required you to join the VPN, for which you had login credentials. That meant that every time you opened the computer, it took probably two minutes to get on the Internet, what with waking up, joining the wireless network, waiting for the VPN client to connect, and entering you ID.
This may have facilitated some kind of logging or something, but I found it extraordinarily tedious, and the VPN sometimes failed, kicking the whole school off of an otherwise good Internet connection.
I am a big fan of Allen B. Downey's How to Think Like a Computer Scientist: Learning with Python. It assumes no knowledge of programming, and it takes the reader through the ideas that are central to computer programming while teaching them Python.
It starts by thoroughly defining variables, expressions, and statements and then goes on to teach functions. Conditionals, recursion, and other fairly standard operations are discussed. After introducing each of the basic classes that are built in to Python, the book finishes with an introduction to object-oriented programming. It covers the general concepts of objects and classes and then shows the reader the use and usefulness of classes such as linked lists and stacks, guiding the student through their implementation.
Throughout the book, Downey shows the reader how to develop a programming mindset and teaches effective debugging and incremental development. I found it both informative and interesting reading. The book is replete with examples, and each section has a programming challenge at the end of it to test the skills just acquired.
The book is available for free on the Web or can be purchased as a physical textbook. I have only read the Python version, but the same author has other versions of How to Think Like a Computer Scientist using C++ and Java.
Look, religious infection of government is the predominant problem of our time.
Not irreversible climate change? Not dwindling natural resources? How do religious extremists cause us not to address our dependence on foreign oil? Maybe some of the people who do that are religious extremists, but they do it because they are greedy and lazy (read "people"), not because they fanatically believe that we should dump tons of money into countries that hate us in the name of cheap energy.
I think most Americans would be more supportive if we could just trust our leaders.
Well, no arguing with you there.
What are these wars for? Oil? Christian crusades against Moslems? What?
That said, I think we can rule out the Crusade angle pretty easily. We went over to Iraq and killed some Muslims who were killing lots of people... who were Muslims. If we hadn't had some of the strategical gaffes that we did, Iraq might be on it's way to being a pretty sweet place to be a Muslim. And yes, they might be selling us some of their oil. I will give you that.
Now Barack Obama is sucking up to the religious right, instead of telling them they are unacceptable in a democratic, American society.
You don't win presidential campaigns by disparaging the free speech rights of prominent demographics.
Hell, how can our military itself keep their own morale going when they are "getting so much resistance, from behind"?
Who said that? I didn't say that. But I'll allow that the wars in which we are engaged are very unpopular now, which kind of calls into question your assertion that politicians are pandering to war-supporting religious extremists. If most people oppose the war, then politicians should be pandering to them.
How different is "born again" GW Bush from Bin Laden, really?
Again with the quotes. "... 'born again' [sic] GW Bush" (that's how you do that) is
an elected official who
will step down voluntarily in six months.
Those are the big ones. Also, he requires the consent of a large number of publicly accountable people to do a lot of stuff. When they let him do stupid things (Iraq), they get voted out (midterm elections). When he bucks their authority or that of the laws they create (warrentless wiretapping, GITMO), he gets the courts after him, which, come to think of it, is another difference between Bush and bin Laden.
These differences do lend credence to your point that people distrust the government, but I think that people distrust the government because of what they correctly identify as a power grab, not because of religious extremism.
Here's another example - the Patriot Act.
Example of what?
It is filled with references to "terrorists" but the term is not defined. As such, in just about the most cynical, repugnant use of government I have ever seen, mission creep has filtered in and idiots like meth lab creators are denominated "terrorists" and the Patriot Act has been used against their garden variety crimes.
You appear to know more about it than I do. Repugnant it certainly is, but I don't know quite what you mean by cynical. IANAL, but it probably isn't the only badly written law on the books or even the worst example of such.
One of the most beneficial things the military could do would be to argue strongly against such evil diffusion.
Against what now? The military takes orders from the government, not the other way around. There's a good reason for that, even if it's hard to tell with an administration that gives crappy orders. Furthermore, military people aren't good at speaking out. They're good at killing people and breaking stuff. What's needed are politicians to speak out against government corruption and power grabs.
Is this really necessary? I mean, I'm sure there are a lot of people who don't know who he is, but how many of those people read to the end of Wall Street Journal articles about cybersecurity?
The Fed, headed by Chairman Ben S. Bernanke, argued that revealing borrower details would create a stigma -- investors and counterparties would shun firms that used the central bank as lender of last resort -- and that needy institutions would be reluctant to borrow in the next crisis.
No shit, Sherlock! I sure wouldn't invest in something that racked up that much debt, and I'd be wise to avoid doing so. But I guess if you're not going to keep secrets in a way that entices people to make terrible investments, it makes sense to plan for the next crisis instead of fixing this one.
Code Search is also the only way I know of to figure out how to use libraries with barely-documented interfaces. Killing Code Search will also effectively kill many useful but hastily developed small tools that people might find useful.
Intel's move to SW upgrades of CPU microcode is creating the tech and business infrastructure for regular FPGA upgrades to these new hybrids.
Not to mention undetectable, CPU-resident malware. Yeesh. If FPGAs get cheaper to manufacture and program in huge quantities than regular non-reprogrammable hardware, then sure, use them. But don't make the whole freaking CPU reprogrammable via software running on that CPU. That's going to be nasty. Think AESDEC becomes AESDEC and copy the key material off to somewhere shady.
I don't think it's a particularly scary movie. Most of the bad guys are just normal people in latex cat suits, and they don't meet their ends in particularly horrific ways (except for the one guy that gets thrown through the propeller). To me, Red Skull seems too weird looking to be scary. If he looked more human, he might be kind of scary, but he looks slightly more like a real person than Shrek. The costume is pretty good, which is to say that he doesn't look fake; he just doesn't look human, so it's not very freaky. Just my two cents. If anything might scare your son, the scene where they perform the experiment on Steve might. It's obviously pretty uncomfortable, but you can't see anything, and Steve takes it like a man.
Having seen Transformers 3 when it came out, I was quite relieved that this movie lacked the sexual exploitation and inane humor that are so common in big action movies and that Michael Bay has turned into a science. If you want your kid to enjoy and get something out of any of the recent superhero movies, this is probably your best bet. Cap's an imitable, stand-up guy, but his story doesn't feel preachy or overly simplistic, and it's not diluted with raunchy filler for its own sake. Plus, it's big, loud, and exciting.
It's been pointed out before, and is worth pointing out again, but US government default is prohibited by the 14th amendment of the constitution [wikipedia.org]. Whether they follow it or not is left to be seen.
IANAL, but if the US government defaults, aren't they just saying that they are unable to meet their obligations? That doesn't sound the same as questioning the validity of the public debt. To do that, I should think they would have to default and then lie and say they didn't.
The future of phone sex.
I'm a junior in college majoring in Electrical and Computer Engineering. I haven't "accomplished anything" that Evans would take seriously at this point. The main reason is that I'm extremely busy for most of the year. I work for probably between 55 and 65 hours a week on average. Could I contribute to open source projects or develop Android apps on the side? Sure, if I wanted to regularly stay up for four days at a time and accept a hit to my QPA. (I know people that do this.) Last summer, I wrote a good amount of code for internal use at the company I worked for, but I can't really go sticking that in portfolios. I hope that Evans will forgive me for taking an actual break on my winter break, as opposed to seeking out "real-world projects with real-world users" to contribute to in a way that I can demonstrate pre-interview. (I want to do systems software, so things that I would seek out to work on probably won't have that many direct "users.")
I can buy that a technical interview with no demonstration of coding ability might let through some inept people. I got my last internship with just one technical interview. I hope I turned out OK. The company I'm working for this summer had a more thorough process. The recruiter comes to campus and interviews people whose resumes they liked from the career fair a few weeks prior. I can't remember much about that interview, but I don't think it was very technical. It only lasted about half an hour. Later that day, everyone that interviewed got an email directing them to go to a website and take a timed test with various programming questions. Most or all of it was multiple-choice, and there might have been some short-answer questions. People who they liked on the basis of the interview and test came out for on-site interviews. There, I was given a programming problem and five hours by myself to solve it optimally. There was a guy somewhere else in the building who I think was looking at my code periodically who would come over at various times and ask me if I could do anything to improve performance for a particular input. After I was done coding (actually the next morning), the actual interview occurred. The interviewer had read my code (and maybe talked to the guy who watched me work), and he asked me to explain it and describe my thought process as I designed it. I'm pretty sure that was the most important interview. In the other one, I asked the interviewer how he liked the surrounding city, and he talked about that for 20 minutes.
I haven't started working there yet, so it's possible that I could still show up and be the new guy that can't code. I think I can code. In the last year, I've helped write most of a small OS kernel for ARM, and I've helped implement a basic MIPS processor in Verilog (not real programming, I know). Those were both partner projects, but the commit logs will show that I pulled my weight. Nevertheless, if Evans recruited for this company, he would probably complain that I was working on contrived problems and that nobody actually used my results. I don't think that means that it wasn't freakin' hard or that I didn't do a good job. The interview process seemed pretty solid, though. It also seemed pretty time-consuming. I've never hired or managed anybody, so I don't know how you decide how much time to spend on a candidate.
Well, the best of my knowledge was wrong. I was combining Great Theoretical Ideas with another course about functional programming. Great Theoretical Ideas is entirely theory and has no programming component. Nevertheless, it perhaps addresses at least some of your concerns about teaching problem solving.
This course is about how to use theoretical ideas to formulate and solve problems in computer science. It integrates mathematical material with general problem solving techniques and computer science applications. Examples are drawn from Algorithms, Complexity Theory, Game Theory, Probability Theory, Graph Theory, Automata Theory, Algebra, Cryptography, and Combinatorics. Assignments involve both mathematical proofs and programming.
To the best of my knowledge, this course is currently taught and will continue to be taught using functional functional programming. I took the Fundamental Data Structures and Algorithms course referenced in the article. It has some of the problem-solving ideas from Great Theoretical Ideas, but it's more about just knowing what algorithms are out there. Up to this point, the course has been taught in Java with heavy focus on object-oriented ideas, but that will now change to functional programming with ML. I appreciate the benefits of the knowledge it provides, but its mathy nature was sufficient to convince me never to take Great Theoretical Ideas. I'm more of a systems guy.
As an Electrical and Computer Engineering major at CMU, I agree with you. ECE students currently get almost all of their programming experience from courses offered by the CS department. Those of us that go the software route generally tend in the systems direction or at least toward things that are useful in a non-theoretical sense. The upper level systems courses in the CS and ECE departments depend on the course Introduction to Computer Systems, which will stay the same during the change from OOP (Java) to FP (ML). Currently, this course depends on a freshman course, Effective Programming in C and UNIX. This course is to be replaced during the transition. Apparently, it will start by gradually weaning students off of the nice, clean functional model of execution and only allow them to use a "safe" subset of the C language until the very end.
I fear that there will be a nasty chain reaction of sorts: students will start with one of the intro courses and get the functional view of the computer without learning much at all about how it actually works or why that might be important. When they get to the imperative course, they will spend significant time learning what were previously considered to be the basics of introductory programming. Because of this, they will spend less time actually becoming proficient with C and Unix. When they get to Intro to Computer Systems, their lack of proficiency will make what is already a very challenging course an absolute nightmare. I predict that, as a result of the planned changes, fewer students than currently do will stick with computer systems.
This sounds like completely run-of-the-mill encrypted email that you also have to pay per message and identify yourself for. The one significant advantage that I can see is that you might be able to convince other people to actually use it.
I like the floating header and sidebar, because I can see the useful links wherever I am in the page. If I had a small monitor, it might come across as a waste of space, but it's fine for my situation. They don't seem to float on my phone, which is nice. More than a new regular interface, I think that Slashdot would benefit for a phone-optimized interface that takes effect when you visit with your phone. This interface doesn't seem much worse than the previous one on Android, but it is still pretty bad compared to websites that design specifically for phones.
They could just release it for Ubuntu and let other people repackage it for their favorite distro.
If you've never programmed before, then you will likely need to practice thinking in a logical, structured manner. Certainly, you should learn your first programming language while doing this, rather than take any kind of math/logic course. Unless, that is, you really like that sort of thing. Posters above me have suggested starting a project that you are motivated to complete, finding out what language is most suited to your goal, and learning it as you go. This can work, but you may hit a few road blocks:
To get around all of these potentials problems, I recommend the book Python for Software Design: How to Think like a Computer Scientist , which I used when I first learned to program, back when it had a different title. It is available for free here, under yet another title. It's positive attributes are that it uses Python, contains short problems at the end of each chapter (many with solutions and explanations), and explains various things about math, logic, and algorithms as it goes along. Python is a good first language because it doesn't get into details of hardware, it is interpreted rather than compiled (quicker feedback when you change something), and it has clear, simple syntax that enforces good style. If Python doesn't suit you for whatever reason, I would recommend that you seek out a book that professes to teach you how to think as well as how to program.
I have been assuming that you intended to self-teach, but an introductory computer science course at community college should also work. The quality of your education will depend upon your instructor, but that's not much different than picking up a book and hoping the author knows what he's talking about. I think Allen Downey does a good job, but that's just me.
If you do one of these things, learn a language, and it piques your interest, learning other languages is a good time to find a project you're interested in and learn the appropriate language as you go, already having the proper mindset and background under your belt.
Linux: Rute User's Tutorial and Exposition by Paul Sheer is what I used when I was first getting started using Linux. The first few chapters are about computers in general, and the rest of the book is about Linux. Approximately one third is about being a user, and the rest is about administration. The entire book would be a bit heavy for an introductory computer course, but you would have no difficulty finding in-depth explanations of the things you described (file systems, what the operating system does, etc.) in a Linux context. The book is intended to teach you how to administer Linux systems, but it really gives you a thorough understanding of how the systems you're configuring work. Even if you don't finish the chapter on configuring your box as a router, your students could get a lot out of the first part of that chapter that explains how IP works. It's a very long book. There's probably a section for whatever you would want to talk about in a basic computing course.
I can't recommend this book enough. It is by far the best book that I have found on how to use *NIX systems, but it is much more than that, and it significantly furthered my computer education.
Will robots take away any responsibility or accountability for war crimes or atrocities? When 20 people are wiped out by a "robot malfunction", is it any less heinous? Who is held responsible in these cases, the manufacturer, the operator, who?
At a lecture I attended where Singer talked about the book, he contended that responsibility for a "robot malfunction" should be traced the whole way up the chain of everyone involved to find any people who were responsible, and that they should be held accountable accordingly. If the operator screwed up, then he shares in the blame. If the malfunction was caused by a software glitch, then the manufacturer, and even the individual programmer share in the blame. This was a little bit of an unpopular statement in a room containing mostly people that are or will be robotics engineers or programmers. I haven't read the book. so I don't know how much he elaborates on this idea, but he gave an example system where the robot programmer receives a fine when the robot malfunctions and hurts somebody.
Some of these ideas seem like they would work to ferret out bias in legal proceedings, but mostly this would be because all of the judges and lawyers were too busy participating in scientific evaluations to actually get any (potentially biased) work done. The experiments that he describes (like holding two trials on the same charges for a white guy and a black guy) could take days, and that's just for one judge. To rigorously test the entire judiciary (and I imagine that this would optimally take place periodically), you would probably need almost all of the time of almost all of the judges, not to mention all of the other people that have to participate.
The thing about having a panel review alleged child pornography before charges are pressed wouldn't take that much time, comparatively, but preventing incorrect charges isn't as important as preventing incorrect convictions. IANAL, but isn't that what grand juries are for?
My high school had laptops for every student, and one of the most annoying things was the VPN. While the laptop was attached to the school's wireless network (maybe the wired network too, I never used it), access to any site outside that network (including the school's own websites) required you to join the VPN, for which you had login credentials. That meant that every time you opened the computer, it took probably two minutes to get on the Internet, what with waking up, joining the wireless network, waiting for the VPN client to connect, and entering you ID.
This may have facilitated some kind of logging or something, but I found it extraordinarily tedious, and the VPN sometimes failed, kicking the whole school off of an otherwise good Internet connection.
We could be discussing the discussion.
When you can see with your skin, every poke is a poke in the eye.
"On Sun Jan 20, 2008 ****** wrote: "I have 2 young kids and it would be great if you made a Slashdot kids section."
"Slashdot Announces Idle Section"
- CmdrTaco, Aug 14, 2008
Ask, and you shall receive. Took a while, though. His wife probably took the kids and left already. Way to put family first, Slashdot.
And here I am sitting in Carnegie Mellon, 24 hours away from scoring what will probably be below 50% on an exam. So close, yet so far. *Sigh*
I am a big fan of Allen B. Downey's How to Think Like a Computer Scientist: Learning with Python. It assumes no knowledge of programming, and it takes the reader through the ideas that are central to computer programming while teaching them Python.
It starts by thoroughly defining variables, expressions, and statements and then goes on to teach functions. Conditionals, recursion, and other fairly standard operations are discussed. After introducing each of the basic classes that are built in to Python, the book finishes with an introduction to object-oriented programming. It covers the general concepts of objects and classes and then shows the reader the use and usefulness of classes such as linked lists and stacks, guiding the student through their implementation.
Throughout the book, Downey shows the reader how to develop a programming mindset and teaches effective debugging and incremental development. I found it both informative and interesting reading. The book is replete with examples, and each section has a programming challenge at the end of it to test the skills just acquired.
The book is available for free on the Web or can be purchased as a physical textbook. I have only read the Python version, but the same author has other versions of How to Think Like a Computer Scientist using C++ and Java.
Look, religious infection of government is the predominant problem of our time.
Not irreversible climate change? Not dwindling natural resources? How do religious extremists cause us not to address our dependence on foreign oil? Maybe some of the people who do that are religious extremists, but they do it because they are greedy and lazy (read "people"), not because they fanatically believe that we should dump tons of money into countries that hate us in the name of cheap energy.
I think most Americans would be more supportive if we could just trust our leaders.
Well, no arguing with you there.
What are these wars for? Oil? Christian crusades against Moslems? What?
That said, I think we can rule out the Crusade angle pretty easily. We went over to Iraq and killed some Muslims who were killing lots of people ... who were Muslims. If we hadn't had some of the strategical gaffes that we did, Iraq might be on it's way to being a pretty sweet place to be a Muslim. And yes, they might be selling us some of their oil. I will give you that.
Now Barack Obama is sucking up to the religious right, instead of telling them they are unacceptable in a democratic, American society.
You don't win presidential campaigns by disparaging the free speech rights of prominent demographics.
Hell, how can our military itself keep their own morale going when they are "getting so much resistance, from behind"?
Who said that? I didn't say that. But I'll allow that the wars in which we are engaged are very unpopular now, which kind of calls into question your assertion that politicians are pandering to war-supporting religious extremists. If most people oppose the war, then politicians should be pandering to them.
How different is "born again" GW Bush from Bin Laden, really?
Again with the quotes. "... 'born again' [sic] GW Bush" (that's how you do that) is
Those are the big ones. Also, he requires the consent of a large number of publicly accountable people to do a lot of stuff. When they let him do stupid things (Iraq), they get voted out (midterm elections). When he bucks their authority or that of the laws they create (warrentless wiretapping, GITMO), he gets the courts after him, which, come to think of it, is another difference between Bush and bin Laden.
These differences do lend credence to your point that people distrust the government, but I think that people distrust the government because of what they correctly identify as a power grab, not because of religious extremism.
Here's another example - the Patriot Act.
Example of what?
It is filled with references to "terrorists" but the term is not defined. As such, in just about the most cynical, repugnant use of government I have ever seen, mission creep has filtered in and idiots like meth lab creators are denominated "terrorists" and the Patriot Act has been used against their garden variety crimes.
You appear to know more about it than I do. Repugnant it certainly is, but I don't know quite what you mean by cynical. IANAL, but it probably isn't the only badly written law on the books or even the worst example of such.
One of the most beneficial things the military could do would be to argue strongly against such evil diffusion.
Against what now? The military takes orders from the government, not the other way around. There's a good reason for that, even if it's hard to tell with an administration that gives crappy orders. Furthermore, military people aren't good at speaking out. They're good at killing people and breaking stuff. What's needed are politicians to speak out against government corruption and power grabs.