Course outline SITACS School of Information Technology & Computer Science Subject Outline ITCS907 - Java Programming and the Internet Spring Session 2002 General Information Lecturer & Subject Co-ordinator: Dr Ping Yu Co-Ordinators Telephone Number: (02) 42 215412 Email: ping@uow.edu.au Location: Bld39 SITACS Section Room 4 Dr Ping Yu’s consultation times during sesion Monday Thursday 1:30 pm – 3:30 pm 1:30 pm – 3:30 pm Mr Omar Garcia’s consultation times during session Monday 3:30pm – 5:30pm Tuesday 3:30pm – 5:30pm Friday 3:30pm – 4:30pm These times are subject to variation. If they are permanently altered, students will be notified in lectures. Lecturer: Mr. Omar Garcia Co-Ordinators Telephone Number: (02) 42 215290 Email: omar@uow.edu.au Location: Room 3-209 Subject Organisation Session: Spring Session, Wollongong Campus Credit Points: 6 credit points Contact hours per week: 3 hour lecture, 2 hour laboratory Lecture Times: Monday 9:30am – 10:30am Thursday 10:30am – 12:30am Location: 25.107 (Monday), 20.1 (Thursday) Lab Day, Time and Location can be found at: http://www.uow.edu.au/student/sols/timetables/index.html Location: "Sun Java Laboratory" 3.229 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: 1. master the basic concept of object oriented programming with Java 2. relate Java to other Web technologies including CGI, Javascript and other browser technologies 3. build Java applets and stand alone applications that exploit the abstract windows toolkit (or swing toolkit), 4. implement programs exploiting the threads and networking capabilities of Java, 5. explain the security problems in a networked environment and detail Java's security mechanisms. Head of School - Professor Peter Croll, Tel: (02) 42 21 3606, Fax: (02) 42 21 4170 Method of Presentation Laboratories will relate to the lecture topics. There will be no laboratories in week 1. 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 spent on each 6 credit point subject should be 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). W. Thomas, Introduction To Object-Oriented Programming with Java (Prentice Hall). Neither of the textbooks are essential for ITCS907, 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. another site of interest is http://www.javaworld.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 ITCS907 but which may be of interest in later course such as CSCI311. Sun keeps its own on-line tutorial up to date. Sun's copyright rules prohibit other sites from having copies of the tutorial that are accessible through the Internet; local copies are permitted. A local copy, usable only from machines on campus, can be found in the "File" url /packages/javatute/index.html. A compressed archive of this tutorial (more suitable for Linux than Windows) is in /share/cs-pub/213; 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 Sun’s basic JDK-1.3. If you strongly prefer an Integrated Development Environment, you can download Forte Community Edition from the Sun site. If you don't want to download the latest version from Sun, there are Linux and Windows versions of the development kit in the /share/cs-pub/213 directory. If you do decide to run the Java development kit on your own PC, you will also need the library documentation (this is considerably larger than the development kit itself). Again, you can download the latest version from Sun, however there is a zip file of the documentation in /share/cs-pub/213. Assessment This subject has the following assessment components. Assessment Items Percentage of Final Mark Provisional dates 1. Assignments 5*10% A 1: August 18 A 2: September 1 A 3: September 15 A 4: October 13 A 5: October 27 2. Final examination 50% Examination Period Assignment due dates are provisional; the actual dates will be given in lectures.The electronic "turnin" submission system will be set to close at close of business, normally 11:59pm on the due date of submission. The "Late" submission system will accept assignments for up to 4 days after the specified date; unless prior arrangements for late submission (on grounds of health etc) have been made, these late submissions attract a 1 mark penalty per day. • 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/current/regulations.html • Assignments are to be submitted electronically using the turnin system on Unix. The "turnout" command can be used to check your submitted files. It is important that you comply with the specifications given for the file organizations of submissions. Submissions are prepared for the markers by Unix shell scripts and Perl scripts; marks will be deducted on submissions that cannot be automatically processed by these scripts. Penalties will apply to all late work, except in the case of protracted (and certified) illness. Assignments will be returned during laboratory classes. Assignments 1 use of 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 and/or database example, Java client and server applications communicating via sockets; use of JDBC Lecture Schedule The lectures will run as two strands. Strand A (on Mondays) 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 How the Internet works Hypermedia and the Web Internet Web clients Web servers HTML and Javascript Server side scripting 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 ITCS907.) Strand B topics will include: Object oriented programming concepts Java language basics 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.3 (except for Applets, where stick to Java 1.1 features). 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 University’s Unix system. • The lecture overheads will be made available as PDF files. • 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/java/jdk/1.3.1/docs/api/index (a web-accessible version of the documentation is available from Sun at http://java.sun.com. Additional Information This outline should be read in conjunction with the following documents School Computer Usage Rules http://www.itacs.uow.edu.au/general/rules97.html Plagiarism http://www.uow.edu.au/student/calendar/rules/plagiarism.html SITACS' Student Guide to Some of the University's Regulations, Codes of Conduct and School Policies http://www.itacs.uow.edu.au/current/regulations.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 Special Consideration http://www.uow.edu.au/admin/eeo/disabilitiespolicy.htm Subject Outlines http://www.itacs.uow.edu.au/current/subject_outlines SITACS Style Guide for Footnotes and Documentation http://www.itacs.uow.edu.au/general/styleguide.pdf Internet Access and Student Reception and Resource Centre http://www.itacs.uow.edu.au/current/InternetAccess_sr_rc.shtml Key dates http://www.uow.edu.au/admin/secretariat/caldates.html - 2002keydates Information Literacies Introduction Program http://libilip.uow.edu.au/cgi-bin/ilip/ Disability Services and Non-sexist and non-racist language http://www.uow.edu.au/student/services/dos.html