Presentation on theme: "CITS1001 OBJECT ORIENTED PROGRAMMING AND SOFTWARE ENGINEERING Semester 1, 2015: Introduction and Admin Dr. Lyndon While Computer Science & Software Engineering."— Presentation transcript:
CITS1001 OBJECT ORIENTED PROGRAMMING AND SOFTWARE ENGINEERING Semester 1, 2015: Introduction and Admin Dr. Lyndon While Computer Science & Software Engineering
Unit objectives In CITS1001 you will learn how to write simple computer programs using the Java programming language Today’s lecture will give you an overview of the unit and what you will have learnt by the end of the semester 2 Computer Science is no more about computers than Astronomy is about telescopes. (Edsger Dijkstra)
Unit philosophy CITS1001 is a first programming unit No prior programming experience is assumed But students’ backgrounds vary widely! No one can turn you into a productive programmer in one three-month course CITS1001 is the first in a sequence of units giving you A detailed understanding of programming and software engineering Excellent problem-solving skills Exposure to a wide range of topics in ICT 3
Lectures Two lectures/week Noon on Tuesdays in Wilsmore LT Noon on Thursdays in Ross LT The lecture slides will be available from the unit web-site All lectures are recorded, and the recordings will be available via the LMS But note that sometimes recordings fail! Nothing else in CITS1001 will be available via the LMS Lectures may occasionally be cancelled, e.g. during projects This will be announced well in advance 4
Labs The labs are where you practice creating programs The exercises for each lab will be on a lab-sheet on the web-site Supervised labs will be held in 2.05, starting in Week 2 Several sessions are available Two hours of each session are supervised Enroll yourself in one session But feel free to attend as many sessions as you like Or to do the work at other times Free Wi-Fi is also available So bring your laptop! 5
Workshops 2pm on Fridays in Weatherburn LT, starting in Week 2 No new material Student-driven questions Additional examples complementing the lectures Aimed principally at students who feel they need extra support All questions are welcome, but priority will be given to more-basic questions 6 The only stupid question is the one that isn’t asked!
Online Everything that is distributed in CITS1001 will be on The only exception is the lecture recordings, which will be available via the LMS Familiarise yourself with the web-site! You need to be able to find things quickly when required 7 http://undergraduate.csse.uwa.edu.au/courses/CITS1001
READ FIRST: if the answer is not there, THEN POST help1001 Online discussion forum, based on the philosophy of Asking questions is useful Normally the quickest way to get help Sometimes just formulating a question properly is enough for you to realise what the answer is Answering questions is useful Explaining something helps you to understand it And it generates good karma too! 8
Announcements Announcements will be made in three places On the unit noticeboard on the web-site In CITS1001 lectures On help1001 9 When an announcement has been made in these three places, we will assume that you are aware of it.
Text and other resources The text in CITS1001 is Objects First with Java, Barnes and Kölling, Fifth edition Earlier editions should be fine Other useful resources are available on the web-site But there are thousands of Java resources out there Go and look! If you find something useful, please post a message on help1001 so others can benefit 10
BlueJ Programming activities in the CITS1001 labs will be based on the BlueJ IDE “A free Java development environment designed for beginners” You can download BlueJ for your home machine for free at www.bluej.orgwww.bluej.org It is available for all major platforms You can use any Java system you like at home But all work submitted for assessment will be tested on BlueJ 11
Assessment Assessment is based on both understanding concepts and on creating systems Mid-semester test Two programming projects Final exam Everyone here is capable of passing CITS1001 But history tells me that 10-20% of the group will fail Which subset do you want to be in? 12
Seeking help There are many avenues for getting help in CITS1001 Ask questions in or after lectures Lab supervisors The workshop help1001 Consultation times www.student.uwa.edu.au/learning The world-wide web The only stupid question is the one that isn’t asked! In a group this size, if you don’t understand something, certainly there will be others in the same situation 13
UWA compulsory online modules All students are required to complete three online learning modules Academic Conduct Essentials Communication and Research Skills Indigenous Study Essentials www.student.uwa.edu.au/learning/resources has the details of these modules www.student.uwa.edu.au/learning/resources 14
Things to do this week Set up your UWA computer account www.ecm.uwa.edu.au/students/itsupportnew Sign up in OLCR for a lab class (but labs start in Week 2) Print out these lecture notes And review them! Get a copy of the text And start reading it! Familiarise yourself with the unit web-site Install BlueJ on your home computer And if you will be using your laptop on UWA’s Wi-Fi, set up Unifi wireless access 15
What is a computer program? A sequence of elementary instructions, that when followed achieves a specified goal A procedure, a recipe, an algorithm 1. Heat oil in wok. 2. Stir fry 1 clove garlic, 1 tbsp black beans, 100g meat. 3. Add 2 small bok choy and toss to coat. 4. Scatter a pinch of sugar and add 2 tbsp water. 5. Reduce heat, cover, and cook for two minutes. 6. Serve with rice. Stephanie Alexander, the cook’s companion 16
What is a programming language? A program for a computer to follow must be expressed completely unambiguously There are many different programming languages in which programs can be written In order to write a working program, you need to learn the vocabulary and syntax of the language, so you can write statements that make sense how to make sequences of legal statements that do simple tasks how to express what you want the computer to do in a simple enough way to translate into the programming language Similar to learning the words, how to form sentences, and how to write a story, in learning a human language 17
Programming in the large Most important computer programs these days run continuously respond to input from users and other programs deliver output to users and other programs are programmed by large teams of programmers are too big and complex for any one person to understand For example, a web browser responds to mouse clicks and text entries communicates with computers across the Internet formats and displays web pages starts up “helper applications” as necessary 18
Complexity Writing programs is largely about managing complexity How is something complex organized in the real world? Consider a restaurant... Diners want meals Chefs prepare dishes Waiters take orders, and bring food to the tables Busboys collect and wash plates Barmen prepare and serve drinks The maitre’d makes reservations and seats diners 19 Each type of person provides a narrow range of services. The restaurant involves the co-operative interaction of all the restaurant staff and clients.
Object Orientation 20 JanBobTed DinerWaiterChef Chicken and bok choy, please No. 14 and No. 67 Ding! Your meal, madam
Object Oriented Programming OOP refers to the process of designing and implementing a program as a co-operative community of interacting objects objects provide a small number of relatively simple services objects communicate to exchange information complex behaviour is achieved by the co-operation of objects Using objects allows us to focus on a problem at a high level without worrying about the minor details That is, we use ABSTRACTION to manage COMPLEXITY 21
What does OOP provide? Complexity management encapsulation and information hiding work on the principle that objects should interact only through pre-specified interfaces software development can be divided between independent teams Reusable software class libraries provide easy access to many standard services developing software components that match the reliability and interchangeability of hardware components is an elusive goal Natural modelling problem identification, system design, and program implementation all follow the same process 22