Monday, 27 October 2014

91636 (3.44) and why it is an important achievement standard

This standard I consider is one of the important ones in the Digital Technologies strands.

Demonstrate understanding of areas of computer science

Being able to demonstrate an understanding of what is happening around us, why we need to look at 
• formal languages 
• network communication protocols 
• complexity and tractability 
• intelligent systems 
• software engineering 
• graphics and visual computing. 

These are important concepts that make computing. 

Though, who can way which one is more important over another.

This is the second year I have taught this standard and I must say that I am starting to change my mind over the way that I will deliver them. I think one is important as students can delve into the concepts of it and look at the way software is developed. 

Going out to industry and have them explain their software development process is incredible important to the students. Without industry this concept would be difficult to teach. I had a wonderful day long visit to Orion Health in Christchurch this year with my Level 3 students who go to experience a day in the office. Talk to a number of developers, the most requested role was the UX developers, having on two in the office meant that their time was limited, but the students enjoyed the opportunity. Having waterfall and agile explained to them provided them opportunity to be able to write their reports using personalised examples.

Artificial Intelligence allows students to use online chat robots to see just how smart they are. This is normally and interesting lessons in which students go down some interesting paths. But what happens when you separate the conversation away from students to others in another room, those that are on computers and those that are not. Who is who?

Network protocols, how can you be sure that a message has been received. Think back to the early days of text messaging, how can you be sure that your message got through? Acknowledgement of messages, and making sure that messages are passed through in the right order.

Complexity and tractability would have to be my favourite now. This looks at the travelling salesman problem. Though in the csfieldguide I like the fact that it is craypots instead of cities. Maybe it could be that I like to watch deadliest catch. Or the fact that we used to cycle around the city delivering plans for dad to a number of companies and working out what was the best way.

This I learnt from CS4HS last year, you need to look at two areas of computer science. That there needs to be some demonstration of the concepts that are being taught. That there needs to be a talk about the algorithms that are used, evaluated.

Demonstrate understanding of areas of computer science involves: 
• describing key problems that are addressed in selected areas of computer science 
• describing examples of practical applications of selected areas to demonstrate the use of key algorithms and/or techniques from these areas. 

Demonstrate in-depth understanding of areas of computer science involves: 
• explaining how key algorithms or techniques are applied in selected areas 
• explaining examples of practical applications of selected areas to demonstrate the use of key algorithms and/or techniques from these areas. 

Demonstrate comprehensive understanding of areas of computer science involves: 
• discussing examples of practical applications of selected areas to demonstrate the use of key algorithms and/or techniques from these areas 
• evaluating the effectiveness of algorithms, techniques, or applications from selected areas. 

Will teachers teach something at level 3 that they have not prepared their students for during the last two years? This is a challenge in itself. Will a lesson plan help?

The University of Canterbury, Computer Science Education Research department has developed a Computer Science Field Guide that has been developed to support the Computer Science achievement standards, there is a students version and teacher version. The teacher version has hints and tips in it for teachers to use when teaching this to their students. 

One thing I would suggest is, getting teachers together and going through the work, and getting the teachers to go through it themselves. Get some PD in it. There is a course, but it helps develop your understanding not just for level 3, but also for level 1, and 2. 

This standard is important as it provides students two aspects of computer science that they are able to delve into, try a number of situations, discuss them and be able to write down their thoughts in a technical report. 

I have four students that are currently doing NCEA level 3 and the COSC121 and COSC122 course. It is amazing how many times they have brought up the conversation that they are just doing this concept in class at the moment. They have knowledge from school that they are able to bring into there lecture and tutorials. 

I was showing a graph on the board the other days of linear vs binary searching ( a level one topic) that they said that they wish had been taught to them in level 1. I started last year teaching the computer science standards.

However, there is a perception that this standard is too hard to teach.

From the markers guide:
  • There are six areas to choose from in the standard, and the phrase "selected areas" means that at least two of them need to be selected. A few candidates only selected one area. 
  • Some candidates did not seem to have the criteria of the standards in mind. Describing a key problem was often overlooked with candidates often just discussed the algorithms or techniques. 
  • Some candidates simply described their own software project rather than looking at the processes used and comparing them. Some candidates who did describe a software development process did not name it, or explain why was suited to that particular project. 
  • Teachers need to ensure that candidates who include their own practice do not focus on software testing (white and black box testing), but instead focus on software engineering. 
  • Network communication, focus was on the different transmission media, rather than the algorithms or reasons. 
  • If doing Turing Tests, make sure appropriate and relevant conversations are being held. 
  • In the artificial intelligence section simply providing a printout of chatbots conversation history without explaining the computer science process behind it limited chances of success. 
  • Good questions for chatbots were more likely to provide material that allowed candidates to demonstrate understanding. 
  • Candidates did well with this standard where they set out to show understanding complex computer science topics rather than show-casing programming skills. 
Looking at the listerve emails, comments like That makes my brain hurt, and ‘ NOPE no level 3 Comp sci being taught here next year.' limit understanding. These were specifically around one concept in the standard around which was computer graphics where students needed to be able to do calculations using Matrix's. 

It is unfortunate that they did not look at the other areas around the standard that could of been carried out.  

1 comment:

Dr FFayez said...

Thanks a lot for the valuable comments. I am a father of a student who will enroll in Computer Science Level (3). My son has no Computing background and he just arrived to New Zealand from Jordan few months ago. Anyway, I have 15 years of teaching undergraduate, post graduate and PhD students in Computing and Mathematics in UK, Dubai and Jordan. Honestly, most of the topics covered in Digital Technology / Computing Level (3) are university level topics and they dont suits high school students particularly the Internal HW / Circuit topic and Designing and implementing a complex procedure (OO) with GUI interfaces. I think the "Digital Technology / Computing" subject is not fair if we compare it with other level (3) NCEA subjects where the student "must" have deep knowledge before enrolling and therefore the advisor must ensure only eligible students may enroll. One other important note is that I am not sure whether teachers are even have the diverse knowledge of all topics (Graphics (require good understanding of math), SW design , DB design and implementation, SW testing, Hardware, IS and business, and web scripting. I really doubt that since if they do they just can quit and become developers/testers/architects/etc and makes over 130K. This means "most" of the students are left alone for the learning curve and this explains the high % of students with "not achieved" in this subject. I hope NCEA will revise this subject content to match both teachers and students abilities