Archive for January, 2016

Broadening Access to Computing Education State by State: ECEP in CACM

An article written by Rick Adrion, Barbara Ericson, Renee Fall, and me appears in this month’s Communications of the ACM about our work in the Expanding Computing Education Pathways (ECEP) Alliance.  Our annual meeting is today, with 11 states and Puerto Rico, where we talk about how to create sustained change in a state. We are learning a lot about what it takes to make change in our very diverse United States.

The lessons learned from Massachusetts and Georgia are useful for states joining ECEP, but so are the lessons from the other states. We have been surprised at how much our state leaders draw ideas from each other. South Carolina leaders used a teacher survey that was invented in Massachusetts. Utah draws inspiration from a Texas teacher recruitment strategy. What our state leaders find most useful about ECEP is access to other state leaders who share similar goals, for example, to broaden participation in computing by changing education pathways in their states.

Source: Broadening Access to Computing Education State by State | February 2016 | Communications of the ACM

January 31, 2016 at 7:50 am 2 comments

White House Backs CS for All: Giving Every Student an Opportunity to Learn Through Computer Science For All

I don’t usually blog on a Saturday, but this is huge.

In this week’s address, the President discussed his plan to give all students across the country the chance to learn computer science (CS) in school.  The President noted that our economy is rapidly shifting, and that educators and business leaders are increasingly recognizing that CS is a “new basic” skill necessary for economic opportunity. The President referenced his Computer Science for All Initiative, which provides $4 billion in funding for states and $100 million directly for districts in his upcoming budget; and invests more than $135 million beginning this year by the National Science Foundation and the Corporation for National and Community Service to support and train CS teachers.  The President called on even more Governors, Mayors, education leaders, CEOs, philanthropists, creative media and technology professionals, and others to get involved in the efforts.

Source: Weekly Address: Giving Every Student an Opportunity to Learn Through Computer Science For All | whitehouse.gov

January 30, 2016 at 9:47 am 9 comments

Human-Centric Development of Software Tools: Dagstuhl Seminar Report now published

I wrote about this seminar when I attended (see post here) — the report has now been posted.  I grimace a bit in sharing this since the title of my paragraph has a mis-spelling in it…Sigh.

Over two and half days, over 30 participants engaged in inventing and evaluating programming and software engineering tools from a human rather than tool perspective. We discussed methods, theories, recruitment, research questions, and community issues such as methods training and reviewing. This report is a summary of the key insights generated in the workshop.

Source: DROPS – Human-Centric Development of Software Tools (Dagstuhl Seminar 15222)

January 29, 2016 at 8:02 am Leave a comment

On Imposter Syndrome: The week I made Forbes’ 30 Under 30 Science List

Sarah Guthals, a CS Education Researcher, was identified by Forbes Magazine as one of the “30 under 30” scientists to watch in years to come.  Congratulations to Sarah! She wrote an interesting blog post on imposter syndrome and the nomination.

I have suffered from imposter syndrome for at least a decade. I have worked hard, but it’s really hard for me to believe that I deserve what I have, or that the accomplishments that I’ve made are valid. I recognized my imposter syndrome when I was in my first year of grad school and since then I have been really trying to combat it — but I think instead I have just been ignoring it. Let’s see if I can explain it in the context of this weeks events.

When I found out I was nominated, I was very happy, but already feeling like a fraud. Am I really the one that should be nominated? What have I done to deserve it? I haven’t done anything alone (always had a team or partner).

Source: The week I made Forbes’ 30 Under 30 Science List — Medium

January 27, 2016 at 8:01 am Leave a comment

Join us for a CSP Webinar on Teaching with Pseudocode

Should be interesting — see if you can guess where each of us sits on the Pseudocode question tonight.

Computer Science Principles (CSP) is a programming language agnostic course. CSP aims to teach students the fundamentals of programming and the process involved in building algorithms and solving problems. Pseudocode and flow charts are two common tools, but how useful are they? How best should they be used in a CSP high school classroom?

Come and listen to Deepa Muralidhar (our webinar host) and the following experts discuss these questions during our next CSPwebinar on Tuesday, January 26 at 4:30pm PT/7:30pm ET:

  • Dan Garcia – Professor, UC Berkeley
  • Mark Guzdial – Professor, School of Interactive Computing, Georgia Tech
  • Jill Westerlund – CS Principles Teacher, Hoover High School, Alabama

To join via Adobe Connect, go to http://air.adobeconnect.com/pseudocode/. Or call in at +1-8667678829.

January 26, 2016 at 7:51 am 10 comments

White House Champions of Change for CS Education: Jane Margolis and Andreas Stefik

Congratulations to Jane Margolis and Andy Stefik, two computing education researchers named by the White House as Champions of Change!

Jane Margolis

Jane Margolis is a researcher at the University of California, Los Angeles Graduate School of Education and Information Studies, where she investigates why so few women and students of color have learned computer science. Based on research discussed in her books Unlocking the Clubhouse: Women in Computing and Stuck in the Shallow End: Education, Race and Computing, she and her collaborators, with support from the National Science Foundation, created Exploring Computer Science (ECS), a high school curriculum and teacher professional development program committed to reaching all students, especially those in underserved communities and schools. ECS now exists across the nation, including in seven of the largest school districts.

Andreas Stefik

Andreas Stefik, Ph.D. is an assistant professor of computer science at the University of Nevada, Las Vegas. For the last decade, he has been creating technologies that make it easier for people, including those with disabilities, to write computer software. With grants from the National Science Foundation, he established the first national educational infrastructure for blind or visually impaired students to learn computer science. He is the inventor of Quorum, the first evidence-oriented programming language. The design of Quorum is based on rigorous empirical data from experiments on human behavior.

Source: Champions of Change | The White House

January 25, 2016 at 7:46 am 3 comments

What’s the impact of the Hour of Code? It goes way beyond an Hour

Code.org has just released an interesting survey about their Hour of Code initiative.  They’ve been criticized for providing only an hour and overly focusing on puzzles (see Mitchel Resnick’s article here).  The results suggest that they’re reaching a diverse audience, and having an effect beyond an hour — students keep going, and teachers start teaching CS.

Programming is a literacy, and no one develops any kind of literacy in just an hour of practice.  Games are not the most interesting and powerful kinds of programming activities.

But they’re a start.  Particularly when we get past the Inverse Lake Wobegon Effect of thinking about students as being like us.  We know from many studies that students are afraid of computer programming. I’m teaching Media Computation again this semester, and at least a third of the students who have come talk to me after class have started their conversation with, “I’m one of those people who just don’t do computers.”  And that’s just those self-reporting without prompting!  Students associate CS with being a geek and wouldn’t want to let their friends know they like computer science, even if they do.  Few students get any kind of computer science education outside of Hour of Code.

When we think about most people, sustained activity in programming for one hour can go a long way to reducing fear, increasing self-efficacy, and nurturing interest. (Consider an Hour of Code compared to less than <5 minutes typically spent at a museum exhibit.) Games are a useful place to start because they’re well-structured. Aptitude-treatment interaction tells us that more structure is better with students who have less background in a subject.  Open-ended, constructionist activities like those that Mitchel is promoting are more successful with more privileged students, those who have more experience which results in higher-ability students. The Hour of Code can help inspire students to get that additional experience needed to develop more ability.)  An Hour of Code is a good first step for the remedial state of computing education in the United States today.

Hooray for Hour of Code, and thanks to Code.org for promoting it and for sharing these data.

The onus is on us to turn the Hour of Code into a Lifetime of Computational Literacy. 

After the Hour of Code, we asked participating organizers how it went and got some fantastic news for our field.

  • 98% had a good or great experience.
  • 85% of those new to computer science said the Hour of Code increased their interest in teaching computer science.
  • 49% said they plan to continue teaching computer science beyond one hour.
  • 18% said they began teaching computer science after a previous Hour of Code campaign!
  • 87% said their students did more than just one hour of coding.

Source: What’s the impact of the Hour of Code? | Code.org

January 22, 2016 at 8:41 am Leave a comment

End-user programmers are at least half of all programmers

I was intrigued to see this post during CS Ed Week from ChangeTheEquation.org. They’re revisiting the Scaffidi, Shaw, and Myers question from 2005 (mentioned in this blog post).

You may be surprised to learn that nearly DOUBLE the number of workers use computing than originally thought.  Our new research infographic shows that 7.7 million people use complex computing in their jobs — that’s 3.9 million more than the U.S. Bureau of Labor and Statistics (BLS) reports. We examined a major international dataset that looks past job titles to see what skills people actually use on the job. It turns out that the need for complex computer skills extends far beyond what the BLS currently classifies as computer occupations. Even more reason why computer science education is more critical than ever!

Source: The Hidden Half | Change the Equation

ChangeTheEquation.org is coming up with a much lower estimate of end-user programmers than did Scaffidi et al. Why is that? I looked at their methodology:

To estimate the total number of U.S. citizens who use computers in complex ways on the job, CTEq and AIR examined responses to question G_Q06 in the PIAAC survey: What level of computer use is/was needed to perform your job/last job?

  • STRAIGHTFORWARD, for example using a computer for straightforward routine tasks such as data entry or sending and receiving e-mails
  • MODERATE, for example word-processing, spreadsheets or database management
  • COMPLEX, for example developing software or modifying computer games, programming using languages like java, sql, php or perl, or maintaining a computer network

Source: the Hidden Half: Methodology | Change the Equation

Their “Complex” use is certainly programming, but Scaffidi et al would also call building spreadsheet macros and SQL queries programming. ChangeTheEquation has a different definition that I think undercounts significantly.

January 20, 2016 at 8:13 am 8 comments

The Inverse Lake Wobegon Effect in Learning Analytics and SIGCSE Polls

I wrote my Blog@CACM post this month about the Inverse Lake Wobegon effect (see the post here), a term that I coin in my new book (link to post about book).  The Inverse Lake Wobegon effect is where we observe a biased, privileged/elite/superior sample and act as if it is an unbiased, random sample from the overall population.  When we assume that undergraduates are like students in high school, we are falling prey to the Inverse Lake Wobegon effect.

Here’s an example from The Chronicle of Higher Education in the quote below. Looking at learning analytics from MOOCs can only tell us about student success and failure of those who sign up for the MOOC.  As we have already discussed in this blog (see post here), people who take MOOCs are a biased sample — well-educated and rich.  We can’t use MOOCs to learn about learning for those who aren’t there.

“It takes a lot of mystery out of why students succeed and why students fail,” said Robert W. Wagner, executive vice provost and dean at Utah State, and the fan of the spider graphic. “It gives you more information, and when you can put that information into the hands of faculty who are really concerned about students and completion rates and retention, the more you’re able to create better learning and teaching environments.”

Source: This Chart Shows the Promise and Limits of ‘Learning Analytics’ – The Chronicle of Higher Education

A second example: There’s a common thread of research in SIGCSE Symposium and ITICSE that uses survey data from the SIGCSE Members List as a source of information.  SIGCSE Members are elite undergraduate computer science teachers.  They are teachers who have the resources to participate in SIGCSE and the interest in doing so.  I know that at my own institution, only a small percentage (<10%) of our lecturers and instructors participate in SIGCSE.  I know that no one at the local community college’s CS department belongs to SIGCSE.  My guess is that SIGCSE Members represents less than 30% of undergraduate computer science teachers in the United States, and a much smaller percentage of computer science teachers worldwide. I don’t know if we can assume that SIGCSE Members are necessarily more expert or higher-quality.  We do know that they value being part of a professional organization for teaching, so we can assume that SIGCSE Members have an identity as a CS teacher — but that may mean that most CS teachers don’t have an identity as a CS teacher. A survey of SIGCSE Members tell us about an elite sample of undergraduate CS teachers, but not necessarily about CS teachers overall.

January 18, 2016 at 8:03 am 3 comments

The President Wants Every Student To Learn Computer Science. How Would That Work?

My daughter said to me Wednesday morning after the President’s State of the Union Address, “Your Interwebs are going crazy today.”  It’s true.  The President said that he wants every student to learn CS, which is something that we’ve been talking about for decades (as in this blog post and this book I wrote).

The NPR piece that came out Wednesday (thanks to Shuchi Grover for the link) did a nice job of touching on a wide range of issues to address in meeting this goal, and talking to people like Mitchel Resnick, Alfred Thompson, and my favorite quote, from Leigh Ann DeLyser which touches on what I think is the most critical issue — where are we going to get the teachers?

“The [teacher] pipeline is the biggest issue. There isn’t a pipeline. There’s no certification for teaching computer science [in New York]. We’re taking people who trained to be teachers and giving them some CS knowledge so they can step into a classroom and help kids. This is a Band-Aid.”

Source: The President Wants Every Student To Learn Computer Science. How Would That Work? : NPR Ed : NPR

The Office of Science and Technology Policy sent out a letter the next day, amplifying the President’s remarks:

Friends,

Tonight was an important step forward for students across the country, as the President said in his final State of the Union address:

“We agree that real opportunity requires every American to get the education and training they need to land a good-paying job.  The bipartisan reform of No Child Left Behind was an important start, and together, we’ve increased early childhood education, lifted high school graduation rates to new highs, and boosted graduates in fields like engineering.  In the coming years, we should build on that progress, by providing Pre-K for all, offering every student the hands-on computer science and math classes that make them job-ready on day one, and we should recruit and support more great teachers for our kids.”

Our economy is rapidly shifting, and educators are increasingly recognizing computer science as the new basic. There are over 600,000 high-paying technology jobs open across the U.S., and by 2018, 51 percent of all STEM jobs are projected to be in computer science-related fields. However, computer science (CS), is taught in less than 25 percent of American K-12 schools, even as other advanced economies, such as Britain, are making it available for all students aged 5-16. In addition, students of color, girls, and students in high-need schools are less likely to take computer science than other students, and few middle school or elementary schools offer any computer science experiences.

A year ago, President Obama became the first President to write a line of code, and issued a broad call to action to expand computer science across the nation’s classrooms. Thanks to the efforts of parents, state and local officials, educators, philanthropists and CEOs, a movement to give every child the opportunity to learn computer science is building in this country.

In the coming weeks, the Administration will announce new steps to support these state and local efforts to give students of all ages the tools to not just live in the digital age, but to be the designers and leaders of it.

We look forward to working with you on this important effort to better serve our students.

January 15, 2016 at 8:15 am 13 comments

What does it mean to assess Computational Thinking?

One of the arguments I develop in my book on learner-centered design of computing education is that computational thinking, using Jeannette Wing’s description, is implausible.  There’s part of her description that talks about computing providing a medium for advancing thinking and learning in other domains — that’s the application part of computing, and that’s quite plausible.  I call that part computational literacy because that’s the name Andrea diSessa gave to that idea years ago. Much of my book is about how to help students (of all kinds, from graphic designers to teachers to undergraduates) develop computational literacy.  Then there’s the part of Jeannette’s description that suggests that learning computing will impact everyday thinking and problem-solving, e.g., people will use ideas about caching when packing for a trip.  There is no evidence to support the belief that that will happen. Many studies investigating this kind of impact have not found that effect. (I’ve reported in the past how educational psychologists find computational thinking implausible.)  Sure, there other definitions of computational thinking (I reference the others in my book), but they all have this same thread — computational thinking is about thinking that helps outside of computing.

So what does it mean to assess computational thinking?  Most computational thinking assessments I’ve seen fail to connect the computing to some other discipline.  For both of Wing’s sets of goals, we need to show that students are learning computing.  That’s a necessary part — if you don’t know computing, you can’t apply that knowledge and you can’t transfer it.  But it’s not sufficient.  Students must be applying, connecting, or transferring the computing knowledge to other domains to be computational thinking.

SRI is developing a set of computational thinking assessments.  From poking through their website, I’m not finding any examples, so I don’t know if they succeed where others have not.  Their process is promising.

As part of the NSF-funded Principled Assessment of Computational Thinking (PACT) suite of projects, SRI Education has been working with curriculum authors and teachers, assessment experts, and computer scientists to develop assessments for ECS.

ECS emphasizes inquiry-based teaching to develop students’ problem solving skills, as well as their abilities to explain, elaborate, and evaluate what they are learning, often using multiple representations of particular solutions. These skills go well beyond recalling facts or giving inputs to a program and predicting its outputs. As a result, the SRI PACT team had to design and develop assessment tasks that elicited students’ problem solving and inquiry skills in authentic contexts and gave them opportunities to represent their skills in their own words and ways.

Applying a principled design method, the team first developed generalized design templates for computational thinking practices. These practices refer to how students design and implement creative solutions and artifacts, how they design and apply abstractions and models, and how they analyze their computational work and the work of others (among other practices). We then used these templates to guide the development of assessment tasks and scoring rubrics aligned with the skills related to the learning goals of the ECS curriculum.

Source: Broadening Student Participation in Secondary Computer Science Through Principled Assessment of Computational Thinking (PACT) | SRI International

January 13, 2016 at 8:12 am 15 comments

Developing a Framework to Define K-12 CS Ed: It’s about consensus not vision

I’ve mentioned my involvement in the initial meetings for the new K-12 CS Ed framework effort (see previous blog post). This effort is now formally announced with a steering committee and a website.

CSTA, ACM, and Code.org are joining forces with more than 100 advisors within the computing community (higher ed faculty, researchers, and K-12 teachers, many of whom are also serving as writers for the framework), several states and large school districts, technology companies, and other organizations to steer a process to build a framework to help answer these questions. A steering committee initially comprised of the Computer Science Teachers Association, the Association for Computing Machinery, and Code.org will oversee this project.

Source: Announcing a New Framework to Define K-12 Computer Science Education | A Framework for K-12 Computer Science Education

Pat Yongpradit did a terrific job of organizing these initial meetings, setting the ground rules, and trying to engage as many perspectives as he could.  The overall goal of the process is described (copied from this page):

To create a high-level framework of computer science concepts and practices that will empower students to…

  • be informed citizens who can critically engage in public discussion on CS-related topics

  • develop as learners, users, and creators of CS knowledge and artifacts

  • better understand the role of computing in the world around them

  • learn, perform, and express themselves in other subjects and interests

There is a 0th item here that’s left unsaid: The goal is to create a framework that most people can agree on.  “Coherence” (i.e., “community buy-in”) was the top quality of a framework in Michael Lach’s advice to the CS Ed community (that I described here). As Cameron Wilson put it in his Facebook post about the effort, “the K-12 CS Framework is an effort to unite the community in describing what computer science every K-12 student should learn.”  It’s about uniting the community.  That’s the whole reason this process is happening.  The states want to know that they’re teaching things that are worthwhile.  Teacher certificates will get defined only what the definers know what the teachers have to teach. The curriculum developers want to know what they should be developing for.  A common framework means that you get economies of scale (e.g., a curriculum that matches the framework can be used in lots of places).

The result is that the framework is not about vision, not about what learners will need to know in the future.  Instead, it’s about the subset of CS that most people can agree to.  It’s not the best practice (because not everyone is going to agree on “best”), or the latest from research (because not everybody’s going to agree with research results).  It’s going to be a safe list.  Take a look at the developing standard (see links here), and compare it to the CSTA standards (see link here) or the CS Principles Big Ideas (see link here).  The overlap between them is pretty big.

That’s not a critique of this process.  It’s a limitation of frameworks in general.  Standards and frameworks efforts are not about defining what CS education should be.  They are a definition of the community’s standards.

The danger is that the frameworks are then accepted as the definition of the field.  There is a danger that standards can ossify a field. We end up teaching to the standard, not to the goals. (A humorous treatment of this idea can be found in this cartoon that Shriram Krishnamurthi shared — just swap “coding” for “clocks.”)  We have to keep asking what should be taught to everyone to help them meet the requirements above.

I don’t want to start nit-picking the framework, but I want to give one concrete example of something that typically gets left out because of community pressure.  Alan Perlis (who with Alan Newell and Herb Simon named the field in 1967 in Science) said that computer science was the study of process.  Why isn’t process a big idea?  Why don’t we teach about race conditions, and communication between processes, and how execution speed can increase (or decrease) when spread across multiple processes?  Programming tools like Scratch, Squeak Etoys, and App Inventor let students work with processes.  Much of the programming in robotics, Arduinos, and other low-cost hardware requires understanding of processes.  Moti Ben Ari (see here for example) and Ben Shapiro (in Blocky-Talky) are doing fascinating work trying to understand how kids think about process and how to teach them most effectively. Peter Denning, Alan Kay, and Mitchel Resnick have described how exploration of computational processes can support better student understanding of non-computational processes, e.g., biological, ants, termites, and traffic jams.  Processes are a big idea in CS (since the very beginning), can help students learn outside of computing (they’re a “powerful idea” in Papert terms), and will be what learners will work with in the future.  Why not include processes as a Big Idea?  Because we don’t teach about processes in today’s classes. There is very little about processes in the prior frameworks. The programming tools we have used to teach CS (Pascal, Java, Python) don’t make it easy to deal with threads and processes.  We’re developing frameworks based on what we have taught and not on what we should teach.  We should keep pushing on processes as a big idea, and I hope that they’ll be in a future version of the framework.

That’s the nature of frameworks.  It’s about consensus, not about vision.  That’s not a bad thing, but we should know it for what it is. We can use frameworks to build momentum, infrastructure, and community. We can’t let frameworks limit our vision of what computing education should be.  As soon as we’re done with one set of frameworks and standards, we should start on the next ones, in order to move the community to a new set of norms.

 

 

January 11, 2016 at 8:38 am 12 comments

Using Greek ideals to improve progress in education

Nick Falkner has been using his blog in a series of posts to address a question that I’ve wondered about here: Why does research influence so little practice (see post here) and policy (see post here)?  Nick is taking a novel approach — he’s using the three values of Ancient Greece, brought together as a trinity through Socrates and Plato: beauty, goodness and truth.  He’s exploring how we can use these to define high-quality teaching. It’s an interesting series and approach which I recommend.

I used to say that it was stunning how contemporary education seems to be slow in moving in directions first suggested by Dewey a hundred years ago, then I discovered that Rousseau had said it 150 years before that. Now I find that Quntilian wrote things such as this nearly 2,000 years ago. And Marcus Aurelius, among other stoics, made much of approaches to thinking that, somehow, were put to one side as we industrialised education much as we had industrialised everything else.

This year I have accepted that we have had 2,000 years of thinking (and as much evidence when we are bold enough to experiment) and yet we just have not seen enough change. Dewey’s critique of the University is still valid. Rousseau’s lament on attaining true mastery of knowledge stands. Quintilian’s distrust of mere imitation would not be quieted when looking at much of repetitive modern examination practice.

What stops us from changing? We have more than enough evidence of discussion and thought, from some of the greatest philosophers we have seen. When we start looking at education, in varying forms, we wander across Plato, Hypatia, Hegel, Kant, Nietzsche, in addition to all of those I have already mentioned. But evidence, as it stands, does not appear to be enough, especially in the face of personal perception of achievement, contribution and outcomes, whether supported by facts or not.

Source: A Year of Beauty | Nick Falkner

January 8, 2016 at 7:44 am 4 comments

Interaction beats out video lectures and even reading for learning

I’m looking forward to these results!  That interaction is better than video lectures is really not surprising.  That it leads to better learning than even reading is quite a surprise.  My guess is that this is mediated by student ability as a reader, but as a description of where students are today (like the prior posts on active learning), it’s a useful result.

Koedinger and his team further tested whether their theory that “learning by doing” is better than lectures and reading in other subjects. Unfortunately, the data on video watching were incomplete. But they were able to determine across four different courses in computer science, biology, statistics and psychology that active exercises were six times more effective than reading. In one class, the active exercises were 16 times more effective than reading. (Koedinger is currently drafting a paper on these results to present at a conference in 2016.)

Source: Did you love watching lectures from your professors? – The Hechinger Report

January 6, 2016 at 8:12 am 8 comments

Interaction between Literacy and Content Learning: The Inconvenient Truth About Assessment

The page linked below has a nice set of important issues in assessment.  Another one that I considered highlighting was that most students seek to avoid failure rather than achieve success.  Many educational designs emphasize opportunities for student learning, when the reality is that many students are only seeking to get by.

As we think about computing as a literacy, the below point becomes more critical.  For example, how do separate the students’ understanding of computer science from what they are are able to present in their program code?  Programming is still a hard task which requires content knowledge, but also creates a lot of cognitive load about stupid things like semicolons and order of parameters in a function call.  The issue is particularly important for me, since I’m interested in supporting non-CS majors use programming for learning about other content, where all my interest is in the content and I want to minimize the programming.

Literacy (reading and writing ability) can obscure content knowledge. Further, language development, lexical knowledge (VL), and listening ability are all related to mathematical and reading ability (Flanagan 2006). This can mean that it’s often easier to assess something other than an academic standard than it is knowledge of the standard itself. It may not tell you what you want it to, but it’s telling you something.

Source: The Inconvenient Truth About Assessment

January 4, 2016 at 8:07 am Leave a comment


Enter your email address to follow this blog and receive notifications of new posts by email.

Join 9,002 other followers

Feeds

Recent Posts

Blog Stats

  • 1,875,054 hits
January 2016
M T W T F S S
 123
45678910
11121314151617
18192021222324
25262728293031

CS Teaching Tips