
Showing posts with label what. Show all posts
Showing posts with label what. Show all posts
Wednesday, November 16, 2016
I Know What You Did on the Web
This graphic from Baynote Shows a summary of what common online companies like Facebook and Google are doing with your data. This would make a great discussion board topic relating to Big Data for CS Principles.

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.
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:
Read More..
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 SkillCrushThis 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.
Tuesday, October 25, 2016
What are we doing after the AP exam
This question pops up every year with my students...we have six weeks after the AP Computer Science exam, are we doing anything?
Nope, Ive decided you can just nap for six weeks of school. That sounds reasonable.

They know me well enough that there is a lot of eye rolling at this point. After fifteen years teaching high school I have learned eye rolling equals success. It is my job to annoy them occasionally.
Usually I pick something new to everyone and we work through that. Sometimes we do advanced data structures like linked lists, java graphics or a new language.
This years group is too eclectic for that to work. I have students that already know VB, C++, Python and just about anything else I could throw at them. They have done NASA summer internships, built robots and held part-time jobs doing web design.
So I tried something new, this year they got to pick their own projects.
The ground rules were:
In short, I have been amazed. Plus, anything that cuts down on the amount of nagging I have to do everyday is a total win.
Read More..
Nope, Ive decided you can just nap for six weeks of school. That sounds reasonable.
They know me well enough that there is a lot of eye rolling at this point. After fifteen years teaching high school I have learned eye rolling equals success. It is my job to annoy them occasionally.
Usually I pick something new to everyone and we work through that. Sometimes we do advanced data structures like linked lists, java graphics or a new language.
This years group is too eclectic for that to work. I have students that already know VB, C++, Python and just about anything else I could throw at them. They have done NASA summer internships, built robots and held part-time jobs doing web design.
So I tried something new, this year they got to pick their own projects.
The ground rules were:
- Do something new to you
- Do something non-trivial (something that will take several weeks to complete)
- Amaze me
In short, I have been amazed. Plus, anything that cuts down on the amount of nagging I have to do everyday is a total win.
Wednesday, July 27, 2016
What Holds Girls Back from Computer Science an update
A few weeks back I blogged about an infograpfic that was making the rounds.
I am so happy to say that the infographic has been updated:

Better, no?
I am so glad to see the update. Gone is the one of blame and the factual errors about the APCS exam. The whole tone reflects their stated purpose of "Teach Girls To Program Before People Tell Them They Cant Do It". Great approach.
I really love that they now include information on stereotype threat. Joanne Cohoon at UVA has done a lot of great work on this as it relates to females in computer science. It is her research at NCWIT the reference at the bottom.? And while we are at it, have you been to a Tapestry Workshop? If not put it on your list for next summer, absolutely will change your teaching. Resources from past workshops are posted on the site, so you can read ahead,
Well done!
Read More..
I am so happy to say that the infographic has been updated:

Better, no?
I am so glad to see the update. Gone is the one of blame and the factual errors about the APCS exam. The whole tone reflects their stated purpose of "Teach Girls To Program Before People Tell Them They Cant Do It". Great approach.
I really love that they now include information on stereotype threat. Joanne Cohoon at UVA has done a lot of great work on this as it relates to females in computer science. It is her research at NCWIT the reference at the bottom.? And while we are at it, have you been to a Tapestry Workshop? If not put it on your list for next summer, absolutely will change your teaching. Resources from past workshops are posted on the site, so you can read ahead,
Well done!
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:
Read More..

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, Achieves 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.
Tuesday, April 12, 2016
What it Takes to Make a Computer Science Teacher
Ive had this conversation 5 or 6 times over the last few months. Always with teachers, always centered around respect.
And mostly about computer science education.
So Im going to go ahead and put this in writing. A good teacher can teach computer science. Not every computer scientist can teach.
Im not just pulling this from thin air. For the last 5 years Ive been deeply embedded in the process of training new computer science teachers. I ran a program of 30 new AP Computer Science programs across Virginia. Some teachers had programmed, some had not.
I also have a decade of experience running extracurricular programs in computer science. Weve had some wonderful and knowledgeable volunteers.
I trained math and history teachers, business teachers, turfgrass teachers. And yes, turfgrasses a real subject.
So what does it take to make a good computer science teacher?
First and foremost is command of the classroom. Someone who can get kids engaged in great learning activities. Teaching is an art, one that has to be developed just like any other skill set.
But we cant stop there. Too many teachers have been thrown into computer science class rooms without the base knowledge they need in order to teach the subject.
This sets the teacher and students up for frustration and ultimately, failure. Its not that experienced teacher cant do computer science, its that they dont know computer science.
Computer science is the only high school subject I know of where we take people who have never even taken a class in the subject and say to you gotta go teach this. Can you imagine a calculus or physics, or art teacher that had never taken the subject at college?
And in an era where are professional evaluations are very closely tied to student test scores, its a wonder anybody would take that risk.
So what does it take to be a good computer science teacher?
The bottom line is content. With a good classroom teacher and solid curriculum you create a situation where a teacher can succeed, which is the base of all student success.
Monday, July 21, 2014
What You Need To Know About Cloud Hosting Chicago
By Helene Norris
Cloud hosting Chicago is now a fully established sector with many firms of all sizes and structures adapting to this new technology. Experts project that this trend will continue to develop and grow in the near future. While this service is beneficial for various firms, it is not without its drawbacks. This is especially true for smaller entities. If used properly, working with the data can vastly benefit all types of firms.
One particular advantage is enhanced efficiency when it comes to upgrades, usage and maintenance. Many small businesses find conventional software to be expensive. This is especially so for proprietary programs which need several licenses for multiple users. On the other hand, hosted systems can be sourced at much lower prices and can dramatically reduce IT expenditure in an entity. There are also many options which one can choose from. These range from pay as you go, one time and scalable.
This system also offers almost unlimited storage capacity. One doesnt have to worry about lack of space or increasing their current capacity. It also offers peace of mind when it comes to risks such as fire which could damage conventional computers.
Since all the data is stored in remote servers, it makes it easy to restore and backup when compared to physical devices. Most providers also possess the expertise to handle data recovery. This hence makes the entire procedure of recovery and backup simpler when compared with traditional information storage systems.
Integration of software is also done automatically. This means that you wont need to initiate any additional measures to integrate and customize your applications to suit your preferences. You can also customize your options with greater ease. A firm can thus choose the services and applications which complement their operations.
It is also easy to access the stored information. All that is required is a secure internet connection. This lets you move beyond geographical location issues and time zones. This can be very helpful for companies whose staff tends to travel a lot while on the job.
The system also offers the advantage of quick deployment. Once one opts for this method, the entire system can be fully activated in a matter of minutes. However, the amount of time needed to set up depends on the kind of technology that you use in your firm.
This technology also has its drawbacks which one must be aware of before they can opt to use it. One particularly significant risk is outages and technical problems. Practically all providers have to deal with such issues despite maintaining stellar operational standards. Connectivity and network problems could also pose issues when you want to access your data.
Remote storage of data could also make your company vulnerable to external attacks and threats. As it is well recognized, nothing on the internet is safe from these. Theres always a chance of sensitive data leaking to third parties.
Before adopting this technology, its important to know that your firms sensitive information will be surrendered to a third party. This could put your business at a higher risk. You must therefore choose the most reliable provider who will keep your data secured properly. Like anything else, cloud hosting Chicago has its advantages and drawbacks. While this technology could prove to be of great benefit to your business, it could also cause harm if misused.
One particular advantage is enhanced efficiency when it comes to upgrades, usage and maintenance. Many small businesses find conventional software to be expensive. This is especially so for proprietary programs which need several licenses for multiple users. On the other hand, hosted systems can be sourced at much lower prices and can dramatically reduce IT expenditure in an entity. There are also many options which one can choose from. These range from pay as you go, one time and scalable.
This system also offers almost unlimited storage capacity. One doesnt have to worry about lack of space or increasing their current capacity. It also offers peace of mind when it comes to risks such as fire which could damage conventional computers.
Since all the data is stored in remote servers, it makes it easy to restore and backup when compared to physical devices. Most providers also possess the expertise to handle data recovery. This hence makes the entire procedure of recovery and backup simpler when compared with traditional information storage systems.
Integration of software is also done automatically. This means that you wont need to initiate any additional measures to integrate and customize your applications to suit your preferences. You can also customize your options with greater ease. A firm can thus choose the services and applications which complement their operations.
It is also easy to access the stored information. All that is required is a secure internet connection. This lets you move beyond geographical location issues and time zones. This can be very helpful for companies whose staff tends to travel a lot while on the job.
The system also offers the advantage of quick deployment. Once one opts for this method, the entire system can be fully activated in a matter of minutes. However, the amount of time needed to set up depends on the kind of technology that you use in your firm.
This technology also has its drawbacks which one must be aware of before they can opt to use it. One particularly significant risk is outages and technical problems. Practically all providers have to deal with such issues despite maintaining stellar operational standards. Connectivity and network problems could also pose issues when you want to access your data.
Remote storage of data could also make your company vulnerable to external attacks and threats. As it is well recognized, nothing on the internet is safe from these. Theres always a chance of sensitive data leaking to third parties.
Before adopting this technology, its important to know that your firms sensitive information will be surrendered to a third party. This could put your business at a higher risk. You must therefore choose the most reliable provider who will keep your data secured properly. Like anything else, cloud hosting Chicago has its advantages and drawbacks. While this technology could prove to be of great benefit to your business, it could also cause harm if misused.
About the Author:
Read more about Some Things You Need To Know About Cloud Hosting Chicago visiting our website.
Thursday, July 10, 2014
What is Knockout
What is Knockout ?
What are the Key Concepts of Knockout ?
CASE 1 :How to use bindings in the View (Static Data) ?
Javascript Code
Output
Javascript Code
Note : In order to simplify things you can create a variable self (i.e. var self = this; )
CASE 4 : How to add UPPER-CASE behavior ?
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
};
}
Output
What has Said Creator of Knockout about This Article ?
If you feel it was a good article,Give me a +1.Thank You.
CodeProject
Read More..
- 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
2. 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
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
More Features of Knockout
How to Download Knockout ?
Step 3
How to work with Knockout ?
1. You have to add a reference to the "knockout-2.2.0.js" File which you downloaded
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
- ASP.Net MVC 3 and Visual Studio 2010 has been used
CASE 1 :
- 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>
<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>
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
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>
<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
- 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>
<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
Small discussion about Knockout on stackoverflow, Which I have involved
What has Said Creator of Knockout about This Article ?
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
Posted by banra at 7:30 AM 0 comments
Monday, July 7, 2014
Just what is 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.
Subscribe to:
Posts (Atom)













