Showing posts with label Visual Studio. Show all posts
Showing posts with label Visual Studio. Show all posts

Monday, January 19, 2026

Funding for CS Educational Tools

Mark Guzdial posted a link to an interview with Jens Mönig. Jens is the main person behind Snap! which developed out of Scratch (which Jens worked on). It’s a great interview and I recommend it. The story of Snap! is an interesting one. I think it is great that SAP is funding the team behind it. This blog post, which sort of rambles a bit (sorry) was inspired by that interview.

There are basically two and a half ways that software for teaching programming and computer science are funded. One is research funding. Usually by universities but sometimes by research groups that are part of major companies. The later is the half I refer to. The other is commercial products. I.e.. products that actually make money for companies.

The problem with commercial products is that they are really designed for professional software developers. That means a number of things that are great for professionals but harder for beginners. Complexity is one of those issues. Visual Studio, which I use for my own development and used for years in the classroom, using a number of different files for every project for example. That’s just the beginning. Development on professional tools adds features for professionals but often subtracts features that are helpful for beginners. I first ran into this when Visual Basic became Visual Basic .NET and arrays of controls when from intuitive to complex with extra code necessary.

Commercial software often has free versions which is the only way schools can generally afford to use them. Simple versions that work on a school’s limited resources tend to go away over time though. They don’t pay for themselves.

I have seen other cool tools from commercial tools, or tools commercial companies provided for free, disappear over the years. Corporate research projects generally last while the principle investigator remains interested and can keep getting funding. If the research doesn’t wind up in a commercial product that doesn’t help with funding.

App Inventor is an exception. Originally developed at Google, App Inventor had an academic sponsor (It resides at MIT these day) and Google provided some seed money to get the open source version started. It phased easily from corporate research to university research.

MakeCode (largely a Microsoft Research project)  is still going strong. It appears that industry/ academic cooperation is helping keep that going. That combination seems to be key in keeping some projects going.

University research projects tend to last longer than corporate research projects. As long as someone can get grants, usually tied to graduate students coming up with good research topics involving the tool, they keep going. I wonder how well some these will continue when the principle academics lose interest, retire, or pass away. Some projects have depth of involvement which is helpful.

 Alice out of Carnegie Mellon has been going strong for 30 years even though it’s originator, the great Randy Pausch passed away in 2008.  External funding, required for most academic tools has stayed strong for Alice. That takes a lot of work to maintain of course.

Most of the long lasting tools have some level of corporate sponsorship. Oracle helping with Greenfoot and BlueJ are other examples.  There used to be a lot of NSF (US National Science Foundation) money around. Somehow I suspect there is a lot less of it these days. It’s risky to depend on it as well given the rapidly shifting state of US Federal funding.

And then there is Artificial Intelligence to think about. That’s sort of the elephant in the living room these days. If funding agencies (government, non-profit, industry) decide that coding is dead because of AI what happens to funding for the tools educators are using today?

I don’t believe that coding is dead but I know that some people have decided that  it either is or soon will be. Computer science education is going through a change caused by the winds of AI. Industry seems to think that they don’t need inexperienced software developers. Development of developers has to start somewhere though. One can’t go from zero to experiences expert without starting somewhere.

I believe we need good teaching software. I hope we can keep seeing good things supported and developed in the future. We live in interesting times.

Note that Mike Zamansky wrote a riff on this post. Recommended at Funding for CS Educational tools - C’est la Z

Saturday, December 27, 2025

AI Written Code and Making Assumptions

I’ve been writing some code for my own amusement the last few days. I have happily using Microsoft CoPilot to help me out. One really has to be careful with prompts though. CoPilot loves to make assumptions about what the developer desires. Often, it assumes correctly. Often enough, it assumes incorrectly.

I spent a good bit of time trying to figure how where it was doing some things I didn’t want done at all and other places where it got my intentions backwards. For example, we both had different ideas about what a variable called _defaultColor should refer to. That took me a bit.

I could have tried to ask CoPilot to fix the problem for me but if I had a better idea of how to express what I wanted it would probably have gotten things right, for my definition of right, the first time. So I fixed it myself.

I also made some assumptions about what certain methods were doing. I mostly assumed correctly but mostly is not really good enough when dealing with code. I really should have spent more time reading the code and making sure I understood it before trying to modify it. Yes, I said it before knowing how to read code is more important than ever.

Reading code on a screen can be painful though. One tends to get a sort of tunnel vision looking at little bits of code at a time. Many years ago I worked with a developer who had a terminal that was originally developed to typesetting at newspapers. It was tall and could hold a lot of lines of code. It was great for reading code. I don’t have anything like that. For me, the answer is printing listings out on paper. Maybe its just me but that is what has worked well for me for over 50 years of writing code.

I have more modifications I want to make to my program. I’ll spend some serious time reviewing the generated code before I try to make those modifications.

Related read: "Source code is the literature of computer scientists." https://www.cs.uni.edu/~wallingf/blog/archives/monthly/2025-12.html#e2025-12-26T18_28_37.htm A post by Eugene Wallingford

One other note, CoPilot added a lot of helpful error handling code to what I asked. That’s awesome in a lot of ways. I think that spotting a lot of error handling code may be something that tips off an educator that a student used artificial intelligence to write their code. Keep a look out and be sure to ask the student to explain it all.

Friday, October 31, 2025

Unexpected Help With Coding Projects

Fair warning, this is a post in two parts. First a project idea and second musings on the tools I used to create it.

I really do like to write code for fun. Nothing complicated (been there, done that, got the T-shirt - literally) but just little things to "scratch an itch" as they say.

Lately as I played Wordle I was wondering which letters appeared most in each place in the five letter words in my word list. A couple of nights ago, I wrote some code to find out. I had my code output a comma delimited file so I could use Excel to look at the results. That’s what the image to the side shows.

Now this sort of thing is highly dependent on the word list of course. But for my list, S is the most common letter in the first and fifth location. Not surprising as S is used to make plurals. Wordle doesn’t use plurals so I note that the second most common fifth letter is E with Y a close second.

The letter A is the most common second and third letter. The letter E is the most common fourth letter.

If I were ambitious, I could probably use this information to make a smarter Wordle solver. I’m not quite that ambitious though. I am toying with gathering some other statistics though.

I develop using Visual Studio – the full blown version. That means that Copilot jumps in to help. That’s not something I anticipated when I started but I confess that I found it surprisingly helpful. I did specifically ask Copilot to write one specific method – generate a string array of two character combinations – but it jumped in on its own with a couple of small bits of code. I was surprised at how well it anticipated what I wanted.

The implications for teaching programming are something to think about. On one hand it’s scary that AI tools can so easily write coding solutions to simple programming assignments. That turns our process of evaluating learning on its head a bit. At the same time, I am not ready to blindly trust AI generated code. I do not want students to blindly trust it either. So asking students to test generated code seems like a reasonable thing to assign. Yes, I suppose some students will ask AI to generate test cases but if we can’t trust AI to write the code in the first place we can’t trust the generated test cases.

We could ask students to explain the test and related tests. Could be quite a recursive rat hole.

We can also ask students to explain the generated code. We should probably ask them to do that either verbally or by writing manual in class so they can’t ask AI to do it for them.

What I keep coming back to in my own thinking is a focus on abstraction and top down design. Can we ask students to break the problem down to component parts and have them prompt the AI to implement various methods and code pieces. A focus on design rather than writing code. We could have students submit the design document and the various prompts that they use. Add to that some serious examination of testing and verification.

Students are going to have to work with artificial intelligence. They can’t let it do all the work for them because AI is not I enough yet. I don’t think it ever will be either.

Thursday, July 18, 2024

CSTA Day Three

Before I start on my day three report, I want to suggest people look at Mike Zamansky’s Day Two report on his blog. We attended mostly different sessions and he takes really good notes.

My first session of the day - Keep Calm and AI On. I’m proctoring this session. There are a bunch of other good sessions at the same time. Heavy FOMO sigh. This one is by classroom teachers.Another packed session on AI. This one started with a discussion of ethical concerns. Privacy being high among them.Next up was about how teachers were using AI. Image generation being one. Canva has some AI functionality now. Evaluation writing was used with mixed results. A lot depends on how people think about evaluation writing. Advice from participants included the need to teach about AI to prepare people for the good and the bad that AI can do. So much of what I am hearing at the conference is the need to ethical training as important when talking about AI.

Change of pace with my next session being Get Hands-on with CS and Content: Support Integration with a Physical Computing Toolkit Integration and physical computing are two of my favorite topics. The Physical Computing toolkit is available here. There is a lot there too!The session slide deck is available here There were a number of references to The Big Book of Computing Pedagogy.which I highly recommend BTW. A particularly good took for integrating ideas is their Instructional Resource Library This can help you find resources to meet your goal and potential physical objects.

After lunch, Teaching (With) GIT  Surprise! Most of the related resources for this talk at on GitHub - bit.ly/twg-2024 As the idea of Markdown was being presented I was thinking I need a Markdown tutorial. And one was chard at Markdown Tutorial At this point I feel like I have some good resources to dig deeper into Git and GitHub.

I confess that I skipped a session. Maybe my brain was full. I was tired. I did spend some of that time working on my snapshot post about the exhibit hall which I will probably post later tonight.

I did not skip CS Education in the Age of AI though. with people like Mehran Sahami from Stanford and Maggie Johnson from Google I would not miss it. It lived up to my expectations. I hope it was recorded. I would love to listen to it again.

There was a lot to take in. A couple of takeaways for me. One is that AI has the potential to allow our students to do more. More complicated projects. More innovative projects. Also, there was a reminder that these AIs, including the ones that generate code,are not perfect. In fact, one study at Stanford showed that students using AI generated code with more security holes than students who didn't use AI. Worse still, the students who did  use AI were more confident that their code was good.

We’re going to need people who can read, test, and debug code so some time to come. It's much to soon to stop teaching coding.

I’ll sign off on this post with something I said a couple of years ago:

Teaching computer science is no more about creating more software developers than teaching English is about creating more novelists.

Sunday, August 02, 2020

Learning Python: Part 1

Python has been on my radar for years but I haven’t really had the motivation to learn it myself. It’s time though for several reasons. Reason number one is that I need a learning goal to keep stretching my mind and knowledge. I don’t have a bunch of students finding new puzzles to solve so I have to make my own mistakes.

First step was to pick a development tool. I have played with a bunch. IDLE, PyCharm, Processing, and some I forget. I didn’t like any of them. So I am using Visual Studio. I expect many to tell me that was/is a horrible choice but its the devil I know so there is that. Many of the tools feel like steps backwards to me. I’ve gotten spoiled by the Intellisence in Visual Studio among other features. IDLE felt like what I used to learn BASIC-Plus 40+ years ago. Anyway, I want to spend my time learning a language not an IDE.

OF course there are two parts to learning a new programming language. Part one is the basic syntax. Part two is the idiom of the language. The first part is easy. The second not so much.

I’ve started with easy stuff. Declaration of variables, simple math, declaration of functions, and control flow. IF statements and while loops were pretty straight forward. For loops are different and idiom rears its ugly head here first for me.

For loops in Python seem to be what I think of a ForEach loops in other languages. Very powerful and useful. On the other hand, how do I do the equivalent of:

for (i=0; i <= 100; i+=5)
or
for i =0 to 100 step 5

Or do I need to use a While loop to do this? Go ahead, show off in the comments and help me out.

String manipulation, one of my favorite things to code, is probably next for me.I think that will be ok.  Lists and dictionary come after that. I think I will have to read up on them as they look to be thought of differently than arrays in the languages I am used to using. They also look like fun and powerful to use. So there is that.

Classes after that. Hopefully that moves quickly.

Once I get some basics down I’ll start looking into various libraries and what not. Perhaps go back to try some graphics in Processing. Is there an equivalent to Windows Forms like I use with C# and Visual Basic? Or do I have to go backwards again to do that?

At least I’m having fun. Now to go crack a book.

Wednesday, June 17, 2020

Thoughts on an IDE for Teaching CS

Amy Ko posted a slide deck about CS education in higher education from a presentation she made to a group at Microsoft. There is a ton of stuff in there. I need to read it a couple more times actually. I’ll probably blog some more based on other things she brings up. Issues of equity for example. That one I need to think over a bit more as I process the reality of the world today. But for this post I want to focus on some of the ideas she shared for teaching beginners.

Under the heading “Classes move too fast” she writes “Many introductory programming courses now include a 1) professional-grade programming language, 2) a professional-grade IDE, 3) a professional-grade version control system, and 4) a professional-grade test framework.”

This is too much for many students. In my end of year survey most of my students felt that Visual Studio (a professional-grade IDE using a professional-grade programming language) was fine for them. Not to hard. And a lot of teachers are using GitHub – a professional grade version control system. That is still a lot to learn just to get going though. My students may think they are doing just fine but honestly I spend a lot of time fixing projects because it is far to easy to mess them up. I’m finally beginning to face that truth.

Later in the presentation Dr. Ko talks about making tools that make collaboration and working together easier. How do students work together? How do they do it when they are separated by time and space? That is something we have to think about even more these days.

What is the answer? Well, I’d like to see an IDE and language that creates projects that are harder to screw up for one thing. Don’t ever let beginners use Save As in a Visual Studio project. Doing so is almost a guarantee that a beginner will mess up their project in serious ways. Save As as an option for experts? Yep. We don’t want that for beginners. That’s just the start. Students are always closing windows they think they don’t need but later realize that they need them after all.

And collaboration? GitHub works for some. As I said I know a number of teachers use it with their students. I have had students who used it on their own as well. Awfully smart girls those two. But its got some rough edges. It’s really a powerful professional tool that offers more than most students or teachers really need.  And there are so many options and steps! We need something more simple! It needs to be tied in to the IDE fairly transparently as well.

Pair programming remotely? I’ve tried Visual Studio Live Share a bit.and it has some real potential. Not many seem to know about it yet. It does require  that people have a reliable want to share links for sessions. I’m not sure how it would work if a teacher wanted to look at a lot of student sessions are once. And we are still dealing with Visual Studio or VS Code and their projects.

This last semester I used Microsoft Server Manager to work with students online/remotely. Worked great as long as we were on the same virtual machine. It’s not something I want to give students access to though. I would like that functionality in a different tool. Especially if making the connection was as easy as this one was. It was easier than Live Share. So the tool I would want would probably involve some sort of “server” that was attached to a class that let students find their partners and connect with permission from the other student. Wouldn’t that be cool?

So what I want is an IDE that doesn’t let students mess up their projects easily, does easy version control with minimal set up or steps to make happen, and easy sharing of coding sessions. All built in with an easy set up.

A test framework? That’s a topic for another post.

Tuesday, March 24, 2020

Teaching From Home–Day 7

Well this is the new normal I guess. We had snow last night and several students missed homeroom this morning. I am assuming it is because of power outages in the area. No calling a snow day or even a two hour delay.

My big effort today was getting all of my freshmen connected to our virtual machines so we could start with Visual Studio. I’ve though about trying some other online programming environment but there really isn’t time to plan everything all over again on a new platform and in a new programming language

The good news from today is that all of my freshmen were able to connect to the virtual machines and run Visual Studio.  The less good news is that getting a first program to make sure it all works took the whole hour..

I think part of the problem is that students usually have to switch windows from the presentation to their own projects. Wouldn’t it be great is students had two monitors on their computers at home? Not happening of course. Still most of the students were able to create a working program. I still have to check if all of the projects were saved in the right place. I know that one was not. That one was also created in C# and not Visual Basic. That always happens. Both saving in the wrong place and starting with the wrong programming language.

Next on my agenda today is making a recording of what I wanted students to do today so that a few students who fell behind can watch it and catch up. I have a hunch someone may have walked away from his computer thinking he wouldn’t miss anything important. I wonder if I am going to wind up recording a lot of things. Recording the whole class doesn’t seem like it would work. There is too much extra stuff going on. Recording a special tutorial may be faster and easier than editing the meeting file.

So the learning goes on.

Thursday, March 19, 2020

Teaching From Home–Day 4

I have no idea how long or how consistently I will be writing these posts. I guess when I have something to say. In some ways I think of this as a sort of record of what I am doing for myself and maybe for people who will be going through this themselves.

My students are already wondering how long we will be continuing online. They miss their friends and the face to face contact. I don’t blame them. I doubt we’ll be back before May and even that seems iffy at best. So we continue on.

Today went as smoothly as I could have hoped for. My Programming Honors students have been great. The virtual machine they connect to has handled 21 Visual Studio uses at once brilliantly.  I was worried about that but our IT person has done an outstanding job of support us in this area. I don’t know what I would do without these virtual machines.

I used Zoom for the first time with my APCS Principles class. It worked pretty well. I was using technology to try to solve a people problem and that always has its challenges. Being able to mute students and not let them unmute themselves or mute me has, I’m sorry to say, been a necessary feature..

 Mike Zamansky has a great review of Zoom in his first day of teaching online blog post. It has a lot of good features that Google Meet does not. I feel like after a few more sessions I will have a wish list of what I want in an online classroom. Some of it Google Meet and Zoom already have. Some they don’t. Or I haven’t discovered. I’m doing a lot of just in time learning.

Basically for me Google Meet feels more light weight and easier to use than Zoom. Zoom has more features but is a little more complicated to use. I’ll probably spend some more time experimenting with both. Some schools are using Microsoft Teams and I really should try that out just to see if it has some features or ease of use that I don’t know I need.

This while experience has me thinking about teaching paradigms. I prefer desktop apps to cloud apps for the most part. Maybe because I am set in my ways. I think though that teachers have to give a lot more thought to teaching CS using cloud based development tools. Not strictly web based but hosted in the cloud.

Microsoft and Amazon have options. that look good to me. They are still mostly set up for professional developer organizations and, for education, university CS departments with good professional support. The first one to create an inexpensive (ideally free) cookbook solution that secondary school teachers or part-time IT support in schools can use is going to be a hero.

A cloud hosted solution will solve the problems of student having different kinds of computers at home, installation of software (license issues made easy), and open up learning and projects to expand beyond the computer lab. In my opinion as lot of the web based development/teaching tools are good but that we need to go to a next level of power and flexibility.

Wednesday, November 06, 2019

Visual Studio Online–Possibilities for Education?

Microsoft has been running their big MSIgnite event this week and making all sorts of announcements.  One of them was a cloud-based development environment called Visual Studio Online.

OK, that looks interesting and I will probably try it out soon. It may be an answer for people pushed to Chromebooks,  others who are at one to one bring your own device schools, or just want students to wrote programs from home. I wonder how it works on otherwise underpowered older computers?  There is some concern about costs and that is something I need to understand.

Maybe I can find someone with an education focus at Microsoft to explain how it might work cost effectively for schools and students.  Or maybe I can figure it out through all the marketing hype. We’ll see but it sure does look worth looking into in more detail.

Question added later: I wonder if this will let me develop iPhone apps without buying a Mac? Anyone know?

Sunday, June 16, 2019

In Honor of BASIC

I found an interesting article today New Hampshire installs first historical marker to honor computer programming The BASIC programming language was invented at Dartmouth College in New Hampshire. Today it gets a bad rap and perhaps the original version deserve it compared to modern programming languages. For its time though it was pretty important.

The early personal computers all came with some version of BASIC.There were books one could buy that has listings of BASIC programs that we used to enter and play with. A lot of people got their start in computer science by teaching themselves BASIC.

The first language  I learned was FORTRAN but the next year my university got a Digital Equipment PDP-11 running the RSTS/E operating system. It cam with a great version of BASIC called Basic-Plus. I taught myself that on my spare time. As an interpreted language on a time sharing system, unlike the compiled FORTRAN on a batch system, this allowed a lot more and more frequent experimentation.  That really opened things up for me.

After university, knowing Basic-Plus got me my first professional software development job.

Later I learned Visual Basic and then Visual Basic .Net. Today’s Visual Basic is a far cry from the original BASIC of course but a lot of the basics are the same. There isn’t much you can do in C-family languages that you can’t also do with Visual Basic. And it is still more friendly for beginners than Java or C++ or C#.

It is still looked down upon by many and yet as the same time it still shows up on lists of most used languages (https://fossbytes.com/most-popular-programming-languages/)

These days I use C# for a lot of my personal programming but I still like to use Visual Basic (as I did for a quick hack today) Over my career versions of BASIC have been very important to me.

Saturday, May 04, 2019

Migrating to Android–an early trip report

One of the reasons I held on to my Windows Phone as long as I did is that it was so easy to program apps for it. I had come to depend on one particular app I wrote to help with with the rotating schedule we run where I teach. I finally gave it (too many apps I could not run on the Windows Phone) and got a Google Pixel. Programming an iPhone would mean I also have to buy a Mac and that was a bridge far to far for me. Of course the first thing I wanted to do was to migrate my app to the Android platform. Visual Studio, Xamarin, and C# seemed the way to go.

The code and logic moved almost transparently. The user interface not so much.

One thing that complicates things is that the tools change so quickly. UI code that I created with Visual Studio 2019 Preview seems different from what was created by Visual Studio 2017. This also means that a lot of videos and tutorials are already aged out of usefulness for me. I’m still looking for some videos that work both with beginners to the Android API and Visual Studio 2019.

I finally got something working. It’s ugly but it works. The next step is to learn how to do decent screen design with the Android API. It is not as intuitive as Windows Forms was/is. Not even close. I feel like I am back in the 1980s. It feels like we are regressing in making user interface programming.

At least we still separate form and function. As long as the UI objects have the same names all my C# code seems to work quite nicely. This wasn’t the case in the 1970s and early 1980s. Back then UI code was usually integral with the logic code. That changed over time and the idea of separating form and function moved from new to controversial to the way things were done. It’s the idea that lead to front end and back end developers. But I digress.

Being able to drag objects where ever I want them is a wonderful thing about Windows Forms Design. Microsoft seems to be moving away from that easy to use tool to making programmers write more code by hand. I’m not a fan. Like I said, a return to the distant past.

At this point I have confirmed that coding Android apps is easy and all my C# knowledge is still usable. I’ve also confirmed that I have a lot to learn about creating an Android UI. I’m starting to look for a good book or some up to date videos that are not just marketing demos. Marketing videos focus on showing off features rather than teaching. Teaching videos are a completely different emphasis.

Anyone want to recommend a book or a set of videos that worked for them?

Friday, December 07, 2018

Teaching Phone Programming Should be Easier

Garth Flint and I have been independently looking at resources for teaching mobile phone application development. (Garth’s posts are linked below) I’m currently teaching a course using AppInventor which is going ok but not as well as I’d like. Most of my students own iPhones which AppInventor doesn’t currently support. Their iOS support is currently under review by Apple but my course is almost over. Even with Android phones I still have some trouble with connectivity. And the emulator is a mess. Some days I can’t get it working at all. So I’m thinking about what to use to teach next year.

There are other options. I have been testing Thunkable with some of my students. The good is that it supports both Android and iOS. The bad is that this support doesn’t support many sensors and really that is a huge part of what I want students to do. Without sensors its just another desktop app with a tiny screen.

I still need to take a closer look at LiveCode which seems to come up in this discussion so I don’t know much about it yet. Input welcome!

I haven’t tried the platform specific (ie professional) tools yet and I am reluctant to do so. The ones designed for iOS or Android only work on those platforms and I’d like to use both. Since most of my students have iOS devices than going Apple might be a way to go except that that requires developing on Macs. We have a Mac lab but its already used a lot. And they are all Macs which comes with its own complications. I am not a fan. That’s a last resort.

Microsoft Xamarin with Visual Studio is a cross-platform professional option. I’ve looked very briefly at it in the past. Setting it up is non trivial and I do have to have some connection to Macs for the iOS loading. Networking to a Mac or three might be an easy option.  Well, easier than taking over a whole lab. I need more time to work on that option though. I don’t know many teachers using it which is a concern.

I really wish Windows Phones had not died out. I have a Windows Phone and writing apps for it with Visual Studio (2015 or earlier only) is a piece of cake.

Saturday, August 18, 2018

Programming FUNdamentals Books

Most programming textbooks just are not what I am looking for. They are too long. They are too dull. And they are written for teachers to use not for students to reference. Last winter I decided to write some thing for my students to use. Actually, two books for my students to use. II took some short suggesting papers I had written, used my PowerPoint lecture presentations for some details, and basically wrote what I teach.

I teach some Visual Basic programming to freshmen and C# with my Honors Programming classes. That’s why two books.

These are not typical textbooks. They are short, to the point, and, I hope, will not put students to sleep. There are few exercises and no end of chapter questions to assign. They are intended more for students to use as a reference. Students tend not to take good notes so these may fill that need for some. They also want to learn things that are not generally looked on as serious computer science but which make for more interesting programming projects. So there is a section on how to do fun things with timers, images, and other language/library features that I get asked about regularly.

They’re probably not for everyone but the drafts worked well with my students last year. Take a look and if you like what you see buy one (or a classroom set). They’re priced low at $9.95. If they suck, send me an email. I’ll try to do better in a second edition.

Thus ends my commercial

Fun books

Tuesday, May 08, 2018

Visual Studio Live Share–Something CS Teachers Can Use?

Microsoft is having their big MS Build event this week. I don’t have time to watch it live but I have been seeing hints of things via social media. Most of what they are talking about it for professional developers and is far more advanced than what I have time to get to with my students. But sometimes there are things I can really use. Visual Studio Live Share looks to be one of those things.

With Visual Studio Live Share two people can actually look at and work on the same code at the same time. Merge that with a Skype call and it is like being there. Think Google Docs for Visual Studio. (Someone will object to that characterization for sure.)

So far I have just tried it locally (two computers next to each other with me operating both) but I can see some educational uses. For one thing I can see sharing code with students and having them work on code I have on the screen from their own desks. I can also see easier pair/team working in rooms that don’t lend themselves to a lot of student movement. My tables don’t move and things can get crowded if people mover around too much.

I can also see using it to help students with their own work. Now in the classroom it may still make more sense to walk over to where the student is working. On the other hand if a student is working from home we now have a great way to work together.

I’ve been thinking about using it to watch students as they code (with their permission and their controlling the share) from time to time. That may give me some insights without being quite as intimidating as literally looking over their shoulder. For those students who pretend to be working this may be just the thing.

There are likely to be more ideas that others come up with. Time will tell. At least for now I have a few ideas worth trying out. What do you think? Do you see some educational potential?

Thursday, April 05, 2018

Thoughts on where CS education tools come from

TouchDevelop is being retired. It’s not the first tool with educational use to be retired by Microsoft. Or from other companies either. While I have used TouchDevelop with my students I was getting ready to move to MakeCode anyway so it is not a fatal move for me by any stretch. I know other teachers who have been using it more extensively who are going to feel some pain though.

I tend to divide CS educational tool sources into four categories.

Professional tools that are useful in education. In this category we see things like Eclipse, Visual Studio, and other development tools that are being used to create real products. These tools are not going anywhere anytime soon. Companies, both those that use them and those who create them, have a vested interest in supporting and improving them.

University developed tools. This includes things like Alice and Scratch but also BlueJ and Snap! and, well, far too many to mention. These are also likely to stay around for quite a while. People tend to build careers around them and use them to attract graduate students who use them, enhance them, and generally want them to be around.

Education companies. Companies like Tynker and Birdbrain are included in this group. As long as these companies can make enough money to keep going their tools will be around.

Industry Research Projects This is often the most state of the art and cool new things. On the other hand they are the least to be around for a long time. AppInventor was originally one such. Fortunately for educators who adopted it, when Google was done with it they were able to hand it off to a major university where it continues. TouchDevelop is another. Hear though, when the researchers moved on to new ideas there was no similar handoff. Both the Touch Develop web app and cloud backend are open source under the MIT license:

There is no indication that anyone is going to take it on though. I always assumed this day would come to be honest. Industry research groups have changing priorities and in some ways that is a good thing. I could argue it is a very good thing in terms of advancing the state of the art in computer science. It’s sad for us in education who aren’t always as quick to adjust as industry is.

As one tool fades another grows. MakeCode is pretty cool and there is a lot there learned from TouchDevelop, the Micro:Bit and educational uses of them both in there. Microsoft is developing a sprite-based game engine for MakeCode and a new course on game programming, in the spirit of CCGA (an interesting curriculum based on TouchDevelop.). One hopes it will be available in some form for teachers to learn it this summer.

I’m not sure where the materials developed by code.org fit into my classifications though. They are a non-profit with industry funding but they are neither industry or academia.  They have some great stuff though. I am using their CS Principles program for example. Chances are I’ll retire before they “go out of business” so I can probably depend on them plenty long enough.

Nothing lasts for ever though and change is the most constant thing in computer science. So we have to learn to adjust and change our tools and our curriculum, probably, a lot more often than educators in other disciplines. At least we’re not going to get bored.

Tuesday, February 19, 2008

DreamSpark - Microsoft Gives Software to Students for Academic Use

OK so it is already all over the blogosphere that  Bill Gates announced a new program called DreamSpark to give software to students. (The official press release is here BTW) So I'm kind of late to the party already. Channel 8 is going to be a key source for developing news on this project so you may want to keep looking over there.

In fact to kick it off there is an interview with Bill Gates (in case you were wondering who that guy with Max Zuckerman was) talking about the program and about the future potential of software.

So what is being offered? Glad you asked!

Microsoft developer tools.

Microsoft designer tools. Expression Studio, including:

Microsoft platform resources.

  • SQL Server 2005 Developer Edition
  • Windows Server, Standard Edition (Yes, Windows Server Edition!!)

There are two key FAQs.

A couple of questions have come after that. They are probably in the FAQs but maybe you can't wait or maybe they are not. Yeah, that's why I was waiting to blog so I could answer more questions. No really! OK maybe not  but it works out well that way.

What about high school?

It's coming. It has a high priority as the next step. Bill Gates says it will happen and that commitment appears several times in the press release and in other official statements. I'll have more information about this as things get settled and information becomes available.

How do students learn how to use this stuff once they have it?

I've got a few resources listed here and I am working on getting more listed. So return often. And if you have some to recommend please leave them in the comments.

  • Beginning Developer Learning Center - a great place to start with videos, tutorials, and projects for learners of all ages.
  • Coding 4 Fun - Lots of fun projects most with step by step instructions and many with videos.
  • MSDN Forums - These are the forums the professionals use but beginners are welcome and there are lots of people willing to help with technical questions. A lot of students and faculty members are already there asking the tough technical questions.
  • XNA Forums - If you want to learn how to develop video games with XNA this is the place to ask questions.
  • Channel 8 and the Channel 8 Student Union - lots of information in the videos there and lots of good discussion in the forums of the Student Union.

What about faculty? What about classroom/course use?

Microsoft is retaining their existing programs for getting software into the classroom and for course/faculty use. The MSDN Academic Alliance program (MSDN AA) is great for getting software for teaching labs, including a lot more than DreamSpark offers students, into the hands of faculty. Also there is the IT Academy program. If you are a faculty member who teaches IT/CS or related topics you really want to check those programs out. MSDN AA and IT Academy are both programs that already include high schools in case you were not aware of that.

Faculty can also get access to software though the Faculty Connection sites.

StatCounter - Free Web Tracker and Counter
StatCounter - Free Web Tracker and Counter

Tuesday, December 04, 2007

How Do I - Videos

I found out about a bunch of new videos that show how to do different things with different Microsoft development products. They all run between 10 and 15 minutes and focus on specific tasks. They are adding new videos every week so you may even want to subscribe to the RSS feed.

What topics/tools do they cover? Glad you asked. Here's the list:

  • ASP.NET
  • ASP.NET Ajax
  • Devices
  • Native Coding
  • Visual Studio Extensibility
  • Visual Studio Tools for Applications
  • Silverlight
  • Visual Basic
  • Visual Studio Team System
  • Windows Forms
  • Windows Presentation Foundation

    The site is called "How do 1? and you can find it here. I've already got my eye on a number of them to watch this week. I see them as a good way to digest things in a short period of time that fits into my schedule. I'd love to hear what others think.

  • Thursday, November 22, 2007

    Visual Studio Express 2008 is out

    Visual Studio 2008 was released to manufacturing this week and there is a lot of news about it around the Internet. Almost lost in the excitement (well geek excitement anyway) is that the newest versions of Visual Studio Express have also been released. You can get them here.

    One of the blogs you'll want to look at though is Dan Fernandez who lists the 15 things he likes best about the newest Visual Studio Express products. And he includes my favorite thing - they're free. If you are into game programming in C++, as a lot of people are, Dan introduces the new Game Development Kit for C++ that works with Visual C++ Express. And much more.

    The Beginning Developer Learning Center has been refreshed as well. There are a lot of brand new and updated learning resources there. Take a look.