text:
Saturday, June 11, 2011
The changing face of Computer Science education
Of course, it wasn't always this way. For a very long time, Computer Science education at most Universities was grounded in the abstract and theoretical. Undergraduates rarely got the opportunity to build "real" applications or products. After all, before the advent of cheap, powerful PCs, a department might have one computer for the entire class, and its main purpose was to sit in a walled-off machine room and spit out numbers on a printout -- hardly inspiring. I did my undergrad degree at Cornell, and the first class I took was taught in Scheme -- a language I have never used since -- although the projects were fun for someone like me (implementing a public key cryptosystem, and doing some neat machine vision algorithms). Of course, this was before the Web, iPhones, and Facebook, so CS class "projects" tended to be somewhat dry back then.
Unfortunately, there are still too many vestiges of this old fashioned approach to Computer Science evident in the curriculum. It is largely a generational thing. At Harvard, I had a hell of a time convincing some of the senior faculty that we should be teaching all CS students the fundamentals of computer systems, like how a process works, what a cache is, how to program using threads. (Of course, like most CS degree programs, Harvard still requires all students to learn the finer points of nondeterministic finite state automata and arcane discrete mathematics. Harry Lewis, who teaches this class, once described this to me as "eating your vegetables.")
A few years ago, I was asked to take over teaching CS50, Harvard's introductory CS course. Since the semester was right around the corner, I didn't have time to revamp the course, and agreed to do it only if I could teach the original course material with few changes. I took a look at the existing syllabus. The first lecture was about the "history of computing" and was full of black and white pictures of Babbage and ENIACS and men in horn-rimmed glasses looking over printouts in a terminal room somewhere. This was not a promising start. The next six lectures explained in painful detail -- down to machine instructions and the bit representation of integers -- how to write a single program: How to convert Fahrenheit to Celsius. This being the only program that students saw for the first month or so of the course, it's no wonder that the course did not have broad appeal. This kind of material probably worked very well in the early 1990's, but not so today -- the field has changed, and what students are looking for has changed too.
I passed on teaching CS50, and it's a good thing I did -- Harvard hired David Malan, who is infinitely more energetic and likable than I am, to teach it instead. David completely reworked the course from the perspective of someone who learned CS in the PC and Internet era. He had students hacking iPhone apps, writing PHP and JavaScript, building websites. Over the next few years, enrollment in the course has nearly quadrupled -- it's become one of the "must take" courses at Harvard. He has done an amazing job.
Of course, there is a risk in going too far down this fun, project-oriented route. Computer Science is not a vocational program, and it's important for students to graduate with a deep understanding of the field. It's true that you can do amazing things with existing languages and tools without learning much about the deeper theory and foundations. Still, I think it's great to attract students with a fun, application-oriented course that gets them excited about the field, and hit them later with the more abstract ideas that might seem less relevant at the outset.
One problem is that the classes that follow CS50 are nowhere near as exciting -- they don't have monthly pizza parties and free Facebook schwag at the end of the semester -- so keeping students in the program beyond the intro course can be a challenge. But I think it's important for universities to consider where CS undergrads are coming from and try to meet them there, rather than to teach the way it was done 30 years ago, on a PDP-11 running LISP.
41 comments:
- AnonymousJune 12, 2011 at 7:35 AM
I'm a little puzzled by the comment about "arcane" topics like nondeterministic finite state automata. Some very cool applications that students have probably seen are machine translation and speech recognition. At the heart of these systems are very large probabilistic automata, and anyone working on them would do well to have at least some knowledge of automata theory.
ReplyDelete Anon - right you are, but these topics are generally taught with no connection to applications. When I learned this stuff at Cornell, the course material was completely abstract. Proving things about abstract NDFAs doesn't give students much clue about how it can be applied to translation or speech recognition.
ReplyDelete- AnonymousJune 12, 2011 at 9:19 AM
That is certainly true, and I agree with your main point that there's a difference between "fun, application-oriented" teaching and "eating your vegetables" teaching of computer science. But you also seem to be drawing a distinction between fun, application-oriented *topics* and arcane eating-your-vegetables topics, which I think is a shame because much of classical CS theory can be motivated by real applications (though perhaps I misread your parenthetical comment, in which case I apologize). It's true that many areas of theory are less important depending on your interest, but that is perhaps an argument in favor of something like GT's "Threads" curriculum, which uses application areas to motivate courses in specific areas of classical CS.
http://www.catalog.gatech.edu/colleges/coc/ugrad/comsci/threads.php - AnonymousJune 12, 2011 at 11:05 AM
Make it clear why it's important:
http://www.youtube.com/watch?v=nWRGPxSNnag Anon - I'm certainly not saying that teaching theory is unimportant; just that (at least the way it was taught to me) it tends to exemplify an old fashioned approach to CS teaching that holds less appeal to certain kinds of students approaching the field today. One problem we have is that if students can build flashy iPhone apps without knowing anything about NDFAs and set theory, it's even more important to make those topics relevant and interesting to motivate students to learn them. Frankly I don't see this happening very much.
Sahami's speech in the video posted above is great, but that speech should have been at the beginning of the semester, not the end.- AnonymousJune 12, 2011 at 11:42 PM
A graduate talking here from a computer science program taught in West Europe... I share the thoughts of Matt. Face recognition based on Eigenfaces is for instance a nice application of linear algebra. Never heard about this when studying eigenvalues and eigenvectors as a computer science student. The same holds true for Fourier Series. Never heard about any applications whatsoever when I was enrolled as a computer science student, leaving a lot of students wondering at the time why we needed to study all of these mathematics.
ReplyDelete Matt,
I was going to write a comment trying to respond to your point, but as I re-read through your post, I find I get lost as to what the point actually is.
I think we can mutually agree with this paragraph:
"Of course, there is a risk in going too far down this fun, project-oriented route. Computer Science is not a vocational program, and it's important for students to graduate with a deep understanding of the field. It's true that you can do amazing things with existing languages and tools without learning much about the deeper theory and foundations. Still, I think it's great to attract students with a fun, application-oriented course that gets them excited about the field, and hit them later with the more abstract ideas that might seem less relevant at the outset."
My take on this paragraph: In CS we do have wonderful opportunities to get lots of students interested by showing them how to develop applications. On the other hand, as you note, this bypasses a great deal of the "science" behind the computer science. As a field that mixes both science and engineering, there's always going to be some tension there, but one should expect graduates in computer science to have a solid sense of the more abstract principles that provide the foundations for the field. In an introductory course, of course, where you're appealing to more non-majors than majors, show them some cool stuff! (Just like an Intro to Psych, Intro to Economics, Intro to Physics, etc. would.)
But I just didn't get this paragraph: "Unfortunately, there are still too many vestiges of this old fashioned approach to Computer Science evident in the curriculum. It is largely a generational thing. At Harvard, I had a hell of a time convincing some of the senior faculty that we should be teaching all CS students the fundamentals of computer systems, like how a process works, what a cache is, how to program using threads. (Of course, like most CS degree programs, Harvard still requires all students to learn the finer points of nondeterministic finite state automata and arcane discrete mathematics. Harry Lewis, who teaches this class, once described this to me as "eating your vegetables.")"
First, I think I just recollect the history of CS 61 differently than you. I don't recall objection to the course idea or content at all; there was concern about adding a possible extra required course, where it would fit in with our other requirements, etc. That seems natural; as an administrator now, I can tell you, someone has to consider the administrative angle. And the bringing in of CS 121 seems really confusing, and it's here where I lose your thread of thought. Are you suggesting that we shouldn't be teaching students about machine models like NDFAs, or that they shouldn't be learning mathematical foundations? That these topics should be optional? That these topics should instead be more integrated in the rest of the curriculum? Or that these topics are just not sufficiently fun, like hacking an iPhone app? I could argue any of these points, but I don't know what point you're making.
I should point out that 20+ years ago, CS 121 was a wonderful course, and I assume it still is. There are many of us who were really inspired by the course to become computer scientists (including many of us who wouldn't be so inspired by building a cool web page). The course isn't about NDFAs, although the concept of nondeterminism is a highlight, as are such basic ideas that some things aren't computable, that a program can itself be data, and that (perhaps) a Turing machine captures everything that we mean by computation. This is the course that is supposed to open students' eyes to the fact that computer science is not just about hacking up a new app, but includes deeply fundamental questions about the nature of computation. Perhaps you could use a clearer and more suitable talking point in making your point.- AnonymousJune 13, 2011 at 12:38 PM
Some of the applications people are mentioning here are covered in later CS courses. It is necessary to eat your vegetables but definitely in a more fun way.
ReplyDelete - AnonymousJune 13, 2011 at 3:25 PM
Wow. All of the examples you give of aspects of CS education that you hate--learning to program in Scheme, computability and complexity, and discrete math--are precisely the courses I credit the most in my undergraduate education with teaching me problem-solving skills. In other words, to think.
The one aspect that all of these courses had in common for me was that they presented problems whose solutions were absolute zen. In Scheme it's the clever recursive one-liner, in computability it's formalizing a rigorous argument to prove a theorem about a computational model, and in discrete math it's the dual formulation of some combinatorial problem that makes the solution obvious.
Solving problems later in life isn't always as easy or lovely as this, but having been given a taste of this kind of beauty, I try to cultivate it as much as I can.
Perhaps the lesson here is that since CS is so broad, there should be many ways to enter the field, just like there are many paths to take once you get there. - AnonymousJune 13, 2011 at 3:51 PM
Automata theory is far disconnected from modern theoretical computer science. Since much of the field is mathematically trivial, I think it could be completely replaced with more up-to-date theory topics that would be more exciting both to the students and to the professors. Theory doesn't have to be the "vegetables" of computer science; done right, it can attract students instead of driving them away. (I don't know Harvard's curriculum; I am just replying to the feeling I got here.)
ReplyDelete - AnonymousJune 13, 2011 at 5:54 PM
Several commenters have made excellent points. I just wish to add one.
This sentence makes me shudder: "He had students hacking iPhone apps, writing PHP and JavaScript, building websites." -- That is imposing one particular individual's view of what a cool and/or useful way to introduce students to CS is. I grew up in the PC and Internet era, have programmed in all the languages mentioned here and many many more, at some point became a theoretical computer scientist, and continue to be actively involved in theoretical and applied CS research, as well as development. One of the facts that is often overlooked by the proponents of "cool" ways of teaching CS like hacking with JavaScript and such is that some of these are also the most TEDIOUS ways to be introduced to CS. Even if we ignore the fact that doing these "cool" things sets up a wrong picture of what CS really is, the fact that these tend to be tedious and frustrating could turn huge segments of potentially great computer scientists away. Over time, there will be a selection bias among students who sign up for these courses (at the cost of having lost numerous others), and their success/feedback should not be construed as evidence that this is the right way to introduce students to CS.
A good introductory course should touch upon most aspects of what makes this field a science (from Javascript to NDFAs to algorithm analysis to processes and threads to distributed systems and client/server architecture to graph theory to data analysis with Python to relational DBs to... you get the picture). It is very important to acknowledge to the students that each of them might find some parts of the course boring or uninspiring or tedious or seemingly arcane, even, but it is crucial to show the interplay between these subfields of CS, and how CS, as a field, is certainly more than the laundry list of these concepts.
In terms of Lewis' analogy, an intro. course should not be just vegetables or just dead animals or just dessert; it needs to be a sampler of a multi-course meal, possibly importing from cuisines of the world. - AnonymousJune 13, 2011 at 7:41 PM
I personally hate when CS is introduced through a programming class; as others have said, not only is this often tedious, it gives the impression that computer science is -only- programming, and that there are no big ideas. There should be classes that teach students how to hack, this shouldn't be their first class.
I think CMU has it right -- all first year CS majors take a "great ideas" course: (syllabus here: http://www.cs.cmu.edu/afs/cs.cmu.edu/academic/class/15251/Site/current/Calendar/calendar.html )
Covered in this class: Stable marriage, random walks, euclids algorithm, RSA, secret sharing and error correcting codes, diagonalization, uncomputability and the halting problem, NP completess and the P vs. NP problem.
What a great class! It shows freshman year students that CS is not only a lucrative field if you are a good hacker (which they already know!) but also a profound field with deep ideas. So dumb down CS to make it cool? Programming is core to Computer Science. Theory of Computation is the science bit. I guess thats why they have Information System degrees. Humanities Faculties also have courses on deconstructing social media, but cannot guarantee any employable skillset. To develop anything of worth in a competitive hitech market, its advisable to avoid areas with low barriers of entry such as HTML design.
ReplyDeleteLots of good comments here. Taking them one at a time...
"Anonymous" (Michael Mitzenmacher?) - Right, my point about CS121 is emphatically *NOT* that we should not be teaching this material, but rather that we see this topic as more essential than "practical" material, like threading, which every CS graduate will absolutely need to know if they go into industry, suggests a shift in the field from 20+ years ago. If I were designing a CS curriculum today, the set of things that I would make as requirements and the things that would be optional would be somewhat different than how most CS programs have evolved. So no, let's not leave the science behind, but that doesn't mean we shouldn't revisit priorities.
Of course, at Harvard, the limited number of required courses for each major doesn't allow you to pack in a wide range of requirements, unlike a place like Cornell which really put you through the wringer. There, one did not have to decide between theory and systems - you got both.A couple of commenters have lamented the systems/application focus of an intro programming course. Be that as it may, it has proven VERY popular at Harvard, a place where many students are not initially drawn to CS. It's really hard to compare Harvard to somewhere like CMU, where many students come in order to be computer scientists. (Not that Harvard doesn't have anything to learn from CMU, mind you.)
The way I describe the "intro to programming conundrum" to high school seniors (and their parents) considering CS is as follows: Programming is not CS, but to do CS you need fluency in programming. Just as a music major needs fluency on some instrument, and know how to sight read, so do CS majors need to know how to program in a couple of languages. So intro courses are often programming-heavy since that's a basic skill you need to explore the rest of the field, and it gives you the vocabulary to implement and reason about software.
I admit a strong bias towards the practical, hands-on aspects of CS, which is what turned me on to the field, but recognize that many others are interested in the mathematics and beauty of algorithms. Having multiple on-ramps seems like a great approach; at Harvard, there are a couple, but the main one (CS50) has proven to be a popular approach that seems to tap into what a lot of students are looking for.- DebasishJune 14, 2011 at 5:45 AM
The first language that one should always learn is C. Then one can go on and do bigger things, build apps but one must learn C first...may be in the introductory classes. I hope Harvard does that. We at IIT definitely do that
ReplyDelete - AnonymousJune 14, 2011 at 6:22 AM
There seems to be a wedding in CS these days between the theory and the application. Perhaps something should be made clear. The path of CS isn't simply linear. Depending on where you go looking for jobs and depending on where the jobs are will vary how to market CS courses to students.
Since economies are dynamic in their need and CS is still a 'growing' science, as an earlier post makes evident; it seems clear to me that Mark is right. We need to make CS hands on, at least at first and certainly in the first year. Theoretical skills will certainly be necessary in the future, for any CS major. However, if they can't work with the basics of code, hacking and so forth, they won't be marketable candidates.
So lets face facts, if you can't make CS marketable you won't get the opportunity and then we aren't making future CS majors we are adding to unemployment.
I understand this to be the underlying tension between theory vs practice, but I just wanted to make the point clear. Perhaps part of the problem is that four years is far too little time to teach people about computer science given the vastness of the field. You're trying to hook students into being interested, give them a solid grounding in the theoretical fundamentals AND give them practical skills to survive in the computing industry. I think that's a tall order for ANY degree program.
I would personally see the idea of one intro course be abandoned in favor of multiple intro courses depending on the level of the students. For students who are interested, but not hooked, we can go the "hack an iPhone" route first. But for students who already know what they're getting into we can go with a more theoretical and rigorous first course to make it clear that there is more to CS than writing webpages and pulling data out of a SQL database.
Incidentally, I'm starting a PhD at Cornell in the fall after 4 years at a liberal arts college. Before that I'd been programming on and off for four years. It took me about 6 years just to figure out what computer science and what parts of it I was interested in. And I'm still learning. It might just be that I'm slow, but I think CS education really needs to start before the first year of college.Matt,
Forgive me, but again, I think you're bizarrely mischaracterizing Harvard's program, so let's review. You state: "Right, my point about CS121 is emphatically *NOT* that we should not be teaching this material, but rather that we see this topic as more essential than "practical" material, like threading..."
As we have discussed frequently in faculty meetings, we have decided that a program with minimal specific class requirements is appropriate for us and our institution. Our requirements for a major are correspondingly minimal: students are required to take 2 introductory programming systems courses, to take 2 theory courses (one of which is required to be CS 121), and fulfill some breadth requirements.
Certainly these minimal requirements emphasize the importance of the practical. CS 61, which is one of multiple classes that covers threads, is not strictly required, but is encouraged for CS majors.
In establishing minimal requirements, we wanted to maximize student flexibility. But we also considered what we wouldn't want majors to graduate without knowing. Programming skills is certainly one thing, hence the 2-class requirement. And theoretical foundations is the other. Specifically, we thought that a student graduating without knowledge of basics like Turing machines, the P=NP? problem, and undecidability and the limits of computation would be completely unsuitable, and hence the specific requirement for CS 121. While we expect a student will learn about threads in some class, you are correct that we don't make it a requirement. I should point out that my own class, Algorithms and Data Structures (CS 124), is also not strictly required, although clearly for at least the last ten years it's been the single most important course a Harvard student could have taken. So we are consistent in this philosophy of minimal requirements. I should point out it has the advantage that there's an endless list of wonderful things a CS major arguably should know, but we really can't expect them to actually learn them all; we expect with minimal breadth requirements they'll learn most of them, while still being able to focus on things that most interest and excite them.
Finally, I just really don't understand this sentence: "There [Cornell], one did not have to decide between theory and systems - you got both." Same here -- you have some requirements for both. But then you get choice, subject to some loose breadth requirements.
[Finally, as an aside, the reason students learn NDFAs in CS121 is not strictly because NDFAs are so important, but because before seeing Turing machines it's good to see and formalize other simpler structures that do weaker computations than Turing machines, and it allows one to introduce nondeterminism much more easily. It's not an explicit statement that NDFAs are more important than threads.]Really, what this highlights is we need to draw a distinction between computer science and software engineering. If your goal is to write code, go with the latter. If you're interested in the deep theoretical roots of software engineering, CS is your gig.
We certainly wouldn't be the only field with that split - many places divide theory and application, because the skills and knowledge required are subtly different.Michael - I guess we'll have to agree to disagree on our interpretation of the various forces shaping Harvard's CS degree requirements. I don't think this blog is the place to air dirty laundry. I think you are missing my point that this is really about what I see as a general shift in CS curriculum towards more application-focused topics. I didn't mean to commit sacrilege against the all holy Church of Turing :-)
ReplyDeleteSometimes, I think about going back to get my graduate degree in Computer Science -- I've been successfully working as a computer programmer for 25 years, but my degree is in electrical engineering.
The reason (for me, anyway) to go back to school would be to learn more of the "science" part of CS -- beyond what I've self taught. I think the "programming part" can be picked up on the job.When I was an undergrad, each year was significantly tougher than the previous. First year you got exposed to programming: not quite as exciting of projects as CS50, but just basic code hacking.
Next year you were exposed to an assembly language, Lisp and discrete mathematics, among other topics. Some students started having second thoughts.
Junior year you were getting into analyzing algorithms, maybe a higher level math course, machine learning, etc. Here a cohort found itself well above their heads. But it was junior year, and a lot weren't willing to switch majors so late and add a year or two to their academic career.
By senior year people were repeating Operating Systems and Formal Language Theory for two or more semesters. I knew kids who hated CS at this point. But they spent days on end studying to achieve that C average so they could escape with a diploma. They left never wanting to touch an IDE again.
My point is that you want an intro class to attract potential students, but you also want it to communicate the standards the students will eventually be held to. Students already come into the major thinking CS means building and playing iPhone games. I think it's critical that very early, preferably the first semester, the students be challenged in any dimension they'll eventually be expected to display mastery in. Everything runs so much smoother when expectations are communicated up front.- AnonymousJune 14, 2011 at 9:17 AM
Learning to program iPhone apps isn't Computer Science. Simple as that. It's just learning to use someone's library to do stuff. It's a bit like learning how to use a shovel and thinking you're a civil engineer.
ReplyDelete "Learning to program iPhone apps isn't Computer Science. Simple as that. It's just learning to use someone's library to do stuff. It's a bit like learning how to use a shovel and thinking you're a civil engineer."
As a current CMU student who recently went through 15-251, I'd like to point out that you can't sugarcoat the fact that it also exists to weed out those who aren't prepared to put in the effort to learn the abstract parts of CS - it's 15+ hours a week of work for most students (mostly freshmen) just to pass, on top of 3-4 other classes. For those who just want to make iPhone apps, our IS major is almost as good and allows you to focus on coding, not CS.- AnonymousJune 14, 2011 at 10:02 AM
I just read through the post and several comments, and as a current CS undergraduate, I'd like to provide my point of view.
First of all, here's my interpretation of the arguments of some commenters.
Commenters: Matt is saying teach students how to build iPhone apps and only teach that subject. Teach students PHP and JavaScript because that will get them jobs. How stupid!
My interpretation: Let's teach students JavaScript to use to build their websites. Your website is slow? Let's see how we can fix that. Use the ability of JavaScript functions to cache frequently used DOM objects. Future lookups will be O(1). If you don't cache DOM objects, your function might have to look through all N DOM objects, where N is the number of DOM objects on the page. Really, though, the expected value of N, or E[N], is N/2. Where have you seen this material before? Right, in your data structures and probability and statistics classes. See, isn't theory fun when you know its applications?"
I agree with Matt 99% (for you "intellectuals" and professors that like to overanalyze everything, yes, that is a rough estimate, not an exact calculation of the congruency between my opinion and Matt's). To explain why I agree, I want to tell you the story of how I came to love linear algebra.
During my freshman year of college, I took an intro to linear algebra course. Eight weeks into the course, we were taught eigenvalues, eigenvectors, and singular value decomposition, among other related topics. The professor presented these ideas with so much theoretical baggage that I was completely lost. Just a note, I don't consider myself a genius, but I do think I'm smarter than most students. So when I was completely lost in the material, I just got angry and frustrated and thought to myself, linear algebra is disgusting and I don't want to touch this material again.
Fast forward to sophomore year, I took a course on the application of compute science ideas. Really though, it was an application of linear algebra. "What in the world did I sign up for?" I thought. As the weeks progressed, though, I fell madly in love with linear algebra. I learned how to edit JPEGs by modifying a matrix and I learned how to analyze President Obama's tax returns. One project that really struck me, though, was the face recognition project, which involved the once-hated eigenvalues, eigenvectors, and SVD. This project made me realize that my previous hatred for linear algebra almost cost me the potentially infinite joys of learning this beautiful subject. After the course ended, I picked up my old linear algebra book, and I reread some subjects, this time, with more appreciation for its beauty and power.
Isn't that what teachers and professors want from their students? An appreciation for theoretical topics? A desire to learn more? So what's wrong with making a curriculum sexier with teaching some applications?
Taking Matt's friend's metaphor a bit further, kids learn to eat their vegetables once they realize how healthy they are for their bodies. Students will readily absorb material once they learn why they should even pay attention in class.
If you made it this far in reading my comment, thanks. - AnonymousJune 14, 2011 at 10:21 AM
CS is broad, and probably the only real solution is to move CS education to begin at the high school level, like other sciences.
I agree that teaching only theory would alienate future engineers. But teaching only programming in intro courses (and beginning only in college!) alienates many smart scientists. In the US, smart scientifically inclined kids go into math, physics, and even economics before they go into CS. Why? I think it is because they don't really have any idea of the intellectual content of CS when they are picking majors. In India, on the other hand, the smartest kids are directed to theoretical CS.
So there is lots of material to present. Kids have to know enough of what is out there before it is time for them to choose majors. This could happen if CS was a standard part of the US high school curriculum. - AnonymousJune 14, 2011 at 10:58 AM
"... some of which are good enough to turn into commercial products. I don't know of any other field where this is possible after taking just a single semester's worth of courses."
If the bar is 'worth paying for' I can think of a few: painting, photography, dancing, writing to name a few.
On another note if you feel that those people have been complete newbies transformed by the single course into fully capable professionals you watch too many movies. Matt - I agree with you 100%. I am a senior at Brigham Young University in the CS program and I have felt that way about the CS program for a long time. Because they teach in such an abstract and disconnect way I find myself seeking knowledge in other places then CS . I ended up taking classes not in the program and also finding jobs that would teach and traint me as I go. Which has let me gain a much greater understanding of real life application. It's just sad that i needed to go out of my program to gain this knowledge. I feel you have a correct view of CS and something does need to change.
ReplyDelete- Jonathan FischoffJune 14, 2011 at 11:48 AM
My interest in CS was philosophical. As a math major, the abstract elements where fun. Obviously I am not in majority.
As professional programmer, I have noticed most good engineers, don't need CS theory. Just a little bit of complexity analysis goes a long way.
Being a productive engineer is more about learning new tools and frameworks quickly. Most companies don't need a proof that there two popups won't show up at the same time. In my perfect world we would all program in something like Agda, but its not necessary right now. Its too easy to make money with crappy software.
I think Computer Science should probably be replaced with Software Engineering. That is what most people intended to get out of it anyway, and they could still take math classes to learn the theory. - AnonymousJune 14, 2011 at 2:19 PM
A software engineering major may be able to hack up a website, but my guess is (Matt correct me if I am wrong) that a company like Google prefers to hire the computer science major. They already concentrate their hiring at elite programs like Stanford, CMU, Harvard, MIT, etc. that tilt their curriculum more heavily towards theory. Even if complexity theory isn't relevant to day to day work, algorithmic thinking via reductions, recursion, etc. are fundamental to high level software engineering.
ReplyDelete A couple of commenters have suggested that what I'm talking about should really be called "software engineering" and even made reference to software engineering degree programs.
Personally, I think most Computer Science programs at major universities don't have enough "software engineering" material, however -- and this is important -- we should NOT be teaching software engineering *instead of* Computer Science.
Let me explain:
Most students graduating with a CS degree are going to go into software engineering jobs. At the university, they rarely have the opportunity to learn about the best practices used in the industry: complex IDEs, testing frameworks, documenting your designs, working on large teams,working with large amounts of code. It would be great to get more of this material into a CS degree program to ensure students are better prepared for the real world, but it's hard to emulate an industry environment at a university. Internships and other experiences can augment the coursework and I am strongly in support of that.
However, if we stop teaching Computer Science and only teach software engineering, a great deal has been lost. Students trained in a good CS program should be able to envision the next generation of technology and work on problems that nobody has ever thought of before. CS theory is just as important as systems and application focused work, and students need depth in all of these areas. Teaching iPhone programming and PHP hacking can't replace a deep foundation in the field.
My comments about teaching style and topics above have been misconstrued to mean that I don't think we should teach abstract topics -- I never said that (in fact, I said quite the opposite). What I've been trying to say is that hooking students with a sexy intro course with lots of relevant, real-world applications seems to work well at Harvard and is a great on-ramp for many kinds of students, though it won't appeal to everyone.Fascinating reading.
"What I've been trying to say is that hooking students with a sexy intro course with lots of relevant, real-world applications seems to work well at Harvard and is a great on-ramp for many kinds of students, though it won't appeal to everyone."
This is the rub, isn't it. And what other posters have suggested, that some of the students we're most interested in attracting to our field will be turned off or disinterested in this approach, is also true. It's a complicated field, made more complicated by the nature of our post-secondary institutions that place a value on large classes of tuition-paying students rather than high quality graduates (in undergraduate programs). The tension between the theory and application sides of this discussion (not to mention the heavily entrenched positions that have emerged in the comments) lead to severe philosophical conflicts in managing (as you put it, Matt) the first-year conundrum.
In the past 20 years, the field of psychology has been dealing with much the same tensions -- do we prepare our students for the clinical work they will likely be doing as Ph.D. graduates or do we train high caliber researchers? Their solution has been to stream -- not always easy for students to find their place, but it does allow students to indicate early on what they're hoping to get out of a degree in psychology. We see a similar domain-based streaming in engineering and commerce. Is computer science a wide enough field with enough students to manage this kind of streaming?
Can we find a marriage between the two approaches where students initially attracted to one stream might easily switch horses in mid-stream? (sorry) I don't think we're going to resolve these tensions through creative programming in the first few years of CS, let alone in the primary intro courses (of which there is often only one in a university pre degree-- good old CS 111 for majors, 116 for engineers, and 110 for commerce students at my institution).Computer Science education is in a unique position because the content changes so quickly. What is the most attractive intro course today may not be tomorrow. One discrete mathematics theory may be heavily used today but replaced by something else in a few years. I can't think of any other educational fields where the content has to be updated so often to remain relevant.
I think it is great delivering a fun introduction to programming, even if there are very few computer science topics covered (although I'd like to see this happen well before the students even get to Harvard, which is what I strive to provide). If they enjoy it and are curious they will want to deeply explore the concepts and inner-workings of the computer.
My other thought is how much of "eating your vegetables" belongs in undergraduate CS rather than at the graduate level. In comparison to the engineering and other science majors, does undergraduate CS have more or less theory? I think it strikes a pretty good balance today, but looking at more sedentary disciplines will provide insight into the right level of theory vs. application.WARNING: Gratuitous plug for my Alma-mater...
You all are discussing a topic that Miami University's School of Engineering and Applied Science addressed in it's curriculum a few years ago... They now offer 4 different majors:
Bachelor of Science in Applied Science - Systems Analysis
Systems analysis is a multidisciplinary field that includes business, software engineering, math and science. Systems analysts combine their knowledge from these fields applied within the framework of the Scientific Method.
Bachelor of Science in Computer Science
The computer science major at Miami provides you with a thorough understanding of the key principles and practices of computing as well as the mathematical and scientific principles that underpin them. You will study programming languages, algorithms, computer architecture, operating systems, and applications of computer science such as database systems, artificial intelligence, computer games, and computer networks.
Bachelor of Science in Software Engineering
The software engineering major at Miami differs from computer science in that it emphasizes topics such as software design, software quality assurance, software requirements analysis, software project management, software maintenance, and formal methods for software development.
Master of Computer ScienceThere are a lot of people who are attracted to Computer Science because they love the beauty of it, the elegance of its theoretical underpinnings, and the challenge that comes with solving hard problems. These characteristics have defined the "best" students for the past several decades.
On the other hand, focusing on this point of view misses the fact that Computer Science can be viewed as an interdisciplinary field. Especially these days, it is totally reasonable for someone to say "I want to become a Computer Scientist so that I can help cure disease", or "...so I can help alleviate poverty", or "...to become a better artist", or "...to mobilize citizens and create a better government." Catering too much to the former type student might likely shut out the latter student, who might never be drawn to the field otherwise.
I don't have an answer for how best to organize the curriculum, other than to say that 1) catering to the second type of student doesn't require dumbing down anything, but rather rethinking the curriculum, and 2) neither of these two views of Computer Science should be considered better than the other.Most of the people commenting here seem to be old people, so here's the take of a young (21 years old) CS student, computer nerd since I was 7 years old.
Whats wrong here is that people interested in CS nowadays are not really interested in CS, but Software Engineering. CS is only for hardcore nerds who want to get all the history and theory of computers.
If I knew this 3 years ago, I would've enrolled on a SE program, not CS, in the end, I'm going to spend the rest of my life in software development, and 80% of CS students probably will do the same, so why bother going through the boring old stuff?
So to put it short, rather than changing CS, let people interested in CS know about SE, which is probably what they're looking for in the first place.God, I should be smarter than to say cute things privately to Matt!
I teach automata in CS 121 for two reasons really. One is that they show the power of simple formal models, in the same way as mechanical engineers are amazed by the power of extremely spare mathematical equations with the right primitives (Newton's laws or Maxwell's). They don't love learning div and curl, but my goodness, their explanatory power. These formalisms underpin the development of the practice of computing into a science. (It's a dense course. We actually do wind up talking about NP-completeness, so the nondeterminism with which we start comes back in the a practical context at the end.) It is by no means the only good set of theory material for this role, but I'd defend the relevance of requiring something like this.
The other (and not unrelated) reason for teaching this stuff is that it is beautiful. Beauty is an important value and it is not found in every part of the field. I'd love to teach a CS course some time where the material is chosen strictly for its beauty. Bet it would be wonderful.
By the way, a correction to the NYT story that started this conversation: MZ really was a CS concentrator (major) at Harvard. I have no idea how the reporter got the idea he wasn't.When I was an undergraduate at MIT, one of the problems that the CS department was facing was too many students were choosing it. So it was a very poorly kept secret that this was one of the reasons why the intro CS class didn't bother teaching anything about the Scheme syntax at all, but rather focused on the abstract nature of lambda functions and symbol binding. If the students couldn't figure out how to write programs in Scheme and use a fairly primitive IDE environment running on ancient HP workstations, they'd wash out and go on to other majors. It was a really great filter for people who had written a few basic programs, and thought they could make $$$ in Silly Valley during the very early beginnings of the dot com boom.
What made sense then (when there was an oversupply of people wanting to go into computers) may not make sense today, when there seems to be much more of an interest to "attract" potential students. Back in my day, it was very clear that the main problem was filtering out to find the most qualified undergraduates to go into "Course 6".
I remember when Professor Sussman covered all of Signals and Systems in the first 55 minute lecture, without telling the students that was what he was doing. The average slide was stayed on the overhead projector for an average of 6-10 seconds and he was speaking like Mr. Motormouth to cram it all in. Imagine forcing CS students to learn about Fourier Transforms, both discrete and continuous in the time/frequency domains --- in their Sophomore year! On the plus side, those of us who survived were able to understand things like why terminators on SCSI chains and thinnet ethernet cables were important. :-)
Startup Life: Three Months In
I've posted a story to Medium on what it's been like to work at a startup, after years at Google. Check it out here.
The word is out that I have decided to resign my tenured faculty job at Harvard to remain at Google. Obviously this will be a big change in ...
My team at Google is wrapping up an effort to rewrite a large production system (almost) entirely in Go . I say "almost" because ...
I'm often asked what my job is like at Google since I left academia. I guess going from tenured professor to software engineer sounds l...


text:
Okay - a few items of business first before I share my day!
- Due to some technicalities - I had to take the giveaway posts down early. Sorry about that but below are the winners. If you are a winner - please contact me by Sunday or I will draw a new winner. (firstname.lastname@example.com)
Blog Makeover - #451 - Kim at www.kyndallssmile.blogspot.com
and if you didn't win a blog makeover -
And she is donating $5 from each blog sold to COMPASSION!!!
Faith Baby ruffled bloomers - #160 - Pinkpolkadotaa at www.pinkcashmerecardigan.blogspot.com
And www.faithbaby.com is donating a portion of all bloomers sold to Compassion during December as well!
Poor Laurie - her girls have been sick so much lately so she had to take Sarah Kate to the doctor today so I kept Emily for a few hours. It was during Harper's nap time so she helped me put up my big tree. She was a great helper.
Harper woke up right before Emily left and she went in her room to help me get her and Harper was SO happy to see her. She literally sat on the floor and smiled at Emily for the next 20 minutes and watched her EVERY move.
Emily wanted them both to wear tutus and flowers. Can you see how happy little Harper looks as she looks at her big cousin. I have a feeling she will be looking up to her for many years to come.
Years before I ever got pregnant (I know this will come as a shock because I spent a lot of time storing up treasures in hopes I would one day have a baby girl) I bought a bunch of pink,green and brown ornaments when they were on sale and have been saving them. I had planned to get a little white tree for Harper's room.
Until I went to Wal-Mart and found this cute pink tree for $15. And I am in LOVE with how cute it is in her room. I may keep it up all year long.
Tomorrow I am doing the "Show Us Your Life" blog tour on Christmas trees - so please come back and post pictures of yours (present or past). I love to get ideas on trees! I have FOUR so I will get them all posted - it will be up by the morning!
And finally - I made brussel sprouts tonight which is something that would have made me gag previously but my mom made them for Thanksgiving and I'm now obsessed. And they are super easy. I posted how I made them here in case you want to fall in love with a vegetable. ha!

subset: commoncrawl


text:
CairoPatternType is used to describe the type of a given pattern.
The type of a pattern is determined by the function used to create it. The cairo_pattern_create_rgb() and cairo_pattern_create_rgba() functions create CairoPatternType::SOLID patterns. The remaining cairo_pattern_create_* functions map to pattern types in obvious ways.
The pattern is a solid (uniform) color. It may be opaque or translucent.
The pattern is a based on a surface (an image).
The pattern is a linear gradient.
The pattern is a radial gradient.


text:
Allstar 9931 9931MT Compatible 318 MHz Mini Key Chain Remote Control Allister Pulsar
This Allstar 9931MT compatible mini key chain remote control from Transmitter Solutions can replace any Allstar/Allister/Pulsar 318 MHz remote control with 9 (+/0/-) dip switches. Programming is simple just match the 9 switches inside of this unit to your exisitng remote control or Allstar garage door opener and your ready to go.
Compatible with the following remotes:
-Allstar/Allister/Pulsar 931, 9931, 832, 8832, 833, 8833, 822, 8822, 9931TK, 8822TK, 8832TK, 9931MT, 8833OCS.
-Carper CX-318-1.
-Heddolf P-219/1, P-219/2, P-220-1, P-220-2, P-220-3.
-GTO/Mighty Mule RB741, RB742, RB743, RB744
Product Details
-318 MHz frequency gate or garage door remote transmitter
-Controls one garage door or gate opener
-Works with Allstar, Allister, Pulsar, Carper, Heddolf, GTO Mighty Mule versions of garage door openers on the 318MHz frequency set with 9 dip switches
-Includes key chain clip, 12 volt battery, and programming instructions.
-Built-in LED light to indicate battery strength
-Dimensions: 2 by 1.5 by .5 inches
-Two year manufacturer warranty
- Brand: Allstar
- Product Code: 9931mt
- Availability: In Stock
- Compare Price: US $18.50
Our Price: US $14.99
- 2 or more US $13.75
- 5 or more US $12.95
- 10 or more US $12.00
US Shipping - FREE
Canada Shipping - US $11.50
(Quantity shipping discount applied at checkout)


text:
I have been wanting to try making candied bacon ever since I first came across the idea a long while ago. Candied bacon is essentially bacon that is coated in brown sugar and then baked until the brown sugar has melted, wrapping the salty bacon in its sweet embrace. Of course I immediatly thought of trying a maple version and I knew that both versions would be great. When I was in scouts when I was a kid, we always used to make pancakes with bacon at least once every time we went camping. When you've got a plate full of pancakes all covered in maple syrup it's kind of hard to keep the bacon from getting syrup on it and the combo is really good! That got us to thinking and the next time we made pancakes with bacon we sped things up a bit by adding the maple syrup to the pan while the bacon was frying and the results were so good! It's hard to go wrong with salty bacon covered in sweet, slightly caramelized maple syrup!
When the bacon is the star of the show like in this candied bacon, it's time to get the good stuff, a nice thick cut of bacon fresh from the butcher rather than the shrink wrapped grocery store variety. Since I could not decide whether to go with the brown sugar version or the maple syrup version I just decided to go with both and I made half with each. The candied bacon was super easy to make and the results were nothing short of amazing! The crispy and salty bacon went so well all covered in the caramelized sweetness! I am looking forward to making this again and again! I was thinking that you could also experiment with adding other flavours such mixing some mustard in with the maple syrup.
Candied Bacon
- 1 pound thick bacon
- 1/2 cup brown sugar (or maple syrup)
- Line a baking sheet with foil and set a cooling rack in it.
- Spread the bacon out over the cooling rack.
- Rub the brown sugar onto the bacon.
- Bake in a preheated 350F/180C oven until the bacon reaches the desired crispiness, about 15-20 minutes.
- Remove from oven and let cool for 5 minutes and then enjoy.


text:
Create Your Business Website in 3 Easy Steps
It's free, powerful, and professional.
Try It Free Today »FREE for 30 days! Then pay only $7.99 per month.*
How it Works
Choose a Design
Pick from hundreds of designs created for many industries. Get a complete, ready-to-use template with images andindustry-specific text.
Customize It
Drop in your own graphics, or use our free library of 250,000 images.Easily add your own logo or just type in your business name. Edit text, colors, images, fonts, and links.
Show the World
Publish your site with one click(we host it for you). Make changes to your site anytime. Get your own personalized domain name and email address.


text:
Competitive swim training equipment and products for individuals, swim teams and swimming pool facilities, including Competitor and Anti-Wave swim racing lane lines, backstroke flags, stopwatches, pace clocks and Stretch Cordz and personal swim training equipment.
Extensive selection of equipment for your pool deck and surrounding surfaces, including grab rails and hand rails, steps, ladders, starting blocking, lifeguard chairs and dive towers. Manufacturers represented include Paragon Aquatics, S R Smith and Duraflex.
Everything for cleaning and maintaining your commercial swimming pool including automatic pool cleaners, leaf rakes and skimmers, pool scrub brushes, vacuum filter and pump systems and underwater cleaning equipment.
We offer a wide variety of flow meters, gauges, valves, water level controllers and flow switches for commercial swimming pools.
Recreational swim equipment for commercial aquatic facilities including climbing walls, water basketball and volleyball, permanent and portable pool slides, floats and toys, and products for every type of aquatic fitness, exercise and therapy program.
All the products you need to ensure safety at your swimming pool including lifeguard and rescue equipment, CPR and first aid kits, pool signage and life vests.
Wibitize Your Pool! Revitalize and increase visitor numbers with Wibit's interlocking combinations and transform your swimming pool into a water adventure for all ages!
Home // Online Catalog // Maintenance / Accessories // Swimming Pool Ropes and Floats // Eyebolts // Replacement Chrome Plated Bronze Eyebolt – 2 3/8 inch long
2 3/8″ replacement eyebolt is fabricated from chrome plated bronze.


text:
Corporate Directory
Click here to get your
business listed in the
Corporate Members Directory
Xylem (XYL) is a leading global water technology company committed to developing innovative technology solutions to the world's water challenges. The Company's products and services move, treat, analyze, monitor and return water to the environment in public utility, industrial, residential and commercial building services settings. Xylem also provides a leading portfolio of smart metering, network technologies and advanced infrastructure analytics solutions for water, electric and gas utilities. The Company's more than 16,000 employees bring broad applications expertise with a strong focus on identifying comprehensive, sustainable solutions. Headquartered in Rye Brook, New York with 2017 revenue of $4.7 billion, Xylem does business in more than 150 countries through a number of market-leading product brands.
Xylem is represented by more than 300 dedicated staff across 15 locations in Australia and New Zealand with a strong network of sales, service and rental facilities and expertise.
The name Xylem is derived from classical Greek and is the tissue that transports water in plants, highlighting the engineering efficiency of our water-centric business by linking it with the best water transportation of all – that which occurs in nature. For more information, please visit us at http://www.xylem.com/au
PO Box 6012, Shepparton Victoria Australia 3632
24 New Dookie Road, Shepparton Victoria Australia 3630
03 5821 6744


text:
Health & Wellness
Tips for Prediabetes and Diabetes Meal Planning
WASECA, Minn. — Poor diet can obviously lead to health problems and weight gain. Conversely, proper food choices help people become healthier and manage certain conditions. For those with diabetes and prediabetes appropriate monitoring and management of diet is extremely important. Mayo Clinic Health System registered dietitian Sue Seykora offers these meal-planning tips to help keep diabetes under control and maybe avoid it all together.
Carbohydrate counting
Carbohydrate counting is a meal-planning approach that focuses on the total number of carbs consumed. It's an easy method to follow and allows variety in food choices that fit preferences and lifestyle.
Most of the foods you eat contain carbs: breads, crackers, pasta, rice, potatoes, milk and many more. Carbs are often thought of as bad foods. In reality, your body needs carbs to create energy. The problem is that many people don't choose healthy types and amounts of carbs. "People should consume healthier carbs like fruits, vegetables, whole grains and low-fat dairy foods. All foods – even healthy foods – need portion control," says Seykora.
Although there is no universal amount of carbs you should ingest, the following guidelines serve as a good starting point and can be adjusted as needed (note that one serving of carbs is considered 15 grams):
- Women: Three to four carb servings per meal; one serving for a snack
- Men: Four to five carb servings per meal; one to two for a snack
"Although carb counting is the initial focus for a diabetic diet, protein and fat levels cannot be ignored," says Seykora. "Work with your dietitian to discover how to limit excessive protein and fat in your diet."
The plate method
"Another meal-planning system is the plate method. Not only is this good for people with diabetes and prediabetes, it's a healthy option for anyone," adds Seykora. She shares some basic principles for the plate method:
- Balance calories. Enjoy foods, but eat less. Avoid oversized portions.
- Increase your plate's health. Make half of your plate fruits and vegetables. At least 50 percent of your grains should be whole grains, such as brown rice, whole wheat flour and quinoa. Limit proteins and grains/starches to one fourth of your plate each. Additionally, switch to fat-free or low-fat (1 percent) milk.
- Reduce sodium and sugar. Many breads, frozen meals and soups have a high sodium content. Compare these foods and choose their low-sodium counterparts. Throw out the sugary drinks and pick water instead.
Actions for people with prediabetes
It's amazing what health-conscious eating and physical activity can do for preventing the progression of diabetes. Try these tactics to improve your health:
- Work with your health care provider to reduce 5 to 10 percent of your baseline body weight.
- Eat more fruits, vegetables and whole grains while significantly reducing fats, sodium and sugars.
- Strive for 150 minutes of moderate physical activity each week. This can be a walk around the neighborhood, playing with your kids or even gardening.


text:
by Bethany M. Dunbar
copyright the Chronicle, 8-22-2012
BIG SUR, California — In 1987, there were just 27 California condors left in the world. The last wild bird was taken into captivity — a highly controversial move to try to keep the species in existence.
Two years later my daughter was born. Katie Ann Dunbar always had a fascination with dragons, and that seems to have translated into a scientific interest in birds. Armed with a bachelor's degree in psychobiology, she helped with bobolinks in Vermont and falcons and other raptors in California.
Those experiences led her to Big Sur, where she is working to help condors make it on their own.
Despite all our human efforts, the birds are still extremely rare — due mostly to problems created for them by people. Fragments of lead bullets are their biggest threat. Another problem is plastic trash scraps and bottle caps.
There are currently about 400 condors in the world, half of them in captivity. The captive breeding program is working, and condors have been reintroduced to the wild. Some are raising chicks the old-fashioned way, on the edge of a rock cliff somewhere.
There are condors in California, Arizona and Mexico.
In July, my sweetheart, Jim Bowes, and I had the incredible privilege of getting a good look at these birds ourselves when we visited Katie.
One day we got to go with Katie to where she perches on a cliff opposite the nest, watching through a high-powered scope as the wild condor mother nuzzles its chick lovingly. These birds are enormous. The baby chick, covered with gray down, is 19 pounds.
Under ideal circumstances, condors can live to be 60 years old. They keep their mates and are extremely social. The wild flock has an easily seen hierarchy when eating. The matriarchs and patriarchs are first. Kids wait their turn.
These birds, when fully grown, have a wingspan of nine and a half feet. Seeing one in flight, skimming through the fog overhead, is a breath-taking experience. Native Americans revered a legendary thunderbird, which some believe was a condor or an even larger relative of it. It's easy to see why. These dramatic birds make an impression.
Condors' wings are mostly black with a white pattern on both the top and bottom. They have a feathery ruff around their necks, and adults have orange bald heads. They eat only carrion, and the bald heads come in handy for keeping clean while tearing the meat from something dead.
Katie's employer is the Ventana Wildlife Society (VWS). Founded in 1977, VWS is a nonprofit with a mission to restore wildlife and educate the youth of central California. VWS relies heavily on interns and volunteers. She is an intern and has just accepted a second six-month stint.
The VWS helped bring back bald eagles. The group also worked to help songbirds and monarch butterflies and to restore habitat. The small team does workshops and classes for youngsters, and older students can apply for an eco-experience — a one-day or overnight experience with the California condors.
Jim and I had our own personal eco-experience while visiting. Katie took us up to the VWS base camp for the night. The base camp is high on top of a mountain overlooking the ocean, in the middle of an 80-acre property — the condor sanctuary.
The land in this area of the country stops abruptly at the ocean's edge. It makes for some incredible views of the ocean from the cliffs with rocks and narrow beaches below. Highway 1, which winds around the edges of the cliffs, is in itself a tourist destination.
The camp is 20 miles up a tiny, winding one-lane dirt road perched on the edge of the cliffs. There were four locked gates to go through.
My daughter seems perfectly comfortable driving the F-150 up this lane with a frozen dead calf carcass in the back of the truck. She is also fine in eight-lane traffic to Los Angeles, where injured birds are treated at the zoo.
The calf carcass, provided by a neighboring dairy farmer, is lead-free food for the condors. This is part of what the VWS does — provide the birds with a source of food that won't make them sick. In order to keep the wild birds from associating food with humans, this is done under the cover of darkness while the condors roost nearby. In the morning they can be watched, through the scope, while they have their meal.
The VWS has a flight pen where an injured bird is staying right now, and another one perches on the pen, offering some company? Or Katie thinks maybe it is taunting its friend.
All the 70 birds in this wild flock have been captured at one time in their lives, in order to put tags on their wings and small tracking transmitters, so they can be identified from far away. Part of Katie's job is tracking the birds to make sure they are all moving around normally. If one stops moving for too long, she and her colleagues will look for it to make sure it's all right.
The birds still sometimes die from lead poisoning, which happens if they eat a fragment of a bullet that might be in a carcass or a gut pile that a hunter left behind. Something I didn't know: A lead-based bullet loses 30 percent of its mass on impact with the animal. Tiny fragments scatter through the meat, which is a hazard not only to the big birds but also to humans who eat meat shot with lead bullets.
As a precautionary measure, they trap each bird once or twice a year to test their blood for lead. If high lead is found the bird is sent to the Los Angeles zoo for treatment. Chelation treatment takes one to three weeks of daily injections. Chelation is a chemical process similar to what is done with children who get lead poisoning.
Sometimes a bird requires surgery to get a lead fragment out of its guts.
One of the missions of the VWS is to get hunters to switch to copper or other non-lead bullets. Although eating copper is not good for you either, copper doesn't fragment the way lead does. The VWS provides free boxes of copper bullets to hunters in the condors' range, and reports that 93 percent of hunters surveyed said the copper bullets worked just as well.
In condor country, lead bullets are banned, but some hunters still use them out of habit.
Another hazard for the birds is trash. Condors in the wild eat bits of seashells and feed them to their chicks, to aid digestion (probably for the same reason chickens peck the dirt) or possibly for the calcium. A small piece of plastic, broken glass, or a bottle cap seems like a seashell, and they eat them and feed them to the chicks. The chicks can't digest this stuff. Their stomachs fill up with it, and they can actually starve to death. So the VWS checks the chicks every so often, taking them down from the nest to do blood tests and palpate their stomachs to feel for odd shapes.
If a condor chick is full of plastic and bottle caps, it goes off to the zoo for surgery. It can't go back to the wild until it's grown up. Then it has to learn how to be a wild bird all over again. It will be matched with an older mentor bird.
Despite these issues, condors are definitely doing better than they were. The goal of the recovery program is two flocks in the wild of 150 birds and 15 breeding pairs each.
According to Return of the Condor, The Race To Save Our Largest Bird From Extinction by John Moir, a 2004 forecast by researchers at Stanford University predicts that unless things change, about 10 percent of the 10,000 bird species on Earth will go extinct by the end of the century. An additional 15 percent will be so drastically reduced they will "no longer be ecologically significant."
What are the consequences of these drastic losses of biodiversity? No one knows, but it won't be good.
During our visit with Katie, I read the condor book as quickly as if it was a suspenseful novel. It's well-written, telling the story of the people who have devoted so much time and energy to saving these birds, and the stories of the individual birds as well. John Moir is an award-winning author and science writer who lives in Santa Cruz, California. The book was published in 2006, so it is up to date.
Another place to get more information, if you are interested, is the VWS website: ventanaws.org.
You might see some photos of a young woman who grew up in West Glover and graduated from Lake Region Union High School on there.
contact Bethany M. Dunbar at [email protected]
For more free articles from the Chronicle like this one, see our Featuring pages. For all the Chronicle's stories, pick up a print copy or subscribe, either for print or digital.


text:
When it came to labeling these baskets specifically, many of my typical methods wouldn't work since the baskets are textured. That means no pretty vinyl labels... boo. I thought about doing some laminated labels, but I wanted something that had a finished look and that would last through many many hours of play. And remember how I really wanted some espresso natural woven baskets but settled on the plastic green ones for durability reasons? Well, I got to thinking and decided to try to bring the wood tone in through the labels instead!
So I started out with ten basic 4x6 inch unfinished wood frames.
And some dark walnut wood stain:
I used a foam brush to stain the frames:
And followed the directions on the can to wipe them down with a rag and letting them dry. I decided to stick with one coat and let some of the lighter tones show through to give it a bit more of a rustic feeling to them.
I have always been a believer in using picture labels in playrooms. It's the quickest and easiest way to ensure that toys can make it back where they belong, and ensures the kiddos can easily be helpful at pick-up time, no matter what their age.
I just Googled around for the images of the toys that we were storing in each bin, and printed them out on cardstock:
Then, I traced the glass from the frame so that I could easily cut out the image from the cardstock to place inside the frame.
When I placed the printed toy pictures inside of the frames, I didn't use the glass as I want the playroom to be safe. Glass labels really don't sound like a great idea...
To attach the frames to the basket, we just used some itty bitty screws:
Lined up the frame flush with the open handle:
And screwed through the basket holes right into the back of the wooden frame:
Nice and secure! Now, no more guessing the contents of each basket!
We repeated the steps for all ten baskets!
The awesomepants part is that when we remove the screws, it's like they were never there since we just used the existing basket holes, and the baskets stay in their original condition!
Still a few more items to finish up before I can call this room update complete:
Paint entertainment centerUpdate light fixture- Window treatment
- Additional seating
Additional toy storageA fun wall treatment- Photographs/Artwork
- Book storage
Basket Labels
What are you favorite, no fail labeling techniques? Vinyl? Chalkboard? Frames? Stickers?


text:
For this project, this crazy big lovely Craigslist find was my victim.
We started out by taking everything off, removing shelves and cabinet doors...
And finding dust, Legos and Lincoln logs under and behind the piece that has been sitting for a year without being moved...
Step one is to wipe everything down to ensure there is no dust on the piece.
Because the piece itself was in great shape, I opted to skip the sanding step. However, if you have a piece that has rough patches or imperfections, sanding is a good step to include.
I went straight to priming. I really like Zinsser Cover Stain Oil Based Primer {and no, I didn't get a dented can discount, I tried...}:
I use inexpensive brushes with the oil based primers, since they aren't all that easy {or fun} to clean, and after a couple of uses, they typically end up being discarded.
Thin, even coats are key. I start with the outside frame....
And then use a small foam roller for the larger, smooth surfaces:
Don't panic when you prime and see brush marks. This is OK with primer. The photo above is a picture of our piece all finished up and drying the recommended time before we began coating with paint.
A quick sanding with a fine grit wedge in-between coats will also help with any imperfections you find {not sure which grit to use? This will help you}.
For this project, I just ran to the local Ace Hardware and picked up some of their wall and trim paint:
I like to paint furniture in a satin finish and always use a latex enamel. Again, just follow the instructions on the can as far as how often you can re-coat.
Speaking of, I did two coats on this project. Nice, thin, even coats...
Coat 1:
Still streaky, but those streaks were completely M.I.A. after the second coat:
When it came to the cabinet doors, I forgot to photograph that process, but I did it just like I did with our kitchen cabinets...
Lay out drop cloths, place cabinet doors on 2x4's and prime, sand and paint just like you do the other parts of the furniture piece. Wait for the coats to cure before flipping and repeating on the other side.
In the photo above, you could see how I used the painters tape to tape out the new blue backdrop, which took not one...
But two coats as well. Don't forget you can wrap your brush in plastic wrap in-between coats!
To finish things off, three very thin coats of Minwax Polycrylic to protect all of that hard work!
We always wait and wait {as hard as it is}, in between each coat of each step. This is important to allow everything to cure and be durable down the line. This whole project took me over a week from start to finish. I was SO excited to put it all back together!
Here are a couple more up close views:
LOVE the knobs. They were scored on clearance from Anthro for $3 each. So pretty!
For the shelves, I actually had forgotten about them until half way through. To speed things up a smidge, I just used a spray paint primer, which seemed to work just as well, and gave a nice even coverage. Then two coats of paint just like the rest of the piece.
As you can see, we also added a shelf above the TV, just using some left over trim and melamine board {also primed and painted}.
Here it is all loaded up!
The bins on the top shelf used to be brown... just given a quick coat of spray paint to freshen them up a bit!
Games got pared down to only ones we love, play and that have all pieces... Lego build buckets, a charging station for their DS's and their video games also live on the shelves. Speaking of video games, since two of the systems moved down stairs to the playroom, so did some of the games. To store them, I just removed the games from their original cases and popped them into slimmer jewel CD cases and into a media box. Easy for the kids to find things and maintain!
In the cabinets below, we keep those larger, more awkward shaped toys {the dot bins were DIY'd here}.
And the art is just some framed scrapbook paper and the freebie printable {which I downloaded here}:
Even with all of the blues, as much as I love how "pretty" it's looking, it's a space for three boys, so I have a few more tricks up my sleeve to make it feel like home for both them and the adults of the house. More to come!
For now, a glorious before and after!
Who else has recently tackled a piece of furniture? Did it make all of the difference in your space as well? Share your links and stories!


text:
Blue Jays - 102 000 001 - 4 10 0 Red Sox - 110 400 00x - 6 11 0With two outs in the fourth inning, trailing Toronto 2-3, the Red Sox finally battered Romero the way they (almost) always do:
J.D. Drew double off the Wall
Darnell McDonald single off the Wall (3-3)
Jarrod Saltalamacchia single to CF
Yamaico Navarro double off the Wall (4-3)
Jacoby Ellsbury double off the Wall (5-3)
Marco Scutaro walk
Dustin Pedroia 1-3
Wakefield (7-9-3-1-7, 106) kept the Jays in check, and Daniel Bard, Dan Wheeler (who finished the eighth inning after a 40-minute rain delay), and Jonathan Papelbon closed it out. It was Wakefield's 184th Red Sox win and the 198th victory of his career.
Ellsbury and Kevin Youkilis each homered (leading off the first and second innings, respectively) and doubled twice. Ellsbury (now 13-for-27 since June 29, .481) drove in three runs and stole a base.
The Yankees lost to Cleveland 5-3 [Masterson: 8-3-0-2-6, 112], so the Red Sox are 0.5 GB in the East.Ricky Romero / Tim Wakefield
Adrian Gonzalez gets the night off. He had started all of Boston's previous 85 games this year. In his last eight games, he's hitting .219 (7-for-32) with a .618 OPS, and has "a bit of a stiff neck apparently".
Wakefield's last outing (July 1, in Houston) was the first start in his career that he had pitched more than 2.1 innings and did not record a walk or a strikeout (5.1-11-5-0-0, 91). Wakefield's only other start with no BB or K was for the Pirates on September 7, 1992.
Romero has a 1.49 ERA in his last four starts, including a complete-game shutout of the Cardinals on June 26. However, among teams that have faced him more than once, the Red Sox hit him best, by far (.350/.441/.550/.991 in 10 starts; 70 hits and 32 walks in 48 innings; 2.125 WHIP, 7.69 ERA).
AL East: Rays/Twins at 1 PM and Yankees/Spiders at 7 PM.


text:
COPENHAGEN, Denmark – Sex. Violence. Elections.
Officials in Denmark have retracted a controversial animated cartoon that was intended to inspire young people to vote in upcoming elections for the European Parliament.
The 90-second video featured a mustachioed, muscular man aggressively interrupting a couple having sex and punching people into a polling station. It was posted late Monday on the Danish Parliament's social media sites.
Parliament Speaker Mogens Lykketoft said Tuesday that the 179-seat Folketing should in future "be more careful with what we put our name to." Lawmakers were cited by Danish media as saying it was done without their knowledge.
Voting for the 751-seat European Parliament takes place in each of the European Union's 28 member states, stretching over four days beginning May 22.


text:
Chapter 10
A testimony of the Book of Mormon comes by the power of the Holy Ghost—The gifts of the Spirit are dispensed to the faithful—Spiritual gifts always accompany faith—Moroni's words speak from the dust—Come unto Christ, be perfected in Him, and sanctify your souls. About A.D. 421.
1 Now I, Moroni, write somewhat as seemeth me good; and I write unto my brethren, the aLamanites; and I would that they should know that more than bfour hundred and twenty years have passed away since the sign was given of the coming of Christ.
2 And I aseal up bthese records, after I have spoken a few words by way of exhortation unto you.
3 Behold, I would exhort you that when ye shall read these things, if it be wisdom in God that ye should read them, that ye would remember how amerciful the Lord hath been unto the children of men, from the creation of Adam even down until the time that ye shall receive these things, and bponder it in your chearts.
4 And when ye shall receive these things, I would exhort you that ye would aask God, the Eternal Father, in the name of Christ, if these things are not btrue; and if ye shall ask with a csincere heart, with dreal intent, having efaith in Christ, he will fmanifest the gtruth of it unto you, by the power of the Holy Ghost.
5 And by the power of the Holy Ghost ye may aknow the btruth of all things.
6 And whatsoever thing is good is just and true; wherefore, nothing that is good denieth the Christ, but acknowledgeth that he is.
7 And ye may aknow that he is, by the power of the Holy Ghost; wherefore I would exhort you that ye deny not the power of God; for he worketh by power, baccording to the faith of the children of men, the same today and tomorrow, and forever.
8 And again, I exhort you, my brethren, that ye deny not the agifts of God, for they are many; and they come from the same God. And there are bdifferent ways that these gifts are administered; but it is the same God who worketh all in all; and they are given by the manifestations of the cSpirit of God unto men, to profit them.
9 aFor behold, to one is given by the Spirit of God, that he may bteach the word of wisdom;
10 And to another, that he may ateach the word of bknowledge by the same Spirit;
11 And to another, exceedingly great afaith; and to another, the gifts of bhealing by the same Spirit;
12 And again, to another, that he may work mighty amiracles;
13 And again, to another, that he may prophesy concerning all things;
14 And again, to another, the beholding of angels and ministering spirits;
15 And again, to another, all kinds of tongues;
16 And again, to another, the interpretation of alanguages and of divers kinds of tongues.
17 And all these gifts come by the Spirit of Christ; and they come unto every man severally, according as he will.
18 And I would exhort you, my beloved brethren, that ye remember that aevery good bgift cometh of Christ.
19 And I would exhort you, my beloved brethren, that ye remember that he is the asame yesterday, today, and forever, and that all these gifts of which I have spoken, which are spiritual, never will be done away, even as long as the world shall stand, only according to the bunbelief of the children of men.
20 Wherefore, there must be afaith; and if there must be faith there must also be hope; and if there must be hope there must also be charity.
21 And except ye have acharity ye can in nowise be saved in the kingdom of God; neither can ye be saved in the kingdom of God if ye have not faith; neither can ye if ye have no hope.
22 And if ye have no hope ye must needs be in adespair; and despair cometh because of iniquity.
23 And Christ truly said unto our fathers: aIf ye have faith ye can do all things which are expedient unto me.
24 And now I speak unto all the ends of the earth—that if the day cometh that the power and gifts of God shall be done away among you, it shall be abecause of bunbelief.
25 And wo be unto the children of men if this be the case; for there shall be anone that doeth good among you, no not one. For if there be one among you that doeth good, he shall work by the power and gifts of God.
26 And wo unto them who shall do these things away and die, for they adie in their bsins, and they cannot be saved in the kingdom of God; and I speak it according to the words of Christ; and I lie not.
27 And I exhort you to remember these things; for the time speedily cometh that ye shall know that I lie not, for ye shall see me at the bar of God; and the Lord God will say unto you: Did I not declare my awords unto you, which were written by this man, like as one bcrying from the dead, yea, even as one speaking out of the cdust?
28 I declare these things unto the fulfilling of the prophecies. And behold, they shall proceed forth out of the mouth of the everlasting God; and his word shall ahiss forth from generation to generation.
29 And God shall show unto you, that that which I have written is atrue.
30 And again I would exhort you that ye would acome unto Christ, and lay hold upon every good bgift, and ctouch not the evil gift, nor the dunclean thing.
31 And aawake, and arise from the dust, O Jerusalem; yea, and put on thy beautiful garments, O daughter of bZion; and cstrengthen thy dstakes and enlarge thy borders forever, that thou mayest eno more be confounded, that the covenants of the Eternal Father which he hath made unto thee, O house of Israel, may be fulfilled.
32 Yea, acome unto Christ, and be bperfected in him, and cdeny yourselves of all ungodliness; and if ye shall deny yourselves of all ungodliness, and dlove God with all your might, mind and strength, then is his grace sufficient for you, that by his grace ye may be eperfect in Christ; and if by the grace of God ye are perfect in Christ, ye can in nowise deny the power of God.
33 And again, if ye by the grace of God are perfect in Christ, and deny not his power, then are ye asanctified in Christ by the grace of God, through the shedding of the bblood of Christ, which is in the covenant of the Father unto the remission of your csins, that ye become dholy, without spot.
34 And now I bid unto all, farewell. I soon go to arest in the bparadise of God, until my cspirit and body shall again dreunite, and I am brought forth triumphant through the eair, to meet you before the fpleasing bar of the great gJehovah, the Eternal hJudge of both quick and dead. Amen.
The End


text:
Chad Billingsley (3-5, 4.34) vs. Matt Belisle (1-3, 7.45).
COMMENTS: You can't pick your spots in the Dodgers' formidable lineup. At least, that's what Reds manager Dusty Baker has got to be thinking after Russell Martin, as the winning run, gets to third with one out in the ninth; Baker proceeds to issue free passes to Free James Loney and Matt 4-for-4 Kemp, only to get burned when Blake DeWitt hits DeWinning base hit to left. Vin Scully gets at least one more night to drive home the point that the Reds have not won at Dodger Stadium since 2005. But tonight, things get even more testy now that Gary Bennett joins Andruw Jones on the DL. Without Bennett (.190) and Jones (.167) in the lineup, will the Dodgers have a fighting chance?


text:
Shayne Graham's 32-yard field goal with 2:21 left overtime lifted Houston to a 34-31 win over Detroit on Thursday after Schwartz broke an NFL rule on a scoring play.
Detroit kicker Jason Hanson had a chance to get Schwartz off the hook, but his 47-yard field goal attempt on the fifth possession of the extra period hit the right upright.
Schwartz threw a challenge flag when Houston's Justin Forsett scored on an 81-yard touchdown run in the third quarter. Replays showed Forsett was down near midfield, but Schwartz negated the automatic review by challenging the play and was called for unsportsmanlike conduct.
"It's on me," Schwartz said to his assistant coaches and players on the sideline as he tapped his chest. "It's on me."
Yes, it was.
That touchdown pulled Houston within three points counted and Schwartz was called for unsportsmanlike conduct.
Arian Foster ran for 102 yards and two scores, including a 1-yard run with 1:55 left in the fourth quarter to cap a 15-play, 97-yard drive that took 5:43 off the clock and tied the game at 31.
AFC South-leading Houston (10-1) took its first lead when Graham made up for missing a field goal earlier in a turnover-filled OT. The Texans have won five straight -- two in a row in OT -- and if a handful of teams lose they could be in the playoffs by the time they get back on the practice field after a long weekend.
Detroit (4-7) has lost three straight to make it extremely difficult to reach its goal of earning a spot in consecutive postseasons for the first time since the mid-1990s.
And as if the Lions don't have enough problems, defensive tackle Ndamukong Suh could be in trouble with the league again after his left cleat connected with Matt Schaub's groin area in the first quarter. It wasn't clear on replays Thursday whether it was intentional, but it might be tough for Suh to get the benefit of doubt.
Suh was on his chest, taken down by an offensive lineman, when he extended his left foot below Schaub's belt.
Last year on Thanksgiving, Suh was ejected for stomping on the right arm of Green Bay offensive lineman Evan Dietrich-Smith and was suspended for two games. He has been fined in previous seasons for roughing up quarterbacks: Cincinnati's Andy Dalton, Chicago's Jay Cutler and Cleveland's Jake Delhomme.
Schaub shook off the blow, stayed in the game, and was 29 of 48 for 315 yards with 9-yard TD to Owen Daniels to tie the game at 14 late in the first half.
Houston's Andre Johnson had nine receptions for 188 yards. J.J. Watt had three sacks, one on Detroit's first snap and the other two that helped the Texans stay within a TD late in the game.
Detroit scored four go-ahead TDs, including on Joique Bell's 23-yard run early in the fourth quarter, and had a 10-point lead midway through the third quarter.
The Lions drove deep enough into Houston territory to put Hanson in a position to give them a 10-point lead, but Watt forced them to punt each time with sacks on third downs.
Matthew Stafford was 31 of 61 for 441 yards with two TDs -- tiebreaking scores to Calvin Johnson and Mike Thomas in the second quarter -- for 441 yards and an interception.
Detroit failed to make the Texans respect its running game with Mikel Leshoure gaining just 32 yards on 12 carries. Leshoure did give the Lions their first TD on an opening possession that marked the first rushing score on the ground against Houston.
Those accomplishments, along with providing entertainment for the nationally televised audience for a change on Thanksgiving was of little consolation for the franchise.
The Lions lost their previous eight games on the holiday by an average of three-plus touchdowns.
Detroit extended the longest losing streak in its annual showcase to nine in a closely contested matchup no one will soon forget.
We want to see your Texans fan photos! Send them to email@example.com or upload them at iWitness.abc13.com and we'll post them online!


text:
A worldwide Catholic conversation that many church-watchers say effectively stopped when Benedict XVI was elected pope eight years ago has been rekindled by his announced plan to resign at month's end.
And, perhaps most significantly, the spectacular growth of the church in the more religiously conservative "global south" — Latin America, Africa and Asia — while its fortunes continue to decline in the increasingly secular West.
"It's the Catholic Church's 'Obama moment,' if you will," says David Gibson, who has covered the Vatican since the 1980s and is author of The Rule of Benedict: Pope Benedict XVI and His Battle with the Modern World.
The historically Europe-centered church is shifting to one of the Southern Hemisphere, says Gibson, an independent writer specializing in Catholicism, whose work has appeared in publications ranging from Fortune to the Religion News Service. "By choosing a brown pope, as it were, they would send a real message, a remarkable statement to the wider church."
That the end of the current pope's reign would come with predictions of the possibility of dramatic change is not surprising to papal historians like Roger Collins, author of Keepers of the Keys of Heaven: A History of the Papacy.
"Benedict XVI was clearly a transitional choice by a conclave of cardinals that did not know in what new direction it ought to go," says Collins, an honorary fellow at the University of Edinburgh.
'Moment For A Transition'
The German pope, born Joseph Ratzinger, was in many ways seen as providing an extension of sorts to Pope John Paul II's rule. Ratzinger was, after all, Collins notes, his Polish predecessor's executive, "or 'enforcer.' "
"Choosing him postponed making more radical choices, or even a divisive election between opposing forces in the College of Cardinals," Collins says. "This coming conclave will be a very important one, in that the decisions postponed in 2005 will now have to be made."
And it presents the church a historic opportunity to appoint a different kind of pope, says John Green of the Pew Forum on Religion & Public Life, one who might not be a European and who might represent a demographic that's a "growth area for the church."
More than 28 percent of the world's 1.19 billion Catholics now reside in South America; and more than 15 percent live in Africa. Asians still represent just under 11 percent of worldwide Catholics but are the church's second-fastest-growing demographic, trailing only Africa.
By contrast, just over 7 percent of Catholics call North America home, while nearly 24 percent of Catholics live in Europe, though their percentage is falling.
Pope Benedict XVI may well have recognized, says Green, that this could be an "opportune moment for a transition," a transition that he stands to have "some kind of influence over," although the current pope will not participate in deliberations on his successor.
"This moment presents a really interesting dynamic of increasing ethnic diversity and theological disputes in the Catholic Church," he says. "Many Christians, including Catholics, from the global south are very conservative, but when it comes to economic issues, they are much more progressive, much more liberal."
"I wouldn't know how it's going to resolve itself," he says.
The church also faced competition in Latin America from Pentecostal churches, and in Africa from the Muslim faith.
Change, or Status Quo?
The prospect, if not promise, of change and more open discussions with a new pope is one welcomed by Catholics like Dennis Coday, editor of the National Catholic Reporter.
"The next pope needs to address these issues, which aren't just American issues," says Coday, adding that under Benedict XVI, "all discussion has been shut down."
"We're saying that it cannot be a closed discussion anymore — and it's not just our paper saying that," he said.
He notes that priests have been removed from the ministry because they support the ordination of women, and some women have been excommunicated for the same, he said.
The pope has clashed with Catholic nuns he accused of straying from the church's teachings; and American bishops have become aggressively involved in political efforts to block the legalization of same-sex marriage.
There have been some signals, Coday says, that a handful of church leaders, including the conservative Christoph Schonborn of Austria, have already begun seeking routes to deal with dissent short of confrontation and removal of priests who publicly question church teaching.
In 2012, Schonborn, for example, did not remove dissident priests who vocally supported a priests' "Call to Disobedience" on issues including the church positions on homosexuality and female priests. The priests, however, were barred from serving as heads of local deaneries.
And that may be a model going forward; maintain conservatism, work on style.
A Non-European Pope?
No one expects the church, or the new pope, to change position on dogma, to ordain women as priests, for example, Gibson says.
But cultivating a conversation, and looking to focus on an issue like social justice that unites Catholics, and resonates particularly in countries of the global south, and being more open to the participation of lay men and women in certain forms of ministry could temper criticism the church has faced on cultural issues in the U.S. and Europe.
"This is also a stylistic question," says Gibson. "People send powerful messages without changing policies."
Green, of Pew, says that the magnitude of the world's demographic change is so large that it can't be ignored by any religion.
"All religious institutions have to change with the world," he says. "How do they maintain their traditions and still adapt? It's tough."
Catholics, and their new pope, will struggle with a divided reality. Social issues including same-sex marriage, as well as the ordination of women, are important to church members in the Western World. And, just to note, the U.S. and Germany are the top two donors to the Vatican, and supply the majority of funding for the Holy See, Green says.
But in the church's growth areas, in South America, Asia and Africa, Catholics are more conservative on those cultural issues, although church-watchers say they face a severe priest shortage that suggests they are more open to a lifting of celibacy rules for priests.
Benedict XIV's Legacy
Though seen largely as a conservative enforcer of the status quo, the outgoing pope, in resigning while of sound mind and body, leaves an enormous legacy.
It will be Joseph Ratzinger, historians say, who will be viewed as the person who changed forever the role, and the mystery, of pope.
"His abdication is a game changer," says Collins, of the University of Edinburgh.
Says Eamon Duffy, author of Saints and Sinners: A History of the Popes, in emailed comments: "Benedict has liberated his successors to think of their election as a fixed term appointment, and he has liberated the Cardinal electors, with the realization that the Church is not necessarily stuck with their choice 'til death do us part."
"It is a major step," Duffy said, "to reintegrating the papacy into a working ecclesiology, in which a pope's competence is something which even loyal Catholics are entitled to discuss."
A game changer, a real legacy, a redefinition of the papacy, Green says, noting that when Pope John Paul II was asked if he should resign he responded that Christ himself did not come down from the cross.
"This pope has opened the door for future popes to see this as an office, rather than a cult," he says. "And given that Joseph Ratzinger has done it, it's difficult for his conservative fans to dispute it."
Copyright 2021 NPR. To see more, visit https://www.npr.org.


text:
I can show you various financing options that you may not be aware of and will discuss the likely impact of each alternative if you are selling a property. Depending on the price of the home and/or the amount of your down payment, there may be several options that fit your personal situation:
I'll work closely with you to understand the documents and financial information you'll need to gather prior to meeting with your lender. Pre-approval is based on your employment, income, assets, liabilities and available down payment to close on your home. Some sellers only accept offers from pre-approved buyers.


text:
K&N Air Filter 33-2288
- Sale Price: $67.49
- Shipping:FREE SHIPPING
- Part Number: 33-2288
- Rating: (283)
Free ShippingSelect your vehicle details above to ensure item compatibility.
- Same Day Shipping if ordered by 1:30pm CST*
- K&N Air Filters provide extra clean, unrestricted airflow to your engine for higher horsepower
- Designed to your exact year, make, and model vehicle's engine for a perfect fit
- Oiled pleated cotton gauze filter medium is washable and reusable - drive up to 50,000 miles between cleanings
- Reusable design is environmentally friendly - reduces waste for minimal landfill impact
- 50-State street legal
- Will not void or affect your vehicle's warranty
- The K&N Air Filter even improves your fuel economy, cutting down on your trips to the gas station
- K&N backs your Performance Air Filter with a 1,000,000 Mile / 10-Year warranty
K&N Filters are quite simply the best choice when it comes to engine filtration. This isn't news, either - drivers have turned to K&N to keep their engines breathing for over 30 years. Bolt one to yours, and you'll see why right away.
K&N Air Filters provide nearly unrestricted air flow to your engine, promoting combustion and enhancing your power and acceleration. It features 4-6 pleated sheets of oiled cotton-gauze, held between two layers of aluminum wire. This design effectively blocks dust and debris, keeping your engine breathing clean for maximum performance.
With a K&N Performance Air Filter under your hood, you'll never have to buy another filter again. It only takes a simple cleaning every 50,000 miles to keep this filter working for as long as you own your vehicle. Reusing your filter is not only convenient - it's good for the environment, too. Your K&N Air Filter is backed with a 10-Year / Million-Mile Warranty.
*Ships same day unless otherwise noted when you add to your cart. Applies only to in-stock items.
K&N 33-2288 fits:
- 2007-2009 Chrysler Aspen
- 2004-2009 Dodge Durango