Course outline SITACS School of Information Technology & Computer Science Subject Outline CSCI213 - Java Programming and the Internet Autumn Session 2001 General Information Lecturer & Course Co-ordinator: Dr N.A.B. Gray Co-Ordinators Telephone Number: (02) 42 213812 Email: nabg@uow.edu.au Location: 3.206 Lecturer's Consultation Times During Session Day Time Thursday 10:30 am to 12:30 pm Friday 10:30 am to 12:30 pm These times are subject to variation. If they are permanently altered, students will be notified in lectures. Subject Organisation Session: Autumn Session Credit Points: 6 credit points Contact hours per week: 3 hour lecture, 2 hour laboratory Lecture Times: Tuesday 1.30pm - 2.30pm Thursday 8.30am - 10.30am Location: 67.107 both days Laboratory Times (From Week 2 - No Labs in Week One) See notice and sign-in system @: www.itacs.uow.edu.au/general/labs Location: "Sun Java Laboratory" 3.229 Note: The University Timetable is subject to variation. Please confirm lecture/lab/tutorial times via the web - http://www.uow.edu.au/student/sols/timetables.html or with your Lecturer and/or Tutor Head of School - Professor Joan Cooper, Tel: (02) 42 21 3606, Fax: (02) 42 21 4170 Content This subject provides: 1. an introduction to the Java language and some of its standard class libraries 2. experience with object oriented design and implementation techniques 3. an understanding of the Internet and its importance to modern software systems. Topics will include: Java language, subset of Java class libraries (windowing, graphics, networking, threads), object oriented design and implementation, Internet issues, basics of TCP/IP protocols, Web technologies, HTML and Javascript, CGI programming, introduction to security issues. Objectives A student who successfully completes this subject should be able to: (i) relate Java to other Web technologies including CGI, Javascript and other browser technologies (ii) build Java applets and stand alone applications that exploit the abstract windows toolkit, (iii) design object oriented (OO) programs using a simplified version of a standard OO methodology, (iv) implement programs exploiting the threads and networking capabilities of Java, (v) explain the security problems in a networked environment and detail Java's security mechanisms. Method of Presentation Laboratories will relate to the lecture topics. There will be no laboratories in week 1 and week 13. Satisfactory attendance at lectures and laboratories is a requirement for the successful completion of this course. Satisfactory attendance is deemed to be attendance at approximately 80% of the allocated contact hours. However, attendance per se is not a component of assessment. It should be noted that according to Course Rule 003 {Interpretation Point 2 (t)} each credit point for a single session subject has the value of about 2 hours per week including class attendance. Therefore, the amount of time spend on each 6 credit point subject should be at least is at least 12 hours per week, which includes lectures/tutorials/labs etc. Students should check the subject's web site regularly as important information, including details of unavoidable changes in assessment requirements will be posted from time to time. Any information posted to the web site is deemed to have been notified to all students. Main reference: C.S. Horstmann and G. Cornell, Core Java 1.2. Volume 1 Fundamentals SunSoft Press (Prentice Hall). --- C.S. Horstmann and G. Cornell, Core Java 1.2. Volume 2 Advanced Features SunSoft Press (Prentice Hall). Neither text is essential for CSCI213, but these books are very useful as references for this subject and for more advanced subjects that you may take subsequently. The books by Horstmann and Cornell give a more balanced presentation than most Java books and are the best selling texts. Alternatives in the SunSoft series include Just Java (too introductory and opinionated), and Java by Example . If you prefer a different style, you will find Learn Java in - 21 days, - today, - 10 minutes, - now; Java for C/Pascal/C++/Lisp/... Programmers; Java Gently, Java Firmly, Java with Attitude, ... and of course Java for Dummies. (There are at least 1200 Java related texts currently available.) There are numerous Web based resources relating to learning Java. You will find useful tutorial material by following "tutorial" links from http://java.sun.com. Other sites of interest include http://www.javaworld.com and http://www.gamelan.com. More general sites, with links to material on HTML, CGI programming, Java, Javascript, web site design, etc include http://www.wdvl.com , http://www.w3schools.com and http://www.webdeveloper.com. Sun's own Java tutorial is very good. It has some introductory material on programming in Java and then specialist sections exploring specific aspects of the Java libraries; many of these tutorials cover topics that are beyond the scope of CSCI213 but which may be of interest in later course such as CSCI311. You can obtain a Java development environment (Windows, or Linux) from the web; again the main Java site at Sun is the most effective contact point. We mostly use Suns basic JDK-1.2. If you strongly prefer an Integrated Development Environment, you can download Forte Community Edition from the Sun site. (The current edition of the Java Development Kit is 1.3; this is mostly compatible with version 1.2 but included various new libraries.) Assessment This subject has the following assessment components. Assessment Items Percentage of Final Mark Provisional dates 1. Assignments 5*10% A 1: April 2 A 2: April 23 A 3: May 14 A 4: May 28 A 5: June 8 2. Final examination 50% Examination Period Assignment due dates are provisional; the actual dates will be given in lectures. If the examination component is passed, the final mark is the sum of laboratory and examination components. If the examination is not passed, a scaling formula may be used to reduce the weighting accorded to the laboratory component; the final mark then will be the sum of examination mark and a scaled down laboratory mark. General assessment information including scaling formula can be obtained at http://www.itacs.uow.edu.au/general/studgd.html Assignments are to be submitted electronically using the turnin system on Unix. Penalties will apply to all late work, except in the case of protracted (and certified) illness. Late assignments must be submitted personally to laboratory tutors. Assignments will be returned during laboratory classes. Plagiarism may result in a FAIL grade being recorded for that assessment task. Assignments: 1 use of Unix, JDK environment, Java language basics 2 practice simple class hierarchy in Java, 3 CGI exercise involving HTML and implementation of a CGI server program (in C++) 4 applet, code and accompanying HTML files 5 simple networking example, Java client and server applications communicating via sockets Assignment are available now via http://www.uow.edu.au/~nabg/213/index.html. Lecture Schedule The lectures will run as two strands. Strand A (on Tuesdays) will cover the general context of the Internet, the Web, and an overview of uses of Java including aspects such as security issues. Strand B (on Thursdays) will cover the Java language, its class libraries, and OO program design and implementation. Strand A topics will include: Introduction to the Internet (content reduced from previous versions of CSCI213) How the Internet works Hypermedia and the Web Internet (content reduced from previous versions of CSCI213) Web clients Web servers HTML and Javascript Server side scripting (new topic for 2001) Security model for Java Java and the enterprise Java virtual machine (Students are now expected to have developed simple web sites in assignments for 100 level CS or Elec subjects; consequently, some of the more introductory materials are no longer covered in CSCI213.) Strand B topics will include: Java language basics Object oriented programming concepts Event based programming Overview of Java class libraries Programming with the AWT (or Swing) Object oriented design Introduction to java.net Programming with java.lang.threads Other Important Information Java dialect will be 1.2. Caution, the class libraries in different versions of Java are not always compatible. If you do your development using your own Java tools, which may have different versions of libraries, do check that your program runs on the Universitys Unix system. The lecture overheads will be made available as PDF files. These files will be accessible at: http://www.uow.edu.au/~nabg/213/index.html No passwords are needed to access this page. This page will also include links to the assignments. Some additional example code may be provided in /share/cs-pub/213 (local access only, not accessible via web); code examples for the assignments are almost all linked to the assignment web pages. You should bookmark the API documentation pages. The documentation will be in /packages/jdk-1.2/docs/api/index (a web-accessible version of the documentation is available from Sun at http://java.sun.com). This outline should be read in conjunction with the following documents School Computer Usage Rules http://www.itacs.uow.edu.au/general/rules97.html SITACS' Student Guide to Some of the University's Regulations, Codes of Conduct and School Policies http://www.itacs.uow.edu.au/general/studgd.html University Codes of Practice - Teaching and Assessment http://www.uow.edu.au/about/teaching/teaching_code.html http://www.uow.edu.au/about/update.html SITACS Style Guide for Footnotes and Documentation http://www.itacs.uow.edu.au/general/styleguide.pdf Subject Outlines http://www.itacs.uow.edu.au/current/subject_outlines/