Successfully reported this slideshow.

Programming at King's

1

Share

Upcoming SlideShare
Phenoflow 2021
Phenoflow 2021
Loading in …3
×
1 of 103
1 of 103

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

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

×