Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Programming at King's

47 views

Published on

King's College London.

  • Be the first to comment

  • Be the first to like this

Programming at King's

  1. 1. made with keynoteProgramming at King’s
  2. 2. martin chapman, teaching fellow
  3. 3. lecturer, first year programming
  4. 4. programming
  5. 5. algorithms sequence of steps that solves a problem
  6. 6. algorithms sequence of steps that solves a problem got.show
  7. 7. code the realisation of algorithms in a given language
  8. 8. code our world is run by
  9. 9. code play socialise drive buy
  10. 10. code play socialise drive buy
  11. 11. codebeing able to is important
  12. 12. programming in education
  13. 13. programming in education higher education, reserved for specialists
  14. 14. programming in education for everyone
  15. 15. 26th April, 2016
  16. 16. 26th April, 2016
  17. 17. 26th April, 2016
  18. 18. 26th April, 2016
  19. 19. a difficult relationship
  20. 20. a practical skill
  21. 21. learn by doing
  22. 22. learning independently
  23. 23. self-guided
  24. 24. made with keynoteProgramming at King’s approaching these challenges
  25. 25. 80%20% practical theoretical
  26. 26. 60% 40% theoreticalpractical
  27. 27. java
  28. 28. java OOP
  29. 29. python OOP
  30. 30. js OOP
  31. 31. version control
  32. 32. version control development environments
  33. 33. ? version control development environments
  34. 34. ?
  35. 35. ?
  36. 36. ? +
  37. 37. assignments
  38. 38. assignments
  39. 39. a typical lecture
  40. 40. use of existing resources
  41. 41. how do we fill the board with obstacles? break the problem down
  42. 42. systematically visit every position, and make a decision 0 1 2 0 1 2
  43. 43. systematically visit every position, and make a decision 0 1 2 0 1 2
  44. 44. systematically visit every position, and make a decision 0 1 2 0 1 2
  45. 45. systematically visit every position, and make a decision 0 1 2 0 1 2
  46. 46. systematically visit every position, and make a decision 0 1 2 0 1 2
  47. 47. systematically visit every position, and make a decision 0 1 2 0 1 2
  48. 48. systematically visit every position, and make a decision 0 1 2 0 1 2
  49. 49. systematically visit every position, and make a decision 0 1 2 0 1 2
  50. 50. systematically visit every position, and make a decision 0 1 2 0 1 2
  51. 51. systematically visit every position, and make a decision 0 1 2 0 1 2
  52. 52. 0 1 2 0 1 2
  53. 53. i j0 1 2 0 1 2 i j
  54. 54. i j 0 0 0 1 2 0 1 2 i j
  55. 55. i j 0 0 0 1 0 1 2 0 1 2 i j
  56. 56. i j 0 0 0 1 0 2 0 1 2 0 1 2 i j
  57. 57. i j 0 0 0 1 0 2 1 0 0 1 2 0 1 2 i j
  58. 58. i j 0 0 0 1 0 2 1 0 0 1 2 0 1 2 i j 0 0 0
  59. 59. private void placeObstacles() { // Go through every tile on the grid for ( int i = 0; i < squares.length; i++ ) { for ( int j = 0; j < squares[i].length; j++ ) { // With 30% probability, fill it with an obstacle if ( Math.random() < 0.3 ) { // Fill this square with black to represent an obstacle squares[i][j] = Color.BLACK; } } } }
  60. 60. i j 0 0 0 1 0 2 1 0 0 1 2 0 1 2 i j 1 0
  61. 61. private void placeObstacles() { // Go through every tile on the grid for ( int i = 0; i < squares.length; i++ ) { for ( int j = 0; j < squares[i].length; j++ ) { // With 30% probability, fill it with an obstacle if ( Math.random() < 0.3 ) { // Fill this square with black to represent an obstacle squares[i][j] = Color.BLACK; } } } }
  62. 62. private void placeObstacles() { // Go through every tile on the grid for ( int i = 0; i < squares.length; i++ ) { for ( int j = 0; j < squares[i].length; j++ ) { // With 30% probability, fill it with an obstacle if ( Math.random() < 0.3 ) { // Fill this square with black to represent an obstacle squares[i][j] = Color.BLACK; } } } }
  63. 63. private void placePlayer() { /* Continue to select new random locations for a player, while * the randomly selected position is already occupied by an obstacle * or the maze exit */ do { playerY = (int)(Math.random() * squares.length); playerX = (int)(Math.random() * squares[0].length); } while (squareFilled(playerY, playerX).equals(Color.BLACK) || squareFilled(playerY, playerX).equals(Color.GREEN)); /* Once a suitable X and Y position has been chosen for the player, fill the selected square with red to represent the player */ fillSquare(playerY, playerX, Color.RED); }
  64. 64. private void placeMazeExit() { // Randomly select tile for maze exit, and colour it green fillSquare((int)(Math.random() * squares.length), (int)(Math.random() * squares[0].length), Color.GREEN); }
  65. 65. being a programmer
  66. 66. $
  67. 67. my philosophy summary
  68. 68. my philosophy teach with students in front of a computer
  69. 69. my philosophy respect the experience of students
  70. 70. my philosophy support independent learning
  71. 71. my philosophy encourage creativity
  72. 72. my philosophy aim to coach rather than teach
  73. 73. made with keynoteProgramming at King’s
  74. 74. www.martinchapman.co.uk

×