Giter Club home page Giter Club logo

iniciacionprogramacion's Introduction

Iniciación a la Programacion

Material de Curso de Iniciación a la Programación

Diapositivas: http://slides.com/devcexx/intr_prog_acm#/

Estructura

  • ¿Qué es programar?

    • Paradigmas de la programación
    • ¿Para qué nos sirve?
    • La programación con Java
  • Elementos básicos de la programación en Java

    • Variables, condiciones, repeticiones y organización.
    • Variables
    • Tipos
    • Operadores
    • Condicionales
    • Funciones
    • Recursión
    • Arrays
    • Loops
    • Switch

Compilar y Ejecutar

En la terminal (cmd en Windows):

javac nombre_fichero.java  #Compilar
java  nombre_fichero       #Ejecutar un fichero que contenga un "main"

Si alguno de estos comandos no os se encuentran, revisad que Java está bien instalado: acmupm.es/instalar_java

Ejercicios

No hace falta ejecutar los ejercicios. Se pueden hacer en papel simplemente. Recomendamos que si una vez pensados y hechos, se quieren probar, se mire la parte de recursos de ejecutar un programa

CONSETO 0: Si tras 5 minutos no se te ocurre como hacer un ejercicio, búscalo en Google. Nunca lo busques si no lo has pensado. Si no es vital para avanzar, tampoco hace falta buscarlo, es mejor seguir pensando en otro momento.

CONSETO 1: JAMÁS copies y pegues código. Primero trata de entenderlo, una vez lo hayas entendido, escríbelo a mano.

Comenzaremos con unos ejercicios sencillos para poner en práctica la definición de funciones y el uso de condicionales:

  1. Dado un número que te de el siguiente (incremento)
  2. Definir la función que toma 2 números y devuelve el mayor de ellos.
  3. Definir la función que toma 3 números y devuelve el mayor de ellos.

Y para trabajar un pelín la recursión:

  1. Definir una función que calcule el factorial de forma recursiva.
  2. Definir mediante recursión la función de la potencia, que recibe una base y un exponente.
  3. Definir una función que calcule el número n de fibbonaci de forma recursiva.

Ahora vamos a repasar unos conceptos que se olvidan mucho de java, que es cómo declarar arrays.

  1. Declarar un array sin inicializar.
  2. Declarar un array de tipo int e inicializarlo con tamaño 10.
  3. Declarara un array de tipo int e inicializarlo en el momento con valores 1, 2, 3

CONSETO 3: La perfección se consigue con el tiempo. Si no te acuerdas bien cómo era algo exactamente, déjalo indicado. Ya volverás a ello más adelante o preguntarás cómo se hace.

Y para mezclar lo dado:

  1. Mirar cómo se recorre de forma recursiva un array. Está en las diapositivas
  2. Dado un array de int, devolver el mayor número contenido en él.

Más ejercicios

Exisiten muchas webs donde se puede aprender a programar a medida que haces pequeños ejercicios. Os dejamos por aquí una selección de webs que recomendamos.

  • Codewars https://www.codewars.com/ :: Multitud de lenguajes y todo tipo de niveles. Pon ACM UPM como clan al registrarte si quieres conocer nuestra clasificación.
  • Uva online https://uva.onlinejudge.org/ :: Programación competitiva. La mayor colección de problemas de programación. Todo un referente mundial de ejercicios que mantiene la Universidad de Valladolid. Concursos como ICPC de la ACM tienen el mismo tipo de funcionamiento que esta web.

Recursos

Es importante tener un buen entorno de programación, que nos entienda y lo entendamos. De esta manera se creará una sinergia entre persona y máquina que nos ofrecerá la oportunidad de escribir código.

Recomendamos mucho alejarse de los IDEs. Los IDEs, como Eclipse, pueden ser muy bueno para programar en Java, pero no para programar en general. Es decir, no nos interesa aprender Java, nos interesa aprender a programar.

Como solución a esto planteamos una serie de alternativas que harán que aprendamos muchos más sin necesariamente sufrir (mucho):

  • Emacs, un editor amado, una curva de aprendizaje lenta y larga que se ve recompensada en el futuro siendo la herramienta más versátil de todas.
  • Vim, un editor amado (y odiado). Históricas batallas entre estos dos editores. Cada persona funcionará mejor con uno de estos dos. No es quien programa quien elige el editor, es el editor el que te elige a ti.
  • Sublime Text, el editor de fácil entrada. Tiene atajos que nos resultarán familiares y con un buen diseño. Ideal para empezar, quiźa no tanto para quedarse.
  • Notepad++. Bueno. Algien te dirá que haces bien.

Ejecutar un programa

Para poder ejecutar un archivo java es necesario que tenga cierta estrutura. La plantilla base es:

class Clase {

  // Zona donde se definen funciones


  public static void main ( String [] args ) {

    // Zona de código que se ejecuta

  }

}

iniciacionprogramacion's People

Contributors

devcexx avatar ignaciobll avatar samgh96 avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.