1 / 25

Comp1004: Introduction I

Comp1004: Introduction I. Welcome!. Welcome to Programming Principles. Dr. David Millard ( dem@ecs.soton.ac.uk ). Dr. Julian Rathke (jr2@ecs.soton.ac.uk). Dr. Mark Weal ( mjw@ecs.soton.ac.uk ). Additional Seminars: Rikki Prince (rfp07r @ ecs.soton.ac.uk)

eliot
Download Presentation

Comp1004: Introduction I

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Comp1004: Introduction I Welcome!

  2. Welcome to Programming Principles Dr. David Millard (dem@ecs.soton.ac.uk) Dr. Julian Rathke (jr2@ecs.soton.ac.uk) Dr. Mark Weal (mjw@ecs.soton.ac.uk) • Additional Seminars: • RikkiPrince (rfp07r@ecs.soton.ac.uk) • Patrick McSweeney(pm5@ecs.soton.ac.uk)

  3. Main Course Structure • Two Lectures Each Week • Monday 3pm, 02/1089 • Tuesday 9am, 02/1089 • Also a Lab (worth 20%) • Monday 9am OR Monday 11am • Depending on Tutor Group • Other Assessment • Coursework (due weeks 7 and 10, worth 30%) • Open Book Exam (after Xmas, worth 50%)

  4. Additional Streams • Space Cadets • For people who are more experienced programmers • Run by Rikki Prince • Optional weekly challenge and discussion • Ground Controllers • For people who are new to programming • Run by Patrick McSweeney • Optional weekly workshop

  5. BlueJ • The main course text is Objects First with BlueJ • Although we will start with using Java from the command line, we will soon introduce you to the BlueJ environment • BlueJ is an environment designed for learning, but later in the course we will change over to use a proper professional environment

  6. A Dirty Secret • No matter how we teach you will mainly learn through practice! • Programming is the single most important skill for a computer scientist or software engineer • Systematic thinking and problem solving • Abstraction and data modeling • Did we mention that you need to practice?

  7. PRACTICE! “I've often thought that sucking less every year is how humble programmers improve. You should be unhappy with code you wrote a year ago.” - Jeff Atwood, http://www.codinghorror.com/ “I have no talent. What I do have is a lot of practice. And I am not talking about occasionally dabbling in Ruby on the weekends. I am talking about the kind of practice where I beat code that isn’t working into submission (though often times the code wins).” - John Nunemaker, http://railstips.org/

  8. Online Notes Wiki https://secure.ecs.soton.ac.uk/notes/comp1004/ leads to https://secure.ecs.soton.ac.uk/student/wiki/w/COMP1004

  9. Comp1004: Introduction II Starting Out

  10. In this lecture • What is Programming? • Programming Paradigms • A Taste of Things to Come • Classes and Objects • Variables • Logic • Data Structures

  11. What is Programming?

  12. What is Programming? • Wikipedia (2011) • “the process of writing, testing, debugging and maintaining the source code of computer programs. The purpose of programming is to create a program that exhibits a certain desired behavior.” • Thefreedictionary.com (2011) • “creating a sequence of instructions to enable the computer to do something” • OED (2011) • “The operation or practice of programming a computer; the writing or preparation of computer programs.”

  13. What is Programming? • Wikipedia (2011) • “the process of writing, testing, debugging and maintaining the source code of computer programs. The purpose of programming is to create a program that exhibits a certain desired behavior.” • Thefreedictionary.com (2011) • “creating a sequence of instructions to enable the computer to do something” • OED (2011) • “The operation or practice of programming a computer; the writing or preparation of computer programs.”

  14. What is Programming? • Wikipedia (2011) • “the process of writing, testing, debugging and maintaining the source code of computer programs. The purpose of programming is to create a program that exhibits a certain desired behavior.” • Thefreedictionary.com (2011) • “creating a sequence of instructions to enable the computer to do something” • OED (2011) • “The operation or practice of programming a computer; the writing or preparation of computer programs.”

  15. What is Programming? • Wikipedia (2011) • “the process of writing, testing, debugging and maintaining the source code of computer programs. The purpose of programming is to create a program that exhibits a certain desired behavior.” • Thefreedictionary.com (2011) • “creatinga sequence of instructions to enable the computer to do something” • OED (2011) • “The operation or practice of programming a computer; the writing or preparation of computer programs.”

  16. Programming Flavours • Procedural (e.g. C or Pascal) • Fixed list of instructions • Do this, Do that, if this then do that • Declarative • More like declaring rules (or a grammar) • Behaviour emerges from the rules being applied • Examples • Functional Programming (e.g. Scheme) • Logic Programming (e.g. Prolog)

  17. Object Orientated The main idea • Everything is a Thing • A Program is made up of Things interacting • Things have both properties and behaviours • E.g. Dog • What are the properties of a dog? • What can a dog do?

  18. Classes and Objects All the properties of Dogcan be wrapped up or contained in a class • A class is like a Blue Print • We can build many unique dogs from the same Blue Print • These are called objects • They all have similar properties as defined by the class 101 Objects 1 Class http://www.animalblueprintcompany.com/

  19. Building Blocks • Objects and Classes are specific to Object Orientated Programming • But there are more common, more fundamental Programming Principles that we will be covering in the course

  20. Variables • Like algebra x = 4 • Not so much like algebra name = “Rover” • Object properties are stored in variables

  21. Methods • Blocks of code that define a sequence of actions • Object behavior is defined in methods • Often this will use the object’s properties printDogsDetails() { print name; print age; }

  22. Logic True or False – the basis of all decisions

  23. Control Flow • If statements if size<10 dog says “Yip Yip” else dog says “Ruff Ruff” • Loops while(number<10) dog says “Bark!” number= number +1 Side Note: Human readable versions of programs are called Pseudocode. They look like real programs but are not as precisely defined. They are good for communicating ideas and showing structure.

  24. Data Structures • More complex data… • Arrays: • Like Lists, Tables, Matrices • HashMaps • Associate a key with a value • Like a Dictionary

  25. Summary • What is Programming? • Programming Paradigms • A Taste of Things to Come • Classes and Objects • Variables • Logic • Data Structures

More Related