Brief Outline of Contents This Course Is Designed to Familiarize The

Total Page:16

File Type:pdf, Size:1020Kb

Brief Outline of Contents This Course Is Designed to Familiarize The Brief Outline of Contents This course is designed to familiarize the student with the advanced concepts and techniques in Java programming. Topics include: Comprehensive coverage of object-oriented programming with cooperating classes; Implementation of polymorphism with inheritance and interfaces; Programming with generics and Java collections; Programming with exceptions, stream input/output and graphical AWT and Swing Prerequisites Programming in Java or its equivalent. Learning Goals Understand the following. The relationships between classes Specification vs. implementation Be able to ... Specify programs Implement many of the features of Java, Standard Edition Test Java programs Required Textbook Y. Daniel Liang, "Introduction to Java Programming," Comprehensive Version, 7th Ed., Prentice Hall, 2007. ISBN-10: 0136012671 ISBN-13: 978-0136012672 Software Required JRE: Java Runtime Environment JDK Any version >= 1.5 (J2SE JDK is fine) IDE: Eclipse is fine (or any other JDK you are comfortable with, like JCreator, NetBeans) Evaluation of Student Work Rev2 Student work will be evaluated as follows. Assignments: 60% Quizzes: 10% Final: 30% 1 There will be an assignment approximately every two weeks; possibly one week at times. Quizzes will be introduced as needed with approximately a week's notice. They will count for 10% of the grade. One quiz does not count, allowing you one absence from class. Otherwise: All pass: A 80-89% passed: B 70-79% passed: C 60-69% passed: D Late homework will not be accepted unless there is a reason why it was not reasonably possible to perform the work in time given work and emergency conditions. In that case, e- mail the written reason should be attached to the homework, which will be graded on a pass/fail basis if the reason is accepted by me. Please see http://csmet.bu.edu/ebraude/GradePolicy.htm for generic information on how grades are allocated and averaged in all of my classes. 2 Warning Concerning Plagiarism The College has serious penalties for plagiarism, including expulsion from the degree program. Please be very careful not to use the work of others without very clear and specific acknowledgement. e-mail, see or call me if you have any doubts. In any case, clearly acknowledge all sources in the context they are used, including code, of course. Please see plagiarism policies http://csmet.bu.edu/ebraude/plagiarism.htm (my hints on this) and here http://www.bu.edu/met/metropolitan_college_people/student/resources/conduct/code.html (MET College) for examples and a full explanation. Schedule of Classes, Topics, and Reading v2 11June2009 The following schedule of classes is subject to small changes, which will be announced in advance. Class # Topic(s) Reading (see Assignment calendar for dates) 1 Introduction. Reviews of Java Chapters 1- Syntax, Control Flows, Arrays 6 2 Objects and Classes, Strings Chapter s7- 9 3 Java Inheritance, Polymorphism, Chapters Abstract class, interface 10-11 4 To be determined 5 GUI components, Swing and Event Chapters Driven Programming 13-15 6 Java Exceptions Chapters18 7 Java I/O and Recursion Chapters 19-20 8 Inner Class and Java Generics Chapters 21 9 Collections and Data Structures Chapters 22-26 10 To be determined 11 Graphs + Multi-Thread Chapters Programming 1 of 2 27-29 12 Graphs + Multi-Thread Programming 2 of 2 13 Java networking programming Chapters 30 14 Review for final 15 Final Exam 3 Contacting me; Info about me To contact me please note the infomation at: http://csmet.bu.edu/ebraude/avail.htm My Home Page: http://csmet.bu.edu/ebraude/index.html Miscellaneous Policies (including homework formats) Pleas see http://csmet.bu.edu/ebraude/PoliciesandPractices.htm . 4 Methods and Conventions for Homework v6 15June2009 Previous version 11June ClassModelTemplate.ppt (19.5 Kb) (Revisions from the previous version are in red.) 1. All homework should be accompanied by thorough JUnit tests (legal combinations, corner cases, and illegal values) 2. Sample outputs 3. Attributes should be named to end with an underscore, as in x_ (local variables, simply x) 4. All classes should show class invariants and be commented at the class level 5. All methods should be commented with INTENT / PRECONDITIONS / POSTCONDITIONS 6. Assume returnXXX is the returned value (if any) 7. Tell where in the code is that fulfills each postcondition 8. Use the notation x’ to denote the value x at the end of a method. If you want to be clear about its value at the beginning, use ‘x. 9. Classes and methods should be listed alphabetically except that test (JUnit) classes should be listed separately from non-test classes 10. Make a requirements document if you need to -- otherwise, I'll use the assignment statement as the requirements. 11. Make a design document, including a class model. 12. Make a ReadMe file with the following, as applicable: (A) instructions about execution (e.g., main() vs. JUnit), (B) improvements you made in the existing code base (including those made in response to my comments) (C) where in the code base the added parts are to be found that respond to the added assignment requirements and (D) anything else that you want me to know up front. 13. Combine all of the above -- except possibly the .java files -- in a Word file, with headings for each. Send this to me, together with a .zip file of all the .java files. 14. Leave in the "drop box", please. Apply the following principles 1. Make variables as local as possible 2. Enforce what you intend (e.g. final for variables whose value should not change) 3. Make parts usable by others (you will be rewarded for using other's past work) 4. Everyone will post their ongoing solutions (I'll explain where and how) Please use the following conventions – or explain how you have improved on them. // <Purpose for class> -- informal, avoid repeating descriptions that appear elsewhere // CONSTANTS ========================================== final int MAX_SIZE = 38; // capitals … 5 // FIELDS =============================================== int size_ = 0; // end with underscore or a convention of your choice … // CLASS INVARIANTS ===================================== // ClInv1 (Informal statement): precise specification, naming variable(s) .... // ClInv2 (Informal statement): precise specification, naming variable(s) .... … // CONSTRUCTORS ====================================== … // METHODS ============================================ // ******************************************* public xxx yyy( int aSpeed, String aBrand) { // use "a" or "an" for parameter names // // PRECONDITIONS: (may involve parameters) // Pre1 (Informal statement): precise specification, almost always naming variable(s) .... // Pre2 (Informal statement): precise specification, almost always naming variable(s) .... // // DEFINITIONS: (if needed) type name = ....; // // POSTCONDITIONS // Post1 (Informal): precise specification, almost always naming variable(s) .... // Post2 (Informal): precise specification, almost always naming variable(s) .... // When naming variables, make them expressive but distinguishable from plain English. // For example, "totl," so one can comment like: "totl is the total reciepts for ..." code (indicate clearly where the postconditions are fulfilled) } Here is an example. /* * Use of simple credit card operations to demonstrate a set of standards */ package creditCard; public class CreditCard { // CONSTANTS ========================================== private final int DEFAULT_CREDIT_LIMIT = 0; // per company policy 12094 6 private final int CREDIT_LIMIT = 100000; // per company policy 12345 // FIELDS =============================================== private int creditBalance = DEFAULT_CREDIT_LIMIT; // CLASS INVARIANTS ===================================== // ClInv1 (No overdrafts): creditBalance>=0 // CONSTRUCTORS ======================================= private CreditCard() { creditBalance = DEFAULT_CREDIT_LIMIT; } // ******************************************* public CreditCard( int aCreditLimit ) { // PRECONDITIONS: // Pre1: aCreditLimit>100 // Pre2: aCreditLimit<=CREDIT_LIMIT creditBalance = aCreditLimit; } // METHODS ============================================ // ******************************************* public int getBalance() { return creditBalance; } // ******************************************* public boolean charge( int aChargeAmount ){ // // PRECONDITION: aChargeAmount>0 // // DEFINITION: int balAfterDeduction = creditBalance-aChargeAmount; // // POSTCONDITIONS // Post1 (Deduct funds if sufficient): // balAfterDeduction<0 OR creditBalance'==balAfterDeduction // Post2 (Tell whether deducted): // (balAfterDeduction>=0) returned // ******************************************** //// Post1 (Deduct funds if sufficient): if( balAfterDeduction>=0 ) creditBalance = balAfterDeduction; //// Post2 (Tell whether deducted): return (balAfterDeduction>=0); } } 7 ====================================== = package creditCard; import junit.framework.TestCase; public class TestCredtCard extends TestCase { public void testCharge() { // Nominal Case CreditCard creditCard1 = new CreditCard( 1000 ); // initial balance assertEquals( creditCard1.charge( 1 ), true ); assertEquals( 999, creditCard1.getBalance()); // Corner Case: Too high assertEquals( creditCard1.charge( 1000 ), false ); assertEquals( 999, creditCard1.getBalance() ); // balance unchanged } } A recommended template for constructing class models is attached for you to use for clarity. You are free to use better ones. Homework Grading Criteria Criteria D C B- B+ AB A+ Passes a Passes a
Recommended publications
  • Chapter 1 Introduction to Computers, Programs, and Java
    Chapter 1 Introduction to Computers, Programs, and Java 1.1 Introduction • The central theme of this book is to learn how to solve problems by writing a program . • This book teaches you how to create programs by using the Java programming languages . • Java is the Internet program language • Why Java? The answer is that Java enables user to deploy applications on the Internet for servers , desktop computers , and small hand-held devices . 1.2 What is a Computer? • A computer is an electronic device that stores and processes data. • A computer includes both hardware and software. o Hardware is the physical aspect of the computer that can be seen. o Software is the invisible instructions that control the hardware and make it work. • Computer programming consists of writing instructions for computers to perform. • A computer consists of the following hardware components o CPU (Central Processing Unit) o Memory (Main memory) o Storage Devices (hard disk, floppy disk, CDs) o Input/Output devices (monitor, printer, keyboard, mouse) o Communication devices (Modem, NIC (Network Interface Card)). Bus Storage Communication Input Output Memory CPU Devices Devices Devices Devices e.g., Disk, CD, e.g., Modem, e.g., Keyboard, e.g., Monitor, and Tape and NIC Mouse Printer FIGURE 1.1 A computer consists of a CPU, memory, Hard disk, floppy disk, monitor, printer, and communication devices. CMPS161 Class Notes (Chap 01) Page 1 / 15 Kuo-pao Yang 1.2.1 Central Processing Unit (CPU) • The central processing unit (CPU) is the brain of a computer. • It retrieves instructions from memory and executes them.
    [Show full text]
  • Programming Languages and Methodologies
    Personnel Information: Şekip Kaan EKİN Game Developer at Alictus Mobile: +90 (532) 624 44 55 E-mail: [email protected] Website: www.kaanekin.com GitHub: https://github.com/sekin72 LinkedIn: www.linkedin.com/in/%C5%9Fekip-kaan-ekin-326646134/ Education: 2014 – 2019 B.Sc. Computer Engineering Bilkent University, Ankara, Turkey (Language of Education: English) 2011 – 2014 Macide – Ramiz Taşkınlar Science High School, Akhisar/Manisa, Turkey 2010 – 2011 Manisa Science High School, Manisa, Turkey 2002 – 2010 Misak-ı Milli Ali Şefik Primary School, Akhisar/Manisa, Turkey Languages: Turkish: Native Speaker English: Proficient Programming Languages and Methodologies: I am proficient and experienced in C#, Java, NoSQL and SQL, wrote most of my projects using these languages. I am also experienced with Scrum development methodology. I have some experience in C++, Python and HTML, rest of my projects are written with them. I have less experience in MATLAB, System Verilog, MIPS Assembly and MARS. Courses Taken: Algorithms and Programming I-II CS 101-102 Fundamental Structures of Computer Science I-II CS 201-202 Algorithms I CS 473 Object-Oriented Software Engineering CS319 Introduction to Machine Learning CS 464 Artificial Intelligence CS 461 Database Systems CS 353 Game Design and Research COMD 354 Software Engineering Project Management CS 413 Software Product Line Engineering CS 415 Application Lifecycle Management CS 453 Software Verification and Validation CS 458 Animation and Film/Television Graphics I-II GRA 215-216 Automata Theory and Formal
    [Show full text]
  • The Java Compiler • the Java Interpreter • the Java Debugger On
    Tools : • The Java Compiler javac [ options ] filename.java . -depend: Causes recompilation of class files on which the source files given as command line arguments recursively depend. -O: Optimizes code, slows down compilation, dis- ables -depend. • The Java Interpreter java [ options ] classname hargsi • The Java Debugger jdb [ options ] Type help or ? to get started. On windows we have Jcreator and netbeans on our BSD systems. (We also have netbeans on windows available, but it is not nearly as quick as jcreator.) 1 The simplest program: public class Hello { public static void main(String[] args) { System.out.println("Hello."); } } Hello.java Executing this program would print to the console the sentence “Hello.”. A bit more complex: public class Second { public static void main(String[] input) { for (int i = input.length - 1; i >= 0; i--) System.out.print(input[i] + " "); System.out.print("\n"); } } Second.java Executing this program would print to the console the arguments in reverse order, each separated by one blank space. Primitive data types : • byte : 8 bit integer, [-128 , 127] • char : 16 bit unsigned integer, [0 , 65536]. This character set offers 65536 distincts Unicode char- acters. • short : 16 bit signed integer, [-32768 , 32767] • int : 32-bit integer, [-2147483648 , 2147483647] • long : 64 bit signed integer, [-9223372036854775807 , 9223372036854775806] • float : 32-bit float, 1.4023984e–45 to 3.40282347e+38 • double : 64-bit float, 4.94065645841246544e–324 to 1.79769313486231570e+308 • boolean : such a variable can take on
    [Show full text]
  • Ch1: Introduction
    Ch1: Introduction 305172 Computer Programming Laboratory Jiraporn Pooksook Naresuan University Class Information • Instructor: Jiraporn Pooksook (จิราพร พุกสุข) • TA: Wanarat Juraphanthong (วนารัตน์) • Lecture time&Location: G1: Thurs 9-12 a.m., EN609 G2: Thurs 5-8 p.m., EN609 • Office: EE 214 • Office hour: By appointment • Email: [email protected] • Website: www.ecpe.nu.ac.th/jirapornpook Assignment & Grading • Homework: 10% • Class Participation: 10% • Midterm: 30% • Final: 30% • Project: 20% Books & References • Python for Kids: A Playful Introduction To Programming, by Jason R. Briggs Retrieved from : https://books.google.co.th/books Books & References • Python programming books written in Thai. • Python tutorial https://docs.python.org/3/tutorial/ • Video Lecture of CU https://www.youtube.com/watch?v=U2l1xgpVsuo Tools • Python 3.7.0 https://www.python.org/downloads/ • IDLE Python Exercises • Register Code.org https://studio.code.org/s/express/ • Finish tasks and report what level you have already done every week. How to write a program • Decide which language you want to code. • Find a good compiler/interpreter. • Start writing a code. What are these words? Programming Compiler/ Editors language interpreter C GNU GCC 9.1 Turbo C ,Borland C++, Visual C++, Visual Studio Code, Codeblocks C++ GNU GCC 9.1 Turbo C++,Borland C++,Visual C++ , Visual Studio Code, Codeblocks JAVA Java SE 12.0.1 JCreator, Netbeans, Eclipse Ruby Ruby 2.6.3 Atom, Visual Studio Code Python Python 3.7.3 Visual Studio Code, Idle, PyCharm Types of Programming Languages • Static Programming Language : Java, C, C++, etc. – declare the type of variables before use. – need compiler to read all instructions and run at once finally.
    [Show full text]
  • IDE's for Java, C
    1 IDE’s for Java, C, C++ David Rey - DREAM 2 Overview • Introduction about IDE’s • Eclipse example: overview • Eclipse: editing • Eclipse: using a version control tool • Eclipse: compiling/building/generating doc • Eclipse: running/debugging • Eclipse: testing • Eclipse: tools to easily re-write code • Conclusion 3 What is an IDE • IDE = Integrated Development Environment • IDE = EDI (Environnement de Développement Intégré) in French • Generally language dependant (c/c++ specific IDE, java specific IDE, not yet good ones for Fortran) • Typical integrated development tools : • editor (with auto-indent, auto-completion, colorization, …) ; • version control ; • compiler/builder ; • documentation extractor ; • debugger ; • tests tool ; • refactoring tools. 4 What is not an IDE • Just a great text editor • A code generator • A GUI designer • A forge (i.e. GForge) 5 IDEs examples - Java • Eclipse (http://www.eclipse.org) • JBuilder (http://www.borland.com/us/products/jbuilder/index.html - free for personnal and non-commercial use) • NetBeans (http://www.netbeans.org/) • JCreator (http://www.jcreator.com/) • … 6 IDE’s examples – C/C++ • Visual C++ - com. license (http://msdn.microsoft.com/visualc) • C++ Builder - com. license (http://www.borland.com/us/products/cbuilder/index.html) • Quincy (http://www.codecutter.net/tools/quincy/) • Anjuta (http://anjuta.sourceforge.net/) • KDevelop (http://www.kdevelop.org/) • Code::Block (http://www.codeblocks.org/) • BVRDE (http://bvrde.sourceforge.net/) • RHIDE (http://www.rhide.com/) • … 7 Overview • Introduction
    [Show full text]
  • Principy Operačních Systémů
    PROGRAMOVACÍ TECHNIKY STUDIJNÍ MATERIÁLY URČENÉ PRO STUDENTY FEI VŠB-TU OSTRAVA VYPRACOVAL: MAREK BĚHÁLEK OSTRAVA 2006 © Materiál byl vypracován jako studijní opora pro studenty předmětu Programovací techniky na FEI VŠB-TU Ostrava. Jiné použití není povoleno. Některé části vycházejí či přímo kopírují původní výukové materiály k předmětu Programovací techniky vytvořené doc. Ing Miroslavem Benešem Ph. D. Programovací techniky OBSAH 1 Průvodce studiem ..................................................................................... 5 1.1 Charakteristika předmětu Programovací techniky ............................. 5 1.2 Další informace k předmětu Programovací techniky ......................... 5 2 Nástroje pro tvorbu programu................................................................ 7 2.1 Tvorba aplikace .................................................................................. 8 2.2 Editor .................................................................................................. 9 2.3 Překladač .......................................................................................... 10 2.3.1 Překlad zdrojových souborů ..................................................... 11 2.3.2 Typy překladače ....................................................................... 11 2.4 Spojovací program (linker)............................................................... 12 2.5 Nástroje pro správu verzí.................................................................. 12 2.5.1 Concurrent Version System (CVS) .........................................
    [Show full text]
  • Teaching and Learning to Program: a Qualitative Study of Hong Kong Sub
    Teaching and Learning to Program: A Qualitative Study of Hong Kong Sub-Degree Students by CHENG Wing Fat Johnny B.Sc. (Hons), Pg.Dip., M.Sc., M.Ed. A thesis submitted for the degree of Doctor of Education University of Technology, Sydney February 2010 Certificate of Originality I certify that the work in this thesis has not previously been submitted for a degree nor has it been submitted as part of requirements for a degree except as fully acknowledged within the text. I also certify that the thesis has been written by me. Any help that I have received in my research work and the preparation of the thesis itself has been acknowledged. In addition, I certify that all information sources and literature used are indicated in the thesis. Signature of Candidate __________________________________ ii Acknowledgements The completion of my doctoral dissertation is a rewarding achievement. It is not only because of the superficial reward but also the underlying process which revealed all the wonder of my Lord’s works. As the Bible says, “… all things are working together for good to those who have love for God, and have been marked out by His purpose” (Romans 8:28). I would like to take this opportunity to express my immense gratitude to everyone who has given their invaluable advice and assistance. In particular, I thank my thesis advisor Dr. Liam Morgan and my former thesis advisor Professor Robert Pithers, who generously devoted their time and knowledge to assist me in throughout my doctoral study. Special thanks go to my IT colleague, Mr.
    [Show full text]
  • Aligning Design of Embodied Interfaces to Learner Goals
    Aligning Capabilities of Interactive Educational Tools to Learner Goals Tom Lauwers CMU-RI-TR-10-09 Submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Robotics The Robotics Institute Carnegie Mellon University Pittsburgh, Pennsylvania 15213 Submitted in partial fulfillment of the requirements of the Program for Interdisciplinary Education Research (PIER) Carnegie Mellon University Pittsburgh, Pennsylvania 15213 Thesis Committee: Illah Nourbakhsh, Chair, Carnegie Mellon Robotics Institute Sharon Carver, Carnegie Mellon Psychology Department John Dolan, Carnegie Mellon Robotics Institute, Fred Martin, University of Massachusetts Lowell Computer Science c 2010, Tom Lauwers. ABSTRACT This thesis is about a design process for creating educationally relevant tools. I submit that the key to creating tools that are educationally relevant is to focus on ensuring a high degree of alignment between the designed tool and the broader educational context into which the tool will be integrated. The thesis presents methods and processes for creating a tool that is both well aligned and relevant. The design domain of the thesis is described by a set of tools I refer to as “Configurable Embodied Interfaces”. Configurable embodied interfaces have a number of key features, they: • Can sense their local surroundings through the detection of such environ- mental and physical parameters as light, sound, imagery, device acceleration, etc. • Act on their local environment by outputting sound, light, imagery, motion of the device, etc. • Are configurable in such a way as to link these inputs and outputs in a nearly unlimited number of ways. • Contain active ways for users to either directly create new programs linking input and output, or to easily re-configure them by running different pro- grams on them.
    [Show full text]
  • It Consulting Jp Bvba
    I chose for a job in software testing after getting my master degree in computer science because of my quality minded approach and my attention to detail. My main expertise consists of test management, test automation, test tooling and requirement analysis as a consequence of experience built up during several projects in different sectors during the past years. Currently I am working as a QA Lead at the VDAB. My mission is to improve the testing process. Coordinate the testing activities of the manual and automated testers and coach them where needed. My tasks in previous projects consisted of test management, requirement analysis, setting up test automation frameworks (in Java and C#), supervision of tests automated by other team members, manual testing and managing test tools (like HP ALM) as an administrator. I worked in rapidly changing informal environments as well as in very formal environments like the payment sector and safety-critical projects (Schengen and Siemens). Because of the combination of my functional and technical knowledge I am the perfect person to make the bridge between the functional and technical people of the project. Alongside my IT skills I also have very highly developed communication and leading/coaching skills. I like to take commitment and initiative. Thanks to my social skills I am able to integrate into the team very quickly. IT CONSULTING JP BVBA Ongoing VDAB June 2017 QA Lead Responsibilities: - Team lead of 18 testers - Assigning manual and automated testers to projects - Writing the corporate test strategy - Organizing the QA Guild June 2017 Belgacom International Carrier Services (BICS) March 2017 Test Process Improver/Test Automation Specialist/Functional Analyst Working in BICS ‘incubation team’ which is in essence a start-up company within BICS.
    [Show full text]
  • Freeware-List.Pdf
    FreeWare List A list free software from www.neowin.net a great forum with high amount of members! Full of information and questions posted are normally answered very quickly 3D Graphics: 3DVia http://www.3dvia.com...re/3dvia-shape/ Anim8or - http://www.anim8or.com/ Art Of Illusion - http://www.artofillusion.org/ Blender - http://www.blender3d.org/ CreaToon http://www.creatoon.com/index.php DAZ Studio - http://www.daz3d.com/program/studio/ Freestyle - http://freestyle.sourceforge.net/ Gelato - http://www.nvidia.co...ge/gz_home.html K-3D http://www.k-3d.org/wiki/Main_Page Kerkythea http://www.kerkythea...oomla/index.php Now3D - http://digilander.li...ng/homepage.htm OpenFX - http://www.openfx.org OpenStages http://www.openstages.co.uk/ Pointshop 3D - http://graphics.ethz...loadPS3D20.html POV-Ray - http://www.povray.org/ SketchUp - http://sketchup.google.com/ Sweet Home 3D http://sweethome3d.sourceforge.net/ Toxic - http://www.toxicengine.org/ Wings 3D - http://www.wings3d.com/ Anti-Virus: a-squared - http://www.emsisoft..../software/free/ Avast - http://www.avast.com...ast_4_home.html AVG - http://free.grisoft.com/ Avira AntiVir - http://www.free-av.com/ BitDefender - http://www.softpedia...e-Edition.shtml ClamWin - http://www.clamwin.com/ Microsoft Security Essentials http://www.microsoft...ity_essentials/ Anti-Spyware: Ad-aware SE Personal - http://www.lavasoft....se_personal.php GeSWall http://www.gentlesec...m/download.html Hijackthis - http://www.softpedia...ijackThis.shtml IObit Security 360 http://www.iobit.com/beta.html Malwarebytes'
    [Show full text]
  • Introduction to Java Network Programming Getting Started
    HELSINKI UNIVERSITY OF TECHNOLOGY DEPARTMENT OF COMMUNICATIONS AND NETWORKING Introduction to Java Network Programming © 2009 Md. Tarikul Islam 1 HELSINKI UNIVERSITY OF TECHNOLOGY DEPARTMENT OF COMMUNICATIONS AND NETWORKING Getting Started } Java Development Platform — Java Virtual Machine (JVM) is available on many different operating systems such as Microsoft Windows, Solaris OS, Linux, or Mac OS. — Sun JDK 5 or 6 which includes Java Runtime Environment (JRE) and command• line development tools. } Development Tools — Main tools (javac compiler and java launcher) — Using IDE (Eclipse, Netbeans, JCreator … .) — Automate compiling (Apache Ant) and testing (JUnit) © 2009 Md. Tarikul Islam 2 1 HELSINKI UNIVERSITY OF TECHNOLOGY DEPARTMENT OF COMMUNICATIONS AND NETWORKING Socket } What is Socket? — Internet socket or Network socket is one endpoint of two•way communication link between two network programs. Server Communication Client 192.168.0.1/80 link 192.168.0.2/2469 } Types of Socket — Stream sockets –connection•oriented sockets which use TCP — Datagram sockets –connection•less sockets which use UDP — Raw sockets –allow direct transmission of network packets from applications (bypassing transport layer) } Modes of Operation — Blocking or Synchronous –application will block until the network operation completes — Nob•blocking or Asynchronous –event•driven technique to handle network operations without blocking. © 2009 Md. Tarikul Islam 3 HELSINKI UNIVERSITY OF TECHNOLOGY DEPARTMENT OF COMMUNICATIONS AND NETWORKING Resolving Hostname } java.net.InetAddress
    [Show full text]
  • For the Course, We Will Be Using Jcreator As the IDE (Integrated Development Environment)
    For the course, we will be using JCreator as the IDE (Integrated Development Environment). We strongly advise that you install these to your own computers. If you do not have your own computer, the computer labs on campus have the software. 1 You will have 11 lab assignments which you are required to solve individually during the lab sessions. The minimum lab grade will be discarded at the end. There will be no make-up for the lab assignment you miss. At the end of the lab, assistants will check and grade the assignment. TAs will also ask students to explain their solution in order to ensure that they really have understood the concepts involved. 2 If you have difficulty in understanding course subjects, go to the teaching assistants or ask for office hours and ask them. Be wise and make use of the resources provided to you. 3 Object-Oriented Programming The Java Programming Language Program Development 4 The purpose of writing a program is to solve a problem Solving a problem consists of multiple activities: ◦ Understand the problem ◦ Design a solution ◦ Consider alternatives and refine the solution ◦ Implement the solution ◦ Test the solution These activities are not purely linear – they overlap and interact 5 The key to designing a solution is breaking it down into manageable pieces When writing software, we design separate pieces that are responsible for certain parts of the solution An object-oriented approach lends itself to this kind of solution decomposition Object-oriented paradigm focuses on objects, data structures that have attributes (fields) and behaviours (methods).
    [Show full text]