Showing posts with label is. Show all posts
Showing posts with label is. Show all posts

Saturday, November 12, 2016

So What is code

Great video from PBS Off Book, a series that explores art in the digital world

Is Code the Most Important Language in the World?


 

It does a great job of quickly describing what code is and then delving into some of the current issues in computer science. I am using it this week as a part of CS Education Week as a journal prompt for my students.

"It is hard to say what problems would be solved with a more diverse workforce."
- Adda Birnir, Co-Founder SkillCrush
 This is the driving force behind a lot of my own work lately. This moves is beyond just looking at diversity of the workplace, but really at how we solve problems as a society.

Inevitably the problems we solve are going to reflect the views and experiences of those solving them. At a deeper level though, the people with the ability to solve these problems through coding have the power to ultimately decide what problems get solutions.

Computer Science is predominantly white and Asian males. In the 2010 census this group made up roughly 38% of the overall population in the United States. That means that 62% of the population is outside of this circle of influence. In essence their problems are outside the view of the people solving humanities problems.

I highly recommend the series in general. The videos are very engaging, short, and show a great diversity of people working with technology.

Some other topics they cover:

  • Future of Wearable Technology
  • Art of Data Visualization
  • Art of Creative Coding
And in case you are using writing in your cs classes heres a full list of the Journal prompts I use in CS Principles.
Read More..

Sunday, October 30, 2016

AP Computer Science Report Virginia is for some Coders


The AP data is out for 2013. Some great increased nationwide. AP Computer Science went from 26,103 to 31,117 total exams given, a 19% increase. This was the highest increase out of all of the subject areas. But keep in mind AP Calculus had 282,814 exams last year, so we have a ways to go.





Virginia had 1655 AP Computer Science  exams with a mean score of 3.12. Last year we had 1430 tests with an average of 2.98. Over the past 5 years there has been an 81% increase in the number of APCS exams given. This year was also the highest mean score for the past five years, so some great progress has been made.

According to the state report card 67,805 students took AP exams in 2013 (data here). So teh APCS exam accounted for about 2.5% of the overall number of AP exams given.

Which all sounds great, until you start to look a little deeper.

When you look, in 2013 the number of black students taking the exam was 3. Our max in the past 5 years was 6. Six. That year my personal AP class was 1/3 of those African American students.

Demographically Virginia is about 20% black. With roughly 375,502 students enrolled in Virginia public high schools last year (2013 enrollment data) that means we have roughly 75,000 African American students at the high school level, and 3 took the AP Computer Science exam.


If we randomly assigned students electives we would have fared better.

And you can look at any of the subgroups and see the same trend. For instance for the 2013 exam 25% of the 8 Hispanic students to take the exam sat in my classroom.

Now Im a big believer at starting with data and getting to the stories underneath. The bottom line in Virginia is access.

For instance, Richmond city schools, a predominantly African American school district has no computer science classes. None, zippo, zilch.

This is not about diversity for diversitys sake. This means these kids do not have access to jobs. According to the Bureau of Labor and Statistics Virginia is 4th in the nation for jobs in this area, but 12th population wise. This means we have the highest concentration of jobs nationwide in computer science. Washington DC and Virginia rank #1 and 2 for salary nationwide - so these great jobs cannot be filled by huge numbers of our children. A child sitting in Kindergarten in Richmond City Schools today may never even know this field exists, literally blocks from the front door of their school

And at a deeper level, computer science is the tool we use to solve human problems. Being the person holding the tool means you get to decide what is a problem and what gets a solution. These numbers mean these communities do not get to participate.

So to change the data, we have to change the stories. Every high school in the state needs computer science classes that are rigorous and relevant for its students. That means trained teachers and a working curriculum. Kids and parents need to know that this is an option for them, that they can create using this tool. They need to be able to tell their stories as we build the future.

A few things to put Virginia in Context:

  • Virginia has not adopted common core
  • Our K-12 end of course tests are called the SOLs (Standards of Learning). Yes, really
  • AP Computer Science counts as a 4th math credit here, but only if you are going for an advanced diploma, and you have passed Alg II. were working on it
  • We are a Commonwealth, which means our school systems are driven at the local level, not by top down policy and curriculum from the state.
  • Out legislature meets either 4 or 6 weeks a year, thats it. 



Read More..

Sunday, July 24, 2016

Apple dominate market Samsung is on two


According the latest study IDC , Apple returned at  share 68% of global market of tablette in the second quarter of 2012 .Samsung is the second ,exceeding Amazon , and on place four is Asus . The top is completed of Acer .


Apple managed on second quarter to sell 17 million of tablette iPad at worldwide . Samsung , with all versions of Galaxy Tab ,sold only 2,4 million units , while Amazon , which has in portfolio only Kindle Fire with screen of 7 inch about 1,25 million. Asus exceeded 855.000 of units sold , and Acer only 385.000 . IDC does not give figures for other manufacturers .

Company analysis estimated sales of tablette at 25 of million units . Growth is of 66,4% comparative with second quarter of 2011
http://blog-de-filme-online.blogspot.ro
Read More..

Saturday, June 4, 2016

What is Missing from the Next Generation Science Standards

The Next Generation Science Standards were published on May 11th.




This week the CSEd Week Blog a great post about why computer science should be included in these standards.

From the post:

While the math standards are well on their way to being implemented and assessed, Achieve’s new effort on the science standards is still in development, and they need to hear from you about the importance of having real, engaging computer science in these standards.


Read More..

Tuesday, April 12, 2016

HTML is not programming so why teach it

So in talking to parents and guidance counselors I occasionally get asked if a kid can jump ahead and take one of our upper lever computer science classes. My first question is always "have they programmed?" Yes, I know, programming is not the end all and be all of computer science, but for a student that wants to take the current AP Computer Science course they need to be able to code.

Sadly the answer I most often get is "yes, they know HTML". Sigh.

For the CS Principles pilot this last year my second unit was The Internet Unplugged.  We covered both the hardware side along with how to actually make a web site. Yes, I taught HTML and CSS.

So the question is - why cover HTML at all?

One of the core themes of the CS Principles course is broadening participation. So many students have had exposure to HTML, and they all use web sites. This is the interface they use to get at the information on the web. It is an immediate way to show abstraction in action.

Plus, as we transitioned to coding students were already used to the idea that formatting and exact punctuation matters. This let us focus on the tools of programming, like ifs and loops.

And of course, CS Principles is not all about programming. The Internet is one of the seven core principles, equal to programming.

So this summer I am reviewing what we did in CS Principles last year. Honestly this was one of the better units we covered. It tied into all of the big ideas and was something we referred back to the rest of the year.

On the other hand I am not crazy about how I taught HTML. It was a bit dry - too much lecture and we got a bit bogged down. Id like to reduce this to just 4 days.

Next year I plan on trying Thimble. This is offered by Mozilla and lets you type in the HTML interactively and see what happens immediately. It also points out errors right away.

Read More..

Thursday, March 10, 2016

Why Code Academy is Awesome

We have been using Codeacademy in the CS Principles course to cover HTML and CSS (the abstraction part of the Big Ideas). IT is a great tool - lets the kids self pace, give instant feedback. They have made some pretty amazing things.

Plus the site uses badges to track progress. You know how I love badges.



I just got this e-mail from them - such a grreat summary of why Computer Science is important:

You’ve been a Codecademy student for a month now. Well done!

Here’s why that’s great news for you:

We believe that learning how to program is the best job security you can have because it’s more important than ever before to understand the systems we depend on every day.

The need for computer literacy has never been greater. As a Codecademy user, you’re getting a head start in many ways:
  • You’re learning how programs function, and how to control them
  • Programming is a skill that’s virtually guaranteed to help you get a job
  • By learning to code, you’re becoming a creator: someone who makes things happen
  • You can create programs, games, web pages and animations
  • As your coding skills grow, you can share knowledge and even teach your skills to others
  • In a world of tech consumers, you’re becoming an empowered builder…
Nice work!
So don’t stop here. Why not master a topic right now?
Exactly.
Read More..

Sunday, February 21, 2016

Computer Memory is an Important Part of the Computer

Computer memory is an important part of the computer because it allows it to store vital information that you will need. Whether the information is in the form of data, pictures or sounds, a computer with a lot of memory can store it. There are basic types of computer memory and you will need to know a little bit about each to ensure your computer is running effectively.

Random access memory or RAM is the same thing as your computer memory. RAM is the main memory center, so essentially, it is the most important. The reason RAM is so crucial is that it is used to store your files and programs and it affects many other computer aspects as well.

DDR computer memory can be bought to increase the amount of memory you have, but first you will want to learn a little more about your computer. Understanding how it works will help you work better with your computer.

The more RAM computer memory your computer has, the faster it will work for you. If you find that youre computer has been very slow lately, you might want to look into buying some DDR for it. If you arent sure what to buy or how to install it, its best to let a professional do it this time around. You will find that all electronic stores that sell RAM will offer optional installation services for a small fee. If you choose this option, it would be a great idea to ask them exactly what they did so you can do it yourself if the need ever arises again.
But, if you know a little something already about computer memory, why not install your DDR program yourself? It will save you some time and money and your computer will be back to working at optimal speed in no time. Either route you choose, dont neglect the health of your computer. If it starts working differently than it ever has, get it checked out or troubleshoot the problem yourself. This will ensure that it stays working great for years to come.
Read More..

Thursday, July 10, 2014

What is Knockout

What is Knockout ?
  • Knockout is a JavaScript Library
  • Which helps the creation of rich, desktop-like web UIs
  • It simplifies user interactions and makes interfaces fully responsive to any data source changes
  • Knockout provides a simple two-way binding mechanism to link a data model to an UI,
  • Thus making synchronization between them a breeze

What are the Key Concepts of Knockout ?

1. Declarative Bindings
  • These allow you to connect parts of your UI to your data model in a simple and convenient way
  • With declarative bindings even if you change the DOM all bound pieces stay connected
  • You can bind data to a DOM by simply including a data-bind attribute to any DOM element
Declarative Bindings


2. Automatic UI Refresh

Automatic UI Refresh

3. Dependency Tracking
  • Every time when your model data has changed all parts associated with it automatically being updated
  • No need to worry about adding event handlers and listeners
  • All that extra work is performed internally by Knockout and observables,
  • Which notify listeners when underlying values have changed


Dependency Tracking

4. Templating
  • when your application becomes more complex and you need a way to display a rich structure of view model data,thus keeping your code simple
  • Knockout has a native, built-in template engine which you can use right away
  • But if you want, a third-party template engine, like jquery.tmpl or Underscore, also can be used
Templating


More Features of Knockout

More Features of Knockout


How to Download Knockout ?

Step 1

Download Knockout

Step 2

Download Knockout

Step 3

Download Knockout


How to work with Knockout ?

1. You have to add a reference to the "knockout-2.2.0.js" File which you downloaded

add a reference

2. Then You have to add Reference to above file inside your master file
     i.e. Inside ViewsShared\_Layout.cshtml

<script src="@Url.Content("~/Scripts/knockout-2.2.0.js")" type="text/javascript"></script>


Thats it.Your done.

Lets try with some basic capabilities of Knockout

   - ASP.Net MVC 3 and Visual Studio 2010 has been used 

CASE 1 : How to use bindings in the View (Static Data) ?
  • For that you can use data-bind attributes

Views Code

<!-- This is a View - HTML markup that defines the appearance of your UI -->
<p>First name: <strong data-bind="text: firstName"></strong></p>
<p>Last name: <strong data-bind="text: lastName"></strong></p>

Javascript Code

<script type="text/javascript">

    //This is a simple Viewmodel
    //JavaScript that defines the data and behavior of your UI
    functionAppViewModel() {
        this.firstName = "Sampath";
        this.lastName = "Lokuge";
    }

    //Activates knockout.js
    ko.applyBindings(newAppViewModel());

</script>

Output


How to use bindings in the View


CASE 2 : How to Make the data Editable (Dynamic Data) ?
  • Thats why Knockout has a concept of observables
  • These are properties that automatically will issue notifications whenever their value changes
i.e.
  • Not only that the underlying ViewModel data is being updated when you edit ,
  • But that all associated UI is updating in Sync with it too

Views Code

<!-- This is a View - HTML markup that defines the appearance of your UI -->
<p>First name: <strong data-bind="text: firstName"></strong></p>
<p>Last name: <strong data-bind="text: lastName"></strong></p>

<p>First name:<input data-bind="value: firstName" /></p>
<p>Last name:<input data-bind="value: lastName" /></p>

Javascript Code

<script type="text/javascript">

    //This is a simple Viewmodel
    //JavaScript that defines the data and behavior of your UI
    functionAppViewModel() {
        this.firstName = ko.observable();
        this.lastName = ko.observable();
    }

    //Activates knockout.js
    ko.applyBindings(newAppViewModel());

</script>


Output

How to Make the data Editable (Dynamic Data)


CASE 3 : How to Define Computed Values ?
  • To handle this, Knockout has a concept of Computed Properties
  • These are observable (i.e., they notify on change)
  • And they are computed based on the values of other observables

Views Code

<!-- This is a View - HTML markup that defines the appearance of your UI -->
<p>First name: <strong data-bind="text: firstName"></strong></p>
<p>Last name: <strong data-bind="text: lastName"></strong></p>
<p>First name:<input data-bind="value: firstName" /></p>
<p>Last name:<input data-bind="value: lastName" /></p>

<p>Full name: <strong data-bind="text: fullName"></strong></p>


 Javascript Code

Note :  In order to simplify things you can create a variable self (i.e. var self = this; )

<script type="text/javascript">

    //This is a simple Viewmodel
    //JavaScript that defines the data and behavior of your UI
    functionAppViewModel() {
        varself = this;
        self.firstName = ko.observable();
        self.lastName = ko.observable();

        self.fullName = ko.computed(function () {
            returnself.firstName() + " " + self.lastName();
        });
    }

    //Activates knockout.js
    ko.applyBindings(newAppViewModel());

</script>

Output

How to Define Computed Values



CASE 4 : How to add UPPER-CASE behavior ?
  • Need to add a capitalizeLastName function to the viewmodel
  • To Read or Write an observables value, you have to call it as a function

Views Code

<!-- This is a View - HTML markup that defines the appearance of your UI -->
<p>First name: <strong data-bind="text: firstName"></strong></p>
<p>Last name: <strong data-bind="text: lastName"></strong></p>
<p>First name:<input data-bind="value: firstName" /></p>
<p>Last name:<input data-bind="value: lastName" /></p>

<p>Full name: <strong data-bind="text: fullName"></strong></p>

<button data-bind="click: capitalizeLastName"> Go CAPS </button>


 Javascript Code

<script type="text/javascript">

   //This is a simple Viewmodel
   //JavaScript that defines the data and behavior of your UI
   functionAppViewModel() {
        varself = this;
        self.firstName = ko.observable();
        self.lastName = ko.observable();

        self.fullName = ko.computed(function () {
           returnself.firstName() + " " + self.lastName();
        });

        self.capitalizeLastName = function () {
            varcurrentVal = self.lastName();//Read the current value
            self.lastName(currentVal.toUpperCase());//Write back a modified value
        };
    }

    //Activates knockout.js
    ko.applyBindings(newAppViewModel());

</script>


Output


How to add UPPER-CASE behavior



Small discussion about Knockout on stackoverflow, Which I have involved

What has Said Creator of Knockout about This Article ?
Creator of Knockout



Conclusion
  • This is a very basic example, but it illustrates some of the key points of Knockout
  • Youve got a clean, object-oriented representation of your UIs data and behaviors (your viewmodel)
  • Separately, youve got a declarative representation of how it should be displayed visibly (your view)
  • You can implement arbitrarily sophisticated behaviors just by updating the viewmodel object
  • You dont have to worry about which DOM elements need to be changed,added or removed ,
  • The framework can take care of synchronizing things for you

I hope this helps to You.Comments and feedback greatly appreciated.

If you feel it was a good article,Give me a +1.Thank You.



You Might Also Like

Read More..

Monday, July 7, 2014

Just what is Dropbox

Virtual Storage with Dropbox
For those of you who dont know, Dropbox is a simple online virtual storage utility that allows you to make your files accessible from almost anywhere. Designed for those who are tired of e-mailing files to themselves and carrying around flash drives, Dropbox looks to revolutionize the way you store and share files.

Heres how it works. After installation and connecting to the server, the Dropbox interface is just like any folder on your computer. You simply drag and drop to move files around and any files or folders that are uploaded to Dropbox will immediately be synchronized within your account. In addition Dropbox also keeps track of every single change made to the contents of your storage and any changes are instantly updated to all computers linked to the account.

What happens if Im not on any of my computers? Absolutely no need to worry. Just get on the Dropbox web interface and you will be able to access your files from anywhere in the world. The Dropbox web interface also remembers all the changes you make to your files and allows you to restore to any previous versions of the file. You can even un-delete files that you may have accidentally erased.

Where Dropbox really shines is the way it allows you to share whatever you want with other people. Every individual folder can be shared with other people and every member of a shared folder will be able to add, edit, and delete the contents inside but will not be able to access anything outside of that specific folder. This file sharing system is perfect for team projects involving music or video editing, computer and system repairs, or for anything which needs collaboration among its members. There is also a public folder that allows you to share files with non-Dropbox users through the use of a hyperlink.

If you are looking for an easy and reliable way to share files amongst friends, family, and coworkers then take a look at what Dropbox has to offer. Dropbox is free for Windows, Mac, and Linux and you can have share 2 GB of your files for free or upgrade to Dropbox Pro for 50GB of storage.
Read More..