220 likes | 894 Views
Introduction to Programming. Tutor: Bill Keller Office: 3R347a Email: billk@sussex.ac.uk. 1.0. Object Oriented Programming Using Java and BlueJ. Taken by first-year undergraduates in: Computer Science, Multimedia & Digital Systems, Computing &Artificial Intelligence,
E N D
Introduction to Programming Tutor: Bill Keller Office:3R347a Email:billk@sussex.ac.uk Introduction to Programming 1.0
Object Oriented Programming Using Java and BlueJ Taken by first-year undergraduates in: • Computer Science, • Multimedia & Digital Systems, • Computing &Artificial Intelligence, • Computer Science with Management Studies, • Internet Computing, • Music Informatics • Information Technology for eCommerce Plus some others (e.g. V/E and Maths with CS) Introduction to Programming
Course Book David J. Barnes & Michael KöllingObjects First with JavaA Practical Introduction using BlueJ (Third Edition)Pearson Education, 2006ISBN 0-13-197-629X Introduction to Programming
What is BlueJ? • A development environment for Java • Aimed at novice programmers, but not a cut-down version of Java • Allows us to get to grips with “objects first” • Allows us to create and interact with objects before getting to grips with Java syntax Introduction to Programming
General Information • Three lectures per week. • There will be a (multi-part) assessed programming exercise. • Instructions for submission will be given later. • Everyone attends at least one two hour programming lab each. • Lab assignments are not to be handed in. • Help with these will be given at the lab classes. • Some of the lectures may be used to discuss solutions to exercises. Introduction to Programming
Assessment Coursework (handed in this term) worth 50% • A multi-part programming exercise that builds towards a single program: • each part will have a separate submission deadline • each part will consist of the code from the previous part plus some new code • the mark for each part will be the mark for this new code, independent of the previous part • initial feedback will be given for each part after the deadline • the model answers to previous parts can be used in subsequent parts • the whole lot will be marked after the final submission • your final coursework mark will be computed by adding up your marks for each part • Exam (in Summer term) worth 50% Introduction to Programming
Teaching Times Lectures will be the following times: • Tuesday 10.00 – 11.00 in JMS 1A01 • Thursday 11.00 -12.00 in JMS 1A01 • Friday 12.00 – 1.00 in JMS 1A01 Lectures are compulsory! Introduction to Programming
Lab Classes Everyone attends one lab per week: • Tuesday 11.00 -- 13.00 in C1003 • Tuesday 14.00 -- 16.00 in C1003 • Tuesday 16.00 -- 18.00 in C1003 • Friday 14.00 -- 16.00 in C1003 • Friday 16.00 -- 18.00 in C1003 Lab classes are compulsory! Introduction to Programming
Additional Drop-in Lab Classes • Extra classes may be made available each week on an as-needed basis. • Highly recommended for anyone new to object-oriented programming • Times will be announced shortly. Introduction to Programming
Other Sources of Help • Study Direct site: • course notes and information • exercises and activities • discussion forums….. • Books • Peer Assisted Learning scheme (PAL) - drop-in study groups led by someone who has recently taken the course • Me!! Introduction to Programming
AndRemember….. DON'T PANIC! (BUT DO SEEK HELP IF YOU ARE STUCK) Introduction to Programming
Course Contents • Introduction to object-oriented programming… • …with a strong software engineering foundation… • …aimed at producing and maintaining large, high-quality software systems. Introduction to Programming
Buzzwords interface responsibility-driven design iterators inheritance overriding coupling cohesion encapsulation javadoc mutator methods collection classes polymorphic method calls Introduction to Programming
Goals • Sound knowledge of programming principles • Sound knowledge of object-orientation • Able to critically assess the quality of a (small) software system • Able to implement a small software system in Java • Able to program well enough in Java to form basis for other courses Introduction to Programming
Why Java? • Designed with Internet applications in mind • Rapidly becoming one of the most important programming languages (along with C and C++) • Object Oriented - encourages very disciplined programming in terms of “objects” and their behaviours • Architecture neutral and portable - will run with the same behaviour on any processor and under any operating system Introduction to Programming
Applications and Applets • There are two types of Java program: • Applications are just like any normal computer program which you execute by giving an appropriate command to the operating system • Applets are programs which execute from within a web browser. The browser downloads the (compiled) Java program from the web page, and runs it on your machine. • This course will concentrate on applications. Introduction to Programming
Java - which version? • About 8 years ago, Java underwent a major revision (version 1.0 to 1.1) • changed various features of the language • It was a major functional change • More recently we’ve seen Java 1.2, 1.3, 1.4, and in the last couple of years 1.5 (aka Java 5) and 1.6 (Java SE 6). • Java 5 made some notable functional changes to the language, introducing e.g. for each loops and generic classes. • The change to Java SE 6 is less visible as far as we are concerned. • We will be using the third edition of Objects First with Java, which uses Java 5. • In the labs we will be running code with Java SE 6. Introduction to Programming
The Structure of Java • Java is made up of the basic language plus lots of packages (libraries) containing useful facilities: • java.lang is included automatically • other official packages have to be explicitly importedinto your program • local and other 3rd party libraries also have to be imported. Introduction to Programming
Course Overview: This Term • Objects and classes • Understanding class definitions • Object interaction • Grouping objects • More sophisticated behaviour - libraries • Well-behaved objects - testing, maintaining, debugging • Designing classes Introduction to Programming
Course Overview: Next Term • Inheritance • Polymorphism • Extendable, flexible class structures • Handling errors • Designing applications Introduction to Programming
To Do This Week • Get into the labs • Read the online course documentation on Study Direct • Read chapter 1 of Objects First with BlueJ • Fire up BlueJ • Have a go at the exercises from chapter 1 Introduction to Programming