Introduction to the coursework for CI228
|
|
- Annabel Ellis
- 6 years ago
- Views:
Transcription
1 Introduction to the coursework for CI228 It is very unlikely that you would be able to complete this coursework without attending lectures and tutorials and following the suggested completion deadlines. Part 1 To complete several small Java programs, to help refresh your programming skills. You should complete exercises 1.1 & 1.2 by the end of week 1 You should complete exercises 2.1, 2.2 & 2.3 by the end of week 4 at the latest. Part 2 To enhance/ improve parts of the CatShop system This is composed of 5 sections worth in total 80% of the marks for the coursewwork. 3.1 & 3.2 worth 10% each. (20% Total) 3.3,3.4 & 3.5 worth 20% each. (60% Total) Remember the tutorials are an integrated part of this assignment and provide guidance to the construction of the programs. M A Smith University of Brighton September 25, 2014 Page 1
2 Deadlines When Deadline for Mon Tue Wed Thu Fri Sat Sun Part 1 Week 4 by 2/11/ :30 CE Part 2 Week 11 11/01/ :30 CS Demonstration Week 12 Mon Jan 12 - Fri Jan In your tutorial slot (Fill in) CE Charon exercises (Worth 20%) CS Completed CatShop system, plus supporting documentation. (Worth 80%) T Your tutorial slot in week 12. Fill in your tutorial slot day as indicated by your course timetable. Remember the demonstration is an integral part of the assignment. M A Smith University of Brighton September 25, 2014 Page 2
3 Helping your fellow students Please do not share code solutions with your fellow students. This will not help them and in fact may well hinder their learning in this module. By all means help your fellow students, by helping them with compile time and logical errors with in their program. You will probably find that this gives you a greater understanding of programming. Plagiarism/ Collusion etc. Your submission will automatically be submitted to the turnitin plagiarism detection system. M A Smith University of Brighton September 25, 2014 Page 3
4 Part 1 - Introductory exercises Summary of BIO Static method call BIO.getInt() BIO.getDouble() BIO.getString() Description Read a line and return as an int the number that is contained within the line. If the number is malformed then return 0. Read a line and return as a double the number that is contained within the line. If the number is malformed then return 0.0. Read a line and return as an instance of a String the characters that are contained within the line. Leading and trailing white space (tab or space characters) will be removed. If during a read the end of input is detected a warning message will be printed and the program will terminate. M A Smith University of Brighton September 25, 2014 Page 4
5 1.1 Easy, Familiarisation with the Charon system and Eclipse Brief Construct an application in Java to: write the message Hello Brighton to the terminal window. Expected output Submitting to Charon Hello Brighton Remember to submit the whole application which must have the class name Main to the Charon system. Eclipse When trying this with Eclipse you will also need to create the class BIO M A Smith University of Brighton September 25, 2014 Page 5
6 1.2 Easy, Familiarisation with the Charon system and Eclipse Brief Construct an application in Java to: Read in an integer number (will always be between 1-25) and print the times table corresponding to this number. The class BIO is automatically included when you use BlueJ or submit a program to Charon. If you want to use this at home then you need to include the code for the class BIO (see programs on web site) in your program. Input data Commentary Input 8 Time table Expected output 1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64 9 * 8 = * 8 = * 8 = * 8 = 96 Submitting to Charon Hints Remember to submit the whole application which must have the class name Main to the Charon system. Remember any line printed that contains a # will not be considered as part of your answer. This is so that you can write out a meaningful prompt (containing a # character) for any data required and this line of text will be ignored in the comparison of your answer. Use printf to control the layout of the numbers in your answer. M A Smith University of Brighton September 25, 2014 Page 6
7 Rounding errors with doubles and floats. Using an instance of a double or float to represent a monetary amount is not always a good idea because of rounding errors For example, in Java the result of calculating does not equal exactly 3.6. However, if you only print the result to a few decimal places then the answer will look correct. class Main public static void main( String args[] ) double sum = ; double result = sum; System.out.printf( "%30.28f\n", sum ); System.out.printf( "%30.28f\n", 3.6 ); System.out.printf( "%30.28f\n", result ); A double has about 16 decimal digits of accuracy. Do look up floating point numbers. Hence Holding a monetary amount in a double is not always a good idea, as rounding errors will lead to discrepancies in the 'money' held. Accountants would not be pleased. M A Smith University of Brighton September 25, 2014 Page 7
8 In relationship to the class Account class Account private double thebalance = 0.00; //Balance of account private double theoverdraft = 0.00; //Overdraft allowed public double getbalance() return thebalance; public double withdraw( final double money ) assert money >= 0.00; if ( thebalance - money >= theoverdraft ) thebalance = thebalance - money; return money; else return 0.00; public void deposit( final double money ) assert money >= 0.00; thebalance = thebalance + money; public void setoverdraftlimit( final double money ) theoverdraft = money; public double getoverdraftlimit() return theoverdraft; and the interfaces Transfer & Interest interface Interest public boolean incredit(); public void creditcharge(); //Is account in credit //Add credit charge (Daily) interface Transfer public boolean transferfrom( Account from, double amount ); public boolean transferto( Account to, double amount ); M A Smith University of Brighton September 25, 2014 Page 8
9 2.1 Easy / Moderate - but carefully read the description Brief Construct the class AccountBetter1: The class AccountBetter1 inherits from the class Account and implements the interface Transfer. The interface Transfer is defined as: Submitting to Charon Important interface Transfer public boolean transferfrom(account from, double amount); public boolean transferto(account to, double amount); Then: mike.transferfrom( miri, ); would transfer from miri (An instance of an Account) to mike (An instance of the class AccountBetter1). and mike.transferto( miri, ); would transfer from mike (An instance of AccountBetter1) to miri (An instance of Account). The boolean result returned is true if the transfer succeeded otherwise false. You should also return false for invalid transactions, such as attempting to transfer a negative amount of money. Submit only the class AccountBetter1 to the Charon system. The Charon system will provide the implementation of the class Account and the interface specification for Transfer. There should be no print statements in the class AccountBetter1. Do not change the implementation of class Account Using a double to represent money in a real application dealing with money is not a good idea, as small rounding errors can accumulate to give inaccurate results. M A Smith University of Brighton September 25, 2014 Page 9
10 Assuming appropriate declarations had been made the application shown below when run: class Main public static void main( String args[] ) AccountBetter1 mike = new AccountBetter1(); AccountBetter1 cori = new AccountBetter1(); Account miri = new Account(); mike.deposit( ); cori.deposit( ); miri.deposit( ); //Transfer from miri's account to mike's account mike.transferfrom( miri, ); //Transfer from mike's account to cori's account mike.transferto( cori, ); System.out.printf( "Mike = %5.2f\n", mike.getbalance() ); System.out.printf( "Miri = %5.2f\n", miri.getbalance() ); System.out.printf( "Cori = %5.2f\n", cori.getbalance() ); Would print: Mike = Miri = Cori = Extension Question (Easy): Why does mike.transferto( cori, ); compile and run, as cori is an instance of AccountBetter1. M A Smith University of Brighton September 25, 2014 Page 10
11 How the checking works When you submit your class AccountBetter1, an additional class Main is added to test you class, as well as the class Account to form a complete application. This application is then run which prints out the results from performing various transactions with an instance of your class AccountBetter1. The output from running this application is then compared against the output from running the code with a 'correct' version of AccountBetter1. What to do if the check fails If the check fails you will see a lot of output, but by looking at this output you will be able to see where your class delivered an incorrect result. Look first at the differences, then find these in the output from running your class. Work out why the differences have occurred. Example of part of the output from running the test Executing java Main Using the declarations: AccountBeter1 ab = new AccountBetter1(); Account a = new Account(); Then sending messages to these objects - gives: ab.deposit( ) ab.getbalance() -> a.getbalance() -> 0.00 a.deposit( ) ab.getbalance() -> a.getbalance() -> ab.transferto( a, ) -> returns true ab.getbalance() -> a.getbalance() -> ab.transferto( a, ) -> returns true ab.getbalance() -> a.getbalance() -> Which shows the result from messages sent to instances of the class Account & AccountBetter1. M A Smith University of Brighton September 25, 2014 Page 11
12 2.2 Moderate - but carefully read the description Brief Construct the class AccountBetter2: The class AccountBetter2 inherits from the class AccountBetter1 (written for exercise 2.1) and implements the interface Interest. The interface Interest is defined as: interface Interest boolean incredit(); //Is account in credit void creditcharge(); //Add credit charge (Daily) The method incredit returns true if the account is in credit (thebalance >= 0.0 ) and false otherwise. The method creditcharge is responsible for implementing a charge for credit if the account is overdrawn. The method will be called at the end of each day to work out the charge for any overdraft. Overdrawn accounts are currently charged 10% interest on the amount the account is overdrawn. When this method is called any balance overdrawn is multiplied by and this amount is deducted from the account. Thus if this method is called every day it will equate to an annual interest rate of 10% on the negative balance. Special instructions Important Hints Submit only the class AccountBetter2 that you have written to the Charon system. Do not change the implementation of class Account or class AccountBetter1. Think, about the case when deducting interest from the account will not be possible as the overdraft limit check will prevent this. You will need to change the overdraft limit to allow this withdrawal (for the interest charged) to happen, but not any other 'normal' withdrawals after this to take place. M A Smith University of Brighton September 25, 2014 Page 12
13 2.3 Moderate - but read carefully the description Brief Construct the class AccountStudent: The class Account Student inherits from the class AccountBetter2 (Written for exercise 2.2) This class overrides the method creditcharge so that a student account is not charged interest if the overdraft is less than or equal to 5,000. When an account is overdrawn by more then 5,000 then interest is charged on a daily bases on the full overdrawn amount. Thus if the account is overdrawn by 5,000 on a single day no interest is charged. If however, the next day the account is overdrawn by more than 5, then interest for that day would be charged on the whole overdrawn amount. Overdrawn accounts are currently charged 10% interest on the amount the account is overdrawn. This is calculated by multiplying the overdrawn balance by each day. When interest is calculated (using this rate) on all the days of a year it will equate to an annual interest rate of 10%. Special instructions Important Hints Submit only the class Account Student that you have written to the Charon system. Do not change the implementation of class Account class AccountBetter1 or class AccountBetter2 Think about the Java concept of overriding. To benefit fully from this exercise write a comprehensive program to test your class AccountBetter2 M A Smith University of Brighton September 25, 2014 Page 13
14 Part 2 The CatShop Overview [80% of c/w marks] This part of the coursework is the completion/enhancement of a 3 tired system that implements a computer system for the CatShop. Remember, that you need to start this part of the coursework at the times indicated. Like all coursework involving programming if you leave it to the last minute you will probably encounter a problem (that though simple to solve) will delay you sufficiently to prevent you completing most of this coursework on time. M A Smith University of Brighton September 25, 2014 Page 14
15 Exercises 3.3, 3.4 (3.5?) depend on exercise 3.2 working. Apart from this dependency the order of completion is immaterial. # Components to complete/ Implement 3.1 Using inheritance create a new class to provide enhanced functionality to the 10% original class Basket. Start and finish in weeks Complete the methods in the class Order that have been deliberately left 10% unfinished. Start and finish in weeks Produce a unit test for the class Order. The unit test should test the progression 20% of several orders through the system, from creation to collection. Start in week Enhance the Display client by using graphical components. Start in week 6 20% Any other enhancement(s) to the system 3.5 that you wish to make. 20% Start in week 6-8 M A Smith University of Brighton September 25, 2014 Page 15
16 About the CatShop part of the coursework Though a large amount of code is provided, you do not need to understand the details of much of this code base. By using OO techniques, modifications to a program can usually be isolated to a single class or at worst a few classes. For example, exercise 3.1 requires the completion of a single class plus (Not the best solution) a change to 1 line in another class. Exercises 3.2 & 3.3 require completing a single existing class. Exercise 3.4 will require an understanding of the architectural pattern MVC together with modifications to the code in the classes that compose this pattern for the shop display. Exercise 3.5 is an opportunity for you to demonstrate your programming skills by extending/ enhancing the CatShop system. M A Smith University of Brighton September 25, 2014 Page 16
17 3.1 Easy/ Moderate Brief Construct the class BetterBasket The class BetterBasket inherits from the class Basket (Core class of the CatShop) and should provide a better experience for users who interact with the system by: 1. Merging repeated product items into a single request for multiple product items. 2. Sorting the ordered items into ascending order (on the product key) The code given to you includes a skeleton implementation of the class BetterBasket. You will need to modify this class. In addition you will need to create a new instance of BetterBasket rather than Basket. The easiest way of doing this is to change the method makebasket in the class CashierModel to return a new instance of a BetterBasket. However a better way of doing this is to use the Factory method pattern in Main to create a new (inherited) version of CashierModel which overrides makebasket with a new method that returns an instance of a BetterBasket. This will mean that the major class CashierModel has not had to be changed. In fact you could have another cashier client running that exhibits the old behaviour. Remember, you must not change the code that accesses an instance of Basket in the rest of the CatShop system. Using the factory method pattern will gain higher marks. M A Smith University of Brighton September 25, 2014 Page 17
18 Hints One approach is to override the method add with the new functionality to merge and sort the contents of the basket after each new product is added. Do remember that an object retains its type, even after assignment. Do remember that you can assign an instance of a subclass to an instance of its super class. Do remember that there is one place in the CatsShop were an instance of a BetterBasket will need to be created. Do remember that Basket is inherited from an ArrayList<Product>. So that in any inherited class you can use the methods in the class ArrayList. Do remember that there is the method Collections.sort. M A Smith University of Brighton September 25, 2014 Page 18
19 3.2 Easy/ Moderate Brief Complete the class Order The class Order maintains the state of the orders in the system. Waiting Orders that can not be processed (picked) yet as all the pickers are busy collecting products from the warehouse shelves for other orders. Each picker process each order individually. Being Picked Orders that are currently being picked from the warehouse shelves. In the current system there are two 'pickers' but this may change. ToBeCollected Orders that are currently waiting at the collection desk for a customer to collect. Once collected the order is 'discarded' from the system. Once you have completed this class order the whole system will function to allow orders to be progressed through the system. Hints It may help to role play what happens in an instance of the class Order as individual clients interact with it. M A Smith University of Brighton September 25, 2014 Page 19
20 3.3 Moderate / Difficult Brief Construct a unit test for the class Order that you have completed. The aim to provide a test that checks the progression of orders through the system. You should think about providing some useful methods to help you do this. In particular think about (not exhaustive): 1. How extensible are your tests. 2. Is the code easy to follow, concise, easy to modify. Could you factor out some parts into seperate methods that complete part of a test. 3. Does it check for error conditions such as orders becoming lost, not being progressed correctly etc. Hints Do think about what could go wrong in the code of the class Order. Do check what happens when there are several orders in the system. Do check that the returned values from the methods are correct. Do simplify the code by factoring 'common code' sequences into a single method call. Sometimes writing a Unit test can be more difficult than writing the class that it is testing. M A Smith University of Brighton September 25, 2014 Page 20
21 3.4 Moderate / Difficult Brief Use graphics to better display to customers the current state of the orders in the computer system. You should still use the MVC architectural pattern, but enhance the display to better show to customers the state of the system. Think about (not exhaustive): 1. What information, should be shown. Could it be shown graphically. 2. Would it be better to display orders in sorted order. This can happen if items are picked by several pickers. 3. What happens if the orders can not all be displayed at once on the screen. Incorporate your enhanced display into the CatShop system. Hints Do look at how the MVC architectural pattern works. Do think about what the display will look like. Do think about using animation to enhance the visual experience of the customers. M A Smith University of Brighton September 25, 2014 Page 21
22 3.5 Easy / Moderate / Difficult Brief Implement any other enhancement(s) to the system that you wish to make. This is to allow you to correct/ enhance / make more realistic the system. Some suggestions (not exhaustive): 1. Easy Record the orders that have been collected for later analysis to a file. 2. Easy / moderate / difficult Allow for the case when a picker finds that a product is not in the warehouse. 3. Moderate / difficult Add a remove button to remove the last order added to the shopping basket. Assume that in the future more than one item of a particular product may have been added to the shopping basket in separate actions. Thus you need to remember the transactions carried out on the shopping basket so that they can be undone individually. 4. Difficult Create a new display client that is on a remote device such as an android table/ phone. You will need to run the distributed version of the CatShop system for this extension. This is deliberately vague to allow you to use your imagination and programming skills to add to the functionality of the CatShop. High marks will be awarded for a significant extension(s) to the CatShop system. Just changing the colour of the display is not significant. M A Smith University of Brighton September 25, 2014 Page 22
23 What to submit (Complete project) A single zip file ci228_your_name.zip containing the following directory structure: In the top level directory: doc A single pdf file that contains the written part of your course work. (See below) In the top level directory: src The source files of your implementation of the game. In the same form as the original directory structure in the file jd3.zip or jd3.tgz. The toplevel file 00Readme.txt that explains how to compile and run your program In the top level directory: class The class files to run your program. You need to test this so that it can be run by simply typing at a cmd windows whose current directory is at the package level of the CatShop class files. java clients/setup java clients/main Alternatively provide a jar file for the applications with appropirate instructions to run java -jar Setup.jar java -jar Main.jar What to submit (Written part only) The pdf file to the turnitin system (More details later) M A Smith University of Brighton September 25, 2014 Page 23
24 Written part of your coursework index The class BetterBasket Listing (Your code highlighted) Critique of your code Testing/ Example of output For the class Order Listing (Your code highlighted) Critique of your code Testing/ Example of output Testing of the class Order using a JUnit test Listing (Your code highlighted) Critique of your unit test Testing/ Example of output Code for the Client Display Listing (Your code highlighted) Critique of your code Testing/ Example of output Your extension(s) / modification(s) Listing (Your code highlighted) Critique of your work Testing/ Example of output M A Smith University of Brighton September 25, 2014 Page 24
25 What is a listing of your code A neatly indented code listing, with appropriate comments neatly laid out so that another programmer could easily follow your code. The code listing should be in a non proportional font for example Courier. (Minimum size 9 point) You should also show any lines of code that you have changed in the rest of the application. For example, in completing the class BetterBasket you at some point would need to create an instance of BetterBasket that is used by the cashier client. Do remember, that a badly laid out program will have a negative impact on the marks awarded. For example, in Question 3.2 only show the methods that you have completed in the class Order, you do not need to show any method in this class Order that you have not changed. What is a critique of your code A description with critical comment on the implementation route taken. You should include reflection on any advantages / limitations to your code as well as the general approach that you have taken. What is testing/ Examples of output Test data you used, with expected results. Evidence of this for example (screen shots) of your program giving the expected results. Any Unit testing that you have done. M A Smith University of Brighton September 25, 2014 Page 25
CI228 CI228 Tutorials
CI228 M A Smith University of Brighton September 13, 2016 Page 1 BIO - Basic Input Output Input of an integer number The static method BIO.getInt() will read from the keyboard an integer number typed by
More informationIn the following description the h: drive is used to indicate the directory in which during the actual ci101 exam the files used will reside.
Important In the following description the h: drive is used to indicate the directory in which during the actual ci101 exam the files used will reside. However, if you are trying the exam system out yourself
More informationSCHOOL OF COMPUTING, ENGINEERING AND MATHEMATICS SEMESTER 2 EXAMINATIONS 2014/2015 CI101/CI101H. Programming
s SCHOOL OF COMPUTING, ENGINEERING AND MATHEMATICS SEMESTER 2 EXAMINATIONS 2014/2015 CI101/CI101H Programming Time allowed: THREE hours Answer: ALL questions Items permitted: Items supplied: There is no
More informationCSSE2002/7023 The University of Queensland
CSSE2002 / CSSE7023 Semester 1, 2016 Assignment 1 Goal: The goal of this assignment is to gain practical experience with data abstraction, unit testing and using the Java class libraries (the Java 8 SE
More informationSCHOOL OF COMPUTING, ENGINEERING AND MATHEMATICS SEMESTER 1 EXAMINATIONS 2015/2016 CI101 / CI177. Programming
s SCHOOL OF COMPUTING, ENGINEERING AND MATHEMATICS SEMESTER 1 EXAMINATIONS 2015/2016 CI101 / CI177 Programming Time allowed: THREE hours: Answer: ALL questions Items permitted: Items supplied: There is
More informationM A Smith University of Brighton January 12, 2015 Page 1
Semester 1 CI228 Object oriented software development M A Smith University of Brighton January 12, 2015 Page 1 This is a copy of some of the slides used in the 'Software implementation in Java' part of
More informationM A Smith University of Brighton October 25, 2016 Page 1
Semester 1 CI228 Object oriented software development M A Smith University of Brighton October 25, 2016 Page 1 This is a copy of some of the slides used in the 'Software implementation in Java' part of
More informationM A Smith University of Brighton November 23, 2015 Page 1
Semester 1 CI228 Object oriented software development M A Smith University of Brighton November 23, 2015 Page 1 This is a copy of some of the slides used in the 'Software implementation in Java' part of
More informationThis is a copy of some of the slides used in the 'Software implementation in Java' part of the module CI228.
This is a copy of some of the slides used in the 'Software implementation in Java' part of the module CI228. It is presented to you in the hope that it will be useful and reduce some of the burden of taking
More informationThis is a copy of some of the slides used in the 'Software implementation in Java' part of the module CI228.
This is a copy of some of the slides used in the 'Software implementation in Java' part of the module CI228. It is presented to you in the hope that it will be useful and reduce some of the burden of taking
More informationDo this by creating on the m: drive (Accessed via start menu link Computer [The m: drive has your login id as name]) the subdirectory CI101.
Creating and running a Java program. This tutorial is an introduction to running a computer program written in the computer programming language Java using the BlueJ IDE (Integrated Development Environment).
More informationCSCI 1301: Introduction to Computing and Programming Spring 2018 Project 3: Hangman 2.0 (A Word Guessing Game)
Introduction In this project, you are going to implement the word guessing game, Hangman 2.0. Your program is going to get a random word from an enumerated list (instructions below) and then let the user
More informationStoring Data in Objects
Storing Data in Objects Rob Miles Department of Computer Science 28d 08120 Programming 2 Objects and Items I have said for some time that you use objects to represent things in your problem Objects equate
More informationPlease do not share code solutions with your fellow students. This will not help them and in fact may well hinder their learning in this module.
Extension coursework for Helping your fellow students Please do not share code solutions with your fellow students. This will not help them and in fact may well hinder their learning in this module. By
More informationThis is a copy of the notes used in the module CI01.
CI101 This is a copy of the notes used in the module CI01. It is presented to you in the hope that it will be useful and reduce some of the burden of taking notes during the lectures. However, it will
More informationCOMP Assignment 1
COMP281 2019 Assignment 1 In the following, you will find the problems that constitute Assignment 1. They will be also available on the online judging (OJ) system available at https://student.csc.liv.ac.uk/judgeonline
More informationPace University. Fundamental Concepts of CS121 1
Pace University Fundamental Concepts of CS121 1 Dr. Lixin Tao http://csis.pace.edu/~lixin Computer Science Department Pace University October 12, 2005 This document complements my tutorial Introduction
More informationHigh Performance Computing MPI and C-Language Seminars 2009
High Performance Computing - Seminar Plan Welcome to the High Performance Computing seminars for 2009. Aims: Introduce the C Programming Language. Basic coverage of C and programming techniques needed
More informationCS 1803 Pair Homework 3 Calculator Pair Fun Due: Wednesday, September 15th, before 6 PM Out of 100 points
CS 1803 Pair Homework 3 Calculator Pair Fun Due: Wednesday, September 15th, before 6 PM Out of 100 points Files to submit: 1. HW3.py This is a PAIR PROGRAMMING Assignment: Work with your partner! For pair
More informationA Fraction Class. Using a Fraction class, we can compute the above as: Assignment Objectives
A Fraction Class Assignment Objectives What to Submit Evaluation Individual Work Write a Fraction class that performs exact fraction arithmetic. 1. Practice fundamental methods like equals, tostring, and
More informationASSIGNMENT 5 Objects, Files, and More Garage Management
ASSIGNMENT 5 Objects, Files, and More Garage Management COMP-202B, Winter 2010, All Sections Due: Wednesday, April 14, 2009 (23:55) You MUST do this assignment individually and, unless otherwise specified,
More informationLab Exercise 6: Abstract Classes and Interfaces CS 2334
Lab Exercise 6: Abstract Classes and Interfaces CS 2334 September 29, 2016 Introduction In this lab, you will experiment with using inheritance in Java through the use of abstract classes and interfaces.
More informationCS 315 Software Design Homework 3 Preconditions, Postconditions, Invariants Due: Sept. 29, 11:30 PM
CS 315 Software Design Homework 3 Preconditions, Postconditions, Invariants Due: Sept. 29, 11:30 PM Objectives Defining a wellformed method to check class invariants Using assert statements to check preconditions,
More informationSoftware Engineering Large Practical (Android version) 2013/2014
Software Engineering Large Practical (Android version) 2013/2014 Professor Stephen Gilmore School of Informatics Issued on: Wednesday 18 th September, 2013 About The Software Engineering Practical is available
More informationInf1-OP. Inf1-OP Exam Review. Timothy Hospedales, adapting earlier version by Perdita Stevens and Ewan Klein. March 20, School of Informatics
Inf1-OP Inf1-OP Exam Review Timothy Hospedales, adapting earlier version by Perdita Stevens and Ewan Klein School of Informatics March 20, 2017 Overview Overview of examinable material: Lectures Week 1
More informationSCHOOL OF COMPUTING, ENGINEERING AND MATHEMATICS SEMESTER 2 EXAMINATIONS 2013/2014 CI101/CI101H. Programming
s SCHOOL OF COMPUTING, ENGINEERING AND MATHEMATICS SEMESTER 2 EXAMINATIONS 2013/2014 CI101/CI101H Programming Time allowed: THREE hours Answer: ALL questions Items permitted: Items supplied: There is no
More informationObjectives. Problem Solving. Introduction. An overview of object-oriented concepts. Programming and programming languages An introduction to Java
Introduction Objectives An overview of object-oriented concepts. Programming and programming languages An introduction to Java 1-2 Problem Solving The purpose of writing a program is to solve a problem
More informationCS 6353 Compiler Construction Project Assignments
CS 6353 Compiler Construction Project Assignments In this project, you need to implement a compiler for a language defined in this handout. The programming language you need to use is C or C++ (and the
More informationAnnouncements. 1. Forms to return today after class:
Announcements Handouts (3) to pick up 1. Forms to return today after class: Pretest (take during class later) Laptop information form (fill out during class later) Academic honesty form (must sign) 2.
More informationCOMP 202 Java in one week
COMP 202 Java in one week... Continued CONTENTS: Return to material from previous lecture At-home programming exercises Please Do Ask Questions It's perfectly normal not to understand everything Most of
More informationBasics of programming
0. Java summary Core char int double boolean short long float primitive types; int a = 2; int b = 2, c = 4; Declaration of a variable a = b; a = b + c; Assignment b + c; // Addition b - c; // Subtraction
More information5COS005W Coursework 2 (Semester 2)
University of Westminster Department of Computer Science 5COS005W Coursework 2 (Semester 2) Module leader Dr D. Dracopoulos Unit Coursework 2 Weighting: 50% Qualifying mark 30% Description Learning Outcomes
More informationCS/COE 1501
CS/COE 1501 www.cs.pitt.edu/~nlf4/cs1501/ Introduction Meta-notes These notes are intended for use by students in CS1501 at the University of Pittsburgh. They are provided free of charge and may not be
More informationCS/COE 1501 cs.pitt.edu/~bill/1501/ Introduction
CS/COE 1501 cs.pitt.edu/~bill/1501/ Introduction Meta-notes These notes are intended for use by students in CS1501 at the University of Pittsburgh. They are provided free of charge and may not be sold
More informationSemester 1 CI101/CI177. Java
Semester 1 CI101/CI177 Java Object oriented programming M A Smith University of Brighton March 20, 2017 Page 1 This is a copy of the notes used in the module CI01. It is presented to you in the hope that
More informationCSE 331 Final Exam 3/16/15 Sample Solution
Question 1. (12 points, 3 each) A short design exercise. Suppose Java did not include a Set class in the standard library and we need to store a set of Strings for an application. We know that the maximum
More informationCSE115 Introduction to Computer Science I Coding Exercise #7 Retrospective Fall 2017
This week the main activity was a quiz activity, with a structure similar to our Friday lecture activities. The retrospective for the quiz is in Quiz-07- retrospective.pdf This retrospective explores the
More informationInstructions PLEASE READ (notice bold and underlined phrases)
Assignment 4 Recursive and Sorting Methods Solutions Required Reading Java Foundations Chapter 13 Linked Structures Chapter 17 Recursion Chapter 18 Searching and Sorting Chapter 19 Trees Instructions PLEASE
More informationCpSc 1111 Lab 9 2-D Arrays
CpSc 1111 Lab 9 2-D Arrays Overview This week, you will gain some experience with 2-dimensional arrays, using loops to do the following: initialize a 2-D array with data from an input file print out the
More informationInheritance and Interfaces
Inheritance and Interfaces Object Orientated Programming in Java Benjamin Kenwright Outline Review What is Inheritance? Why we need Inheritance? Syntax, Formatting,.. What is an Interface? Today s Practical
More information12/22/11. Java How to Program, 9/e. Help you get started with Eclipse and NetBeans integrated development environments.
Java How to Program, 9/e Education, Inc. All Rights Reserved. } Java application programming } Use tools from the JDK to compile and run programs. } Videos at www.deitel.com/books/jhtp9/ Help you get started
More informationProject #1 Seam Carving
Project #1 Seam Carving Out: Fri, Jan 19 In: 1 Installing, Handing In, Demos, and Location of Documentation 1. To install, type cs016 install seamcarve into a shell in the directory in which you want the
More informationCOMP 202 Java in one week
CONTENTS: Basics of Programming Variables and Assignment Data Types: int, float, (string) Example: Implementing a calculator COMP 202 Java in one week The Java Programming Language A programming language
More informationEXAM Computer Science 1 Part 1
Maastricht University Faculty of Humanities and Science Department of Knowledge Engineering EXAM Computer Science 1 Part 1 Block 1.1: Computer Science 1 Code: KEN1120 Examiner: Kurt Driessens Date: Januari
More informationASSIGNMENT 5 Objects, Files, and a Music Player
ASSIGNMENT 5 Objects, Files, and a Music Player COMP-202A, Fall 2009, All Sections Due: Thursday, December 3, 2009 (23:55) You MUST do this assignment individually and, unless otherwise specified, you
More informationCMSC 150 INTRODUCTION TO COMPUTING LAB WEEK 3 STANDARD IO FORMATTING OUTPUT SCANNER REDIRECTING
CMSC 150 INTRODUCTION TO COMPUTING LAB WEEK 3 STANDARD IO FORMATTING OUTPUT SCANNER REDIRECTING INPUT AND OUTPUT Input devices Keyboard Mouse Hard drive Network Digital camera Microphone Output devices.
More informationJava Style Guide. 1.0 General. 2.0 Visual Layout. Dr Caffeine
September 25, 2002 Java Style Guide Dr Caffeine This document defines the style convention the students must follow in submitting their programs. This document is a modified version of the document originally
More informationCS 6353 Compiler Construction Project Assignments
CS 6353 Compiler Construction Project Assignments In this project, you need to implement a compiler for a language defined in this handout. The programming language you need to use is C or C++ (and the
More informationCSE 1325 Project Description
CSE 1325 Summer 2016 Object-Oriented and Event-driven Programming (Using Java) Instructor: Soumyava Das Project III Assigned On: 7/12/2016 Due on: 7/25/2016 (before 11:59pm) Submit by: Blackboard (1 folder
More informationRegis University CC&IS CS310 Data Structures Programming Assignment 2: Arrays and ArrayLists
Regis University CC&IS CS310 Data Structures Programming Assignment 2 Arrays and ArrayLists Problem Scenario The real estate office was very impressed with your work from last week. The IT director now
More informationHomework 09. Collecting Beepers
Homework 09 Collecting Beepers Goal In this lab assignment, you will be writing a simple Java program to create a robot object called karel. Your robot will start off in a world containing a series of
More informationgcc hello.c a.out Hello, world gcc -o hello hello.c hello Hello, world
alun@debian:~$ gcc hello.c alun@debian:~$ a.out Hello, world alun@debian:~$ gcc -o hello hello.c alun@debian:~$ hello Hello, world alun@debian:~$ 1 A Quick guide to C for Networks and Operating Systems
More informationMutating Object State and Implementing Equality
Mutating Object State and Implementing Equality 6.1 Mutating Object State Goals Today we touch the void... (sounds creepy right... see the movie, or read the book, to understand how scary the void can
More informationSoftware and Programming 1
Software and Programming 1 Lab 1: Introduction, HelloWorld Program and use of the Debugger 17 January 2019 SP1-Lab1-2018-19.pptx Tobi Brodie (tobi@dcs.bbk.ac.uk) 1 Module Information Lectures: Afternoon
More informationLecture Transcript While and Do While Statements in C++
Lecture Transcript While and Do While Statements in C++ Hello and welcome back. In this lecture we are going to look at the while and do...while iteration statements in C++. Here is a quick recap of some
More informationDecision-Making and Repetition
2.2 Recursion Introduction A recursive method is a method that call itself. You may already be familiar with the factorial function (N!) in mathematics. For any positive integer N, N! is defined to be
More informationACORN.COM CS 1110 SPRING 2012: ASSIGNMENT A1
ACORN.COM CS 1110 SPRING 2012: ASSIGNMENT A1 Due to CMS by Tuesday, February 14. Social networking has caused a return of the dot-com madness. You want in on the easy money, so you have decided to make
More informationCIS 121 Data Structures and Algorithms with Java Spring 2018
CIS 121 Data Structures and Algorithms with Java Spring 2018 Homework 2 Thursday, January 18 Due Monday, January 29 by 11:59 PM 7 Required Problems (85 points), and Style and Tests (15 points) DO NOT modify
More information1 Introduction Java, the beginning Java Virtual Machine A First Program BlueJ Raspberry Pi...
Contents 1 Introduction 3 1.1 Java, the beginning.......................... 3 1.2 Java Virtual Machine........................ 4 1.3 A First Program........................... 4 1.4 BlueJ.................................
More informationCOSC 243. Data Representation 3. Lecture 3 - Data Representation 3 1. COSC 243 (Computer Architecture)
COSC 243 Data Representation 3 Lecture 3 - Data Representation 3 1 Data Representation Test Material Lectures 1, 2, and 3 Tutorials 1b, 2a, and 2b During Tutorial a Next Week 12 th and 13 th March If you
More informationLab ACN : C++ Programming Exercises
Lab ACN : C++ Programming Exercises ------------------------------------------------------------------------------------------------------------------- Exercise 1 Write a temperature conversion program
More informationYou should now start on Chapter 4. Chapter 4 introduces the following concepts
Summary By this stage, you have met the following principles : the relationship between classes and objects that a class represents our understanding of something weʼre interested in, in a special and
More informationAssoc. Prof. Dr. Marenglen Biba. (C) 2010 Pearson Education, Inc. All rights reserved.
Assoc. Prof. Dr. Marenglen Biba (C) 2010 Pearson Education, Inc. All rights reserved. Java application A computer program that executes when you use the java command to launch the Java Virtual Machine
More informationCS 211 Programming Practicum Fall 2018
Due: Wednesday, 11/7/18 at 11:59 pm Infix Expression Evaluator Programming Project 5 For this lab, write a C++ program that will evaluate an infix expression. The algorithm REQUIRED for this program will
More informationPhiladelphia University Faculty of Information Technology Department of Computer Science --- Semester, 2007/2008. Course Syllabus
Philadelphia University Faculty of Information Technology Department of Computer Science --- Semester, 2007/2008 Course Syllabus Course Title: Advanced Databases Course Level: 4 Lecture Time: Course code:
More informationCollections, Maps and Generics
Collections API Collections, Maps and Generics You've already used ArrayList for exercises from the previous semester, but ArrayList is just one part of much larger Collections API that Java provides.
More informationAssoc. Prof. Dr. Marenglen Biba. (C) 2010 Pearson Education, Inc. All rights reserved.
Assoc. Prof. Dr. Marenglen Biba Laboratory Session: Exercises on classes Analogy to help you understand classes and their contents. Suppose you want to drive a car and make it go faster by pressing down
More informationInf1-OOP. OOP Exam Review. Perdita Stevens, adapting earlier version by Ewan Klein. March 16, School of Informatics
Inf1-OOP OOP Exam Review Perdita Stevens, adapting earlier version by Ewan Klein School of Informatics March 16, 2015 Overview Overview of examinable material: Lectures Topics S&W sections Week 1 Compilation,
More informationASSIGNMENT 5 Data Structures, Files, Exceptions, and To-Do Lists
ASSIGNMENT 5 Data Structures, Files, Exceptions, and To-Do Lists COMP-202B, Winter 2009, All Sections Due: Tuesday, April 14, 2009 (23:55) You MUST do this assignment individually and, unless otherwise
More informationIntroduction to Programming using C++
Introduction to Programming using C++ Lecture One: Getting Started Carl Gwilliam gwilliam@hep.ph.liv.ac.uk http://hep.ph.liv.ac.uk/~gwilliam/cppcourse Course Prerequisites What you should already know
More informationTips from the experts: How to waste a lot of time on this assignment
Com S 227 Spring 2018 Assignment 1 100 points Due Date: Friday, September 14, 11:59 pm (midnight) Late deadline (25% penalty): Monday, September 17, 11:59 pm General information This assignment is to be
More informationCS2 Practical 1 CS2A 22/09/2004
CS2 Practical 1 Basic Java Programming The purpose of this practical is to re-enforce your Java programming abilities. The practical is based on material covered in CS1. It consists of ten simple programming
More informationPart III Appendices 165
Part III Appendices 165 Appendix A Technical Instructions Learning Outcomes This material will help you learn how to use the software you need to do your work in this course. You won t be tested on it.
More informationThis course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units.
This course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units. Introduction Overview Advancements in technology are
More informationCMPSCI 187 / Spring 2015 Hangman
CMPSCI 187 / Spring 2015 Hangman Due on February 12, 2015, 8:30 a.m. Marc Liberatore and John Ridgway Morrill I N375 Section 01 @ 10:00 Section 02 @ 08:30 1 CMPSCI 187 / Spring 2015 Hangman Contents Overview
More informationGraded Project. Microsoft Excel
Graded Project Microsoft Excel INTRODUCTION 1 PROJECT SCENARIO 1 CREATING THE WORKSHEET 2 GRAPHING YOUR RESULTS 4 INSPECTING YOUR COMPLETED FILE 6 PREPARING YOUR FILE FOR SUBMISSION 6 Contents iii Microsoft
More informationSoftware Design and Analysis for Engineers
Software Design and Analysis for Engineers by Dr. Lesley Shannon Email: lshannon@ensc.sfu.ca Course Website: http://www.ensc.sfu.ca/~lshannon/courses/ensc251 Simon Fraser University Slide Set: 2 Date:
More informationICOM 4015 Advanced Programming Laboratory. Chapter 1 Introduction to Eclipse, Java and JUnit
ICOM 4015 Advanced Programming Laboratory Chapter 1 Introduction to Eclipse, Java and JUnit University of Puerto Rico Electrical and Computer Engineering Department by Juan E. Surís 1 Introduction This
More informationCSCI 355 Lab #2 Spring 2007
CSCI 355 Lab #2 Spring 2007 More Java Objectives: 1. To explore several Unix commands for displaying information about processes. 2. To explore some differences between Java and C++. 3. To write Java applications
More informationCMPSCI 187 / Spring 2015 Hanoi
Due on Thursday, March 12, 2015, 8:30 a.m. Marc Liberatore and John Ridgway Morrill I N375 Section 01 @ 10:00 Section 02 @ 08:30 1 Contents Overview 3 Learning Goals.................................................
More informationCourse Outline. Introduction to java
Course Outline 1. Introduction to OO programming 2. Language Basics Syntax and Semantics 3. Algorithms, stepwise refinements. 4. Quiz/Assignment ( 5. Repetitions (for loops) 6. Writing simple classes 7.
More informationDesign Patterns: State, Bridge, Visitor
Design Patterns: State, Bridge, Visitor State We ve been talking about bad uses of case statements in programs. What is one example? Another way in which case statements are sometimes used is to implement
More informationAP Computer Science Summer Work Mrs. Kaelin
AP Computer Science Summer Work 2018-2019 Mrs. Kaelin jkaelin@pasco.k12.fl.us Welcome future 2018 2019 AP Computer Science Students! I am so excited that you have decided to embark on this journey with
More informationCOMP-202 Unit 8: Defining Your Own Classes. CONTENTS: Class Definitions Attributes Methods and Constructors Access Modifiers and Encapsulation
COMP-202 Unit 8: Defining Your Own Classes CONTENTS: Class Definitions Attributes Methods and Constructors Access Modifiers and Encapsulation Defining Our Own Classes (1) So far, we have been creating
More informationDr. Manal Helal CC316:Object Oriented Programming, Fall 2015 AASTMT College of Engineering & Technology
OOP Term Project Ideas Goal: To learn how to build and evolve large-scale programs using object-oriented programming, and work in teams learning from each other. Topics: In exploring object-oriented programming,
More informationDue: 9 February 2017 at 1159pm (2359, Pacific Standard Time)
CSE 11 Winter 2017 Program Assignment #2 (100 points) START EARLY! Due: 9 February 2017 at 1159pm (2359, Pacific Standard Time) PROGRAM #2: DoubleArray11 READ THE ENTIRE ASSIGNMENT BEFORE STARTING In lecture,
More informationDue Date: Two Program Demonstrations (Testing and Debugging): End of Lab
CSC 111 Fall 2005 Lab 6: Methods and Debugging Due Date: Two Program Demonstrations (Testing and Debugging): End of Lab Documented GameMethods file and Corrected HighLow game: Uploaded by midnight of lab
More informationCS18000: Programming I
CS18000: Programming I Testing Basics 19 April 2010 Prof. Chris Clifton Testing Programs Your programs are getting large and more complex How do you make sure they work? 1. Reason about the program Think
More informationC++ Style Guide. 1.0 General. 2.0 Visual Layout. 3.0 Indentation and Whitespace
C++ Style Guide 1.0 General The purpose of the style guide is not to restrict your programming, but rather to establish a consistent format for your programs. This will help you debug and maintain your
More informationCS1 Lecture 3 Jan. 22, 2018
CS1 Lecture 3 Jan. 22, 2018 Office hours for me and for TAs have been posted, locations will change check class website regularly First homework available, due Mon., 9:00am. Discussion sections tomorrow
More informationOur first program is a simple calculator, which will carry out the arithmetic operations of adding, subtracting, multiplying and dividing numbers.
Chapter 2: Calculations 29 2 Calculations Most computer programs need to carry out calculations, for example: with money, quantities of materials, or dates and times. In this chapter, we will examine how
More informationLecture 02, Fall 2018 Friday September 7
Anatomy of a class Oliver W. Layton CS231: Data Structures and Algorithms Lecture 02, Fall 2018 Friday September 7 Follow-up Python is also cross-platform. What s the advantage of Java? It s true: Python
More informationStage 11 Array Practice With. Zip Code Encoding
A Review of Strings You should now be proficient at using strings, but, as usual, there are a few more details you should know. First, remember these facts about strings: Array Practice With Strings are
More informationLab 1: Silver Dollar Game 1 CSCI 2101B Fall 2018
Lab 1: Silver Dollar Game 1 CSCI 2101B Fall 2018 Due: Tuesday, September 18, 11:59 pm Collaboration Policy: Level 1 (review full policy for details) Group Policy: Individual This lab will give you experience
More informationProgramming Project 5: NYPD Motor Vehicle Collisions Analysis
: NYPD Motor Vehicle Collisions Analysis Due date: Dec. 7, 11:55PM EST. You may discuss any of the assignments with your classmates and tutors (or anyone else) but all work for all assignments must be
More informationCS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 3: SEP. 13TH INSTRUCTOR: JIAYIN WANG
CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 3: SEP. 13TH INSTRUCTOR: JIAYIN WANG 1 Notice Reading Assignment Chapter 1: Introduction to Java Programming Homework 1 It is due this coming Sunday
More informationSoftware and Programming 1
Software and Programming 1 Lab 8: Use of classes, static class variables and methods 1st March 2018 SP1-Lab8-2018.pdf Tobi Brodie (Tobi@dcs.bbk.ac.uk) 1 Lab 8 Objectives Understanding the encapsulation
More informationDepartment of Computer Science Purdue University, West Lafayette
Department of Computer Science Purdue University, West Lafayette Fall 2011: CS 180 Problem Solving and OO Programming Exam 1 Solutions Q 1 Answer the questions below assuming that binary integers are represented
More information15-110: Principles of Computing, Spring 2018
5-: Principles of Computing, Spring 28 Problem Set 8 (PS8) Due: Friday, March 3 by 2:3PM via Gradescope Hand-in HANDIN INSTRUCTIONS Download a copy of this PDF file. You have two ways to fill in your answers:.
More informationInf2C Software Engineering Coursework 3. Creating an abstract implementation of a tour guide app
Inf2C Software Engineering 2017-18 Coursework 3 Creating an abstract implementation of a tour guide app 1 Introduction The aim of this coursework is to implement and test an abstract version of software
More information