viernes, 6 de diciembre de 2013

CLIL Activity: Programming languages

Hola,

El título del artículo es: Programming Languages.


El alumnado objetivo es: Alumnos de Ciclos Superiores de Formación Profesional de Desarrollo de Aplicaciones Web y Multiplataforma. Módulo 5: Entornos de Desarrollo; UF1 Desarrollo de Software.


De todas maneras, os paso las actividades, aunque algunas imágenes no se ven:

SOFTWARE DEVELOPMENT
DAW M5 UF1 Programming languages
WARM-UP ACTIVITIES
  • Let's find out some words that Internet has given to English such as geek, avatar, LOL, hashtag. Could you think in another ones?
Coment the origen of the words described in:
  • Comment the evolution of a programmer as seen on the document TheEvolutionofaProgrammer.odt
A1 PROGRAMMING LANGUAGES IS LIKE A BOX OF CHOCOLATES. WHICH ONE?
Aim
In this activity you will debate the use of programming languages around the world.
Description
Type on your browser the following URL:
  • Change the list of programming languages to Cobol, C++, PHP and Java and comment the differences to the graphic shown by the teacher in the presentation.
  • Debate in the classroom whether this statistic is real, as the "interest" as Google understands may not mean the real percentage of use of this language.
  • Have a look at India. What do you think of the interest shown in the map?
  • Comment the photo below, which was taken in a little village in India two years ago.


  • Search on the Web jobs for programmers specialized in the commented programming languages: https://www.xing.com/en. Comment the conditions and compare them with your partner.
  • Design a survey among your friends, acquaintances and relatives about the usage of programming languages and the general thoughts people have about them. Items such as: most used, easiest, free and so on should be revealed. You can use web applications similar to: https://decidealready.com, www.thunks.co.uk




A2 OPEN OR GATED COMMUNITY
Aim
In this activity you will debate the choice between .NET and Java, reading an opinion of a programmer.
Description
  • Work in groups of 3. Each team has been given a strip of paper where some words are missing. Fill the gaps with the proposed words.


Strips of paper given to students:
If you're talking about just having fun, it's VB all the way for me. I think the ______ is much easier to understand and you can "get on with the show" and think about the programming problem instead of the language. .NET has made the "power" of all the .NET languages equal now so it's _______ a choice about what you like.

The comparison of .NET to Java, however, is more one of guessing about what the future may bring. Microsoft charges a lot of _______ for .NET technology and Java is less _______ to acquire. Microsoft pretty much just runs on and Java runs on everything. (Although the Mono project is bringing .NET to the non-Windows environments right now. That's an interesting trend that bears watching.) So why use .NET?
I like to think in terms of analogies. It helps me to contemplate how is this decision is like something more familiar. An analogy that comes to mind is a decision about investing in real estate. It may sound like it doesn't fit but hear me out on this.


One way to classify real estate investments is to decide whether you're going to go for a relatively cheap piece of property and hope it turns into something grand; or buy something that is already pretty grand and expect it to get even better. Say, a ________ in a middle class neighborhood where there are few zoning restrictions or a house in a gated community where you pay _______ and community assessments but the are kept in perfect condition. In the gated community, you can be sure that nobody will ever open a liquor store next door. But if you put a plastic flamingo on your lawn, they'll probably fine you. Either one might turn into the better investment, but I'd rather live in the second place – if I can afford it. I can see good arguments for both.


To me, Java is like the cheap, but __________ property and .NET is like the … ahem … "Gated" community. Java has been around a bit longer – long enough to be tied into the________ that was current when it was invented. .NET is much newer and the architecture was guided by the best software geniuses that money could buy including Anders Hejlsberg, creator of Delphi at Borland.


Although Java "belongs" to Sun Microsystems, they have essentially given up ________ over the language to the developer community. That can be a good thing or a bad thing and will probably be both at different times. Sun doesn't disclose how much (if any) profit they make on Java, but it's pretty clear that they believe their future is in _________ and operating systems, not Java. Companies like IBM may invest more in Java than Sun does. Microsoft, on the other hand, is still a software company and they know their future depends on .NET. You can that they will do everything in their power to keep it as good as they can make it.


And (Mono notwithstanding) .NET is ________ into Windows and Java isn't. If you believe in Windows, .NET is a better ________. If you don't, pick Java. Since Vista seems to be stumbling a bit right now, that concerns me. But the "Vista" cycle is still young. It was easy to find experts who predicted that IBM's OS/2 would crush Windows 3.1 when it was first introduced.


Key words
  • affordable
  • hardware
  • syntax
  • architecture
  • bet
  • control
  • tied
  • money
  • expensive
  • taxes
  • mainly
  • pick
  • Windows
  • house
  • Exchange the strip the paper you have been given to another group. Now we are going to do a mutual dictation. One of you dictates the text to the other so that she/he can complete the gaps. Check the pronunciation of the words before saying them. Then, the one who has first read must complete the gaps while the other reads.
  • We are going to correct the previous exercise with the whole group. Besides, we must sort the texts out.
  • Answer the following questions:

  1. The writer thinks that ______ is better than _____ because __________________________
_________________________________________________________________________________

_________________________________________________________________________________

  1. The writer uses an analogy in which ______________________________________________
_________________________________________________________________________________

_________________________________________________________________________________


  1. In his opinion, Sun Microsystems does not invest in Java because _____________________

_________________________________________________________________________________

_________________________________________________________________________________


  1. What do you prefer, .NET or JAVA, and why? ____________________________________

_________________________________________________________________________________

_________________________________________________________________________________


A3 MATCH THE PAIRS
Aim
In this activity you will learn to identify and classify programming languages.
Description
You will be given:
  • a letter of the alphabet corresponding to a file in the folder ProgrammingLanguagesSamples
  • a strip of paper with a name of a programming language. Example: PHP
Your goal is:
  • to find out in which programming language the sample in the file you are given is written. Example: Letter "F" is Machine language.
  • to meet the partner in the classroom who has in his/her strip of paper the name of the programming language of your file in the folder. At the end of the activity everyone should have the strip of paper which corresponds to the sample given in the folder. Example: if you are given letter "F", you should meet someone who has "Machine" written in his/her strip of paper.
  • Search on the Internet whether your language is:
  • high level or low level
  • weak or strong typed
  • its paradigm (structured, OO, functional, logical)
  • of which age (1st to 4th)
Key words and phrases
  • High-level versus low-level
  • Programming paradigms
  • Typed and untyped languages
  • Age or generations
  • With the Website http://quizlet.com/ design a game in which samples of code of different programming languages will be shown and must be matched in similar way to the game played before. Work in pairs.
Supplementary materials PROGRAMMING LANGUAGES
Strips of paper given to students:
ABAP
COBOL
ASSEMBLY
JAVA
LISP
PHP
PROLOG
RPG
VB
ADA
JavaScript
FORTRAN
MACHINE
C
PHYTON


A4 A BIT OF HISTORY
Aim
In this activity you will learn to both classify programming languages and recognize their features.
Description
In teams of 3 people, prepare a "presentation" in English language with any APP included in the Prezzi shown in class (http://prezi.com/vjtkw2xthf1e/english-vocation/ share_embed). PowerPoint, Impress, PDF or other text documents will not be accepted. A comprehensive list of these APP's may be also found in the document ListofFunnyAPPs.odt. A good example is: http://www.dipity.com/. Thanks to this APP, digital time lines can be described and processes can be explained along history:


Another useful document given to you may be: EvolutionofProgrammingLanguages.pdf
You are expected to present your work in front of the class in English language. Your presentation should not be longer than 10 minutes, taking into account that all of you have to speak. Each team will be assigned a decade. The "presentation" shall include:
  • Representative programming languages which appeared in the decade (at least 4). For each language chosen as representative of the decade:
    1. Sample code
    2. Brief explanation: creator, source language (if any), future influences, domain-specific (usage) such as scientific, defense systems, real-time, web, etc.
    3. Classification according to features as commented in class:
      1. Generation.
      2. Typing.
      3. Free versus private.
      4. Paradigm (structured, object oriented, functional, logical).
      5. Compiled versus interpreted.
      1. Other: learning curve, clarity, simplicity, modularity, performance, suitable for X-type applications, etc.
  • With the Website http://www.rcampus.com/indexrubric.cfm design a proposal table to evaluate your partners in the presentation. The previous listed items should be evaluated, along with the pronunciation and the attitude shown in the class.
A5 CURVE LEARNING
Aim
In this activity you will compare learning curves of programming languages.
Description
Search on the Internet the programming languages which have the shortest and longest learning curve.


A5 MICROSOFT INTERMEDIATE LANGUAGE
Aim
In this activity you will generate the same object code from two different source code languages: C# and VB. Thus, we will understand the mechanism of the Microsoft Intermediate Language.
Description
  1. Create a file with the Note Pad, with the name hello.vb and type the following code:
Imports System
public Module test
public sub Main()
Console.writeline("Hello")
end sub
end module

Then run the Visual Studio.NET Command Prompt:
All Programs -> Microsoft Visual Studio.NET -> Visual Studio .NET Tools -> Visual Studio.NET Command Prompt.

Move your code to the folder is just opened and compile it with:


vbc hello.vb


Where vbc is the compiler of Visual Basic. If you find any problem about permissions, try to open the Visual Studio.NET Command Prompt as an Administrator.

A file hello.exe should have been generated. Test it, the word "Hello" should appear in the console.
  1. We will do the same for another file named hello2.cs, with the following code:

using System;
using System.Text;
namespace exe
{
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Hello");
}
}
}


To compile it, use the following command:


vcs hello2.vb


When you execute it with hello2.exe, the result should be the same as before.We are now going to "decompile" the two codes to check whether the MSIL code (Microsoft Intermediate Language) is the same for both source codes. For each of them execute he following command:

ildasm filename.exe


Compare the two Main functions. They should be the same.
A6 SUM IT UP!
Use the Website https://bubbl.us/ to summarize all you have learned. Work in pairs and upload your mind map to the forum in Moodle. Compare yours to the others.
Un saludo y muchas gracias
Olga Schlüter

1 comentario:

  1. Vaya, esto si que está trabajado, es un gusto tener comapñeros que nos muestran materiales como estos, muchas gracias!!

    ResponderEliminar