http://www.cs.bris.ac.uk/Teaching/Resources/COMSM0103/

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-gb" xml:lang="en-gb">
<head>
   <link type='text/css' rel='stylesheet' href='/styles/cscontent.css' />
   <link type='text/css' rel='stylesheet' href='/styles/csmain.css' />
   <link rel="stylesheet" type="text/css" href="/styles/niftyCorners.css" />
   <link rel="stylesheet" type="text/css" href="/styles/niftyPrint.css" media="print" />
   <link rel='icon' id='csbrislink' href='/images/logo.ico' />

   <script type='text/javascript' src='/scripts/nifty.js'></script>
   <script type='text/javascript' src='/scripts/mainload.js'></script>
   <script type='text/javascript' src='/scripts/pngfix.js'></script>
   <script type='text/javascript' src='/scripts/Teaching/coursemap/table-serve.js'></script>
   <script type='text/javascript' src='/scripts/csyear.js'></script>
   
<!--nomodify-->
<title>COMSM0103: Object Oriented Programming With Java</title>
</head>
<body id='age'>
<div class='search'>
   <div class='searchcontent'>
         <form onsubmit="return (this.words.value != '')" method='get' class='searchform' action='http://www.google.co.uk/search'>
            <div>
               <input title='Search CS @ Bristol' type='text' name='q' class='searchfield' />
               <input type='submit' value='search' name='sa' class='searchbutton' />
               <input type='hidden' value='cs.bris.ac.uk' name='domains' />
               <input type='hidden' value='cs.bris.ac.uk' name='sitesearch' />
            </div>
         </form>
   </div>
</div>
<div class='iebox'>
</div>
<div class='yearnav'>
   <div class='yearnavcontent'>
      <div class='cont'>
      <a class='yearlink' href='/lib/lastyear.jsp'>&lt;&lt;</a>&nbsp;<span id='year1' class='nowyeartext'>2006-7</span>&nbsp;<a class='yearlink' href='/lib/nextyear.jsp'>&gt;&gt;</a>
      </div>
   </div>
</div>
<div class='links'>
   <ul class='nav'>
         <li class='navitem'>
         <a href="http://www.cs.bris.ac.uk" class='navlink'>Home</a>
         <span class='navsep'>&nbsp;|&nbsp;</span>
      </li>
      <li class='navitem'>
         <a href='http://www.cs.bris.ac.uk/theindex.html' class='navlink'>Index</a>
         <span class='navsep'>&nbsp;|&nbsp;</span>
      </li>
      <li class='navitem'>
         <a href='http://www.cs.bris.ac.uk/People/' class='navlink'>People</a>
         <span class='navsep'>&nbsp;|&nbsp;</span>
      </li>
      <li class='navitem'>
         <a href='http://www.cs.bris.ac.uk/Teaching/' class='navlink'>Teaching</a>
         <span class='navsep'>&nbsp;|&nbsp;</span>
      </li>
      <li class='navitem'>
         <a href='http://www.cs.bris.ac.uk/Teaching/Exams/' class='navlink'>Exams</a>
         <span class='navsep'>&nbsp;|&nbsp;</span>
      </li> 
      <li class='navitem'>
         <a href='http://www.cs.bris.ac.uk/Tools/Local/Handbook/timetable.html' class='navlink'>Timetable</a>
         <span class='navsep'>&nbsp;|&nbsp;</span>
      </li>
      <li class='navitem'>
         <a href='http://www.cs.bris.ac.uk/admissions/' class='navlink'>Study @ Bristol</a>
      </li>
      </ul>
</div>
<div class='header'>
   <div class='headcontent'>
      <div class='cslogo'>
         <a href='http://www.cs.bris.ac.uk/' class='imglink'><img src='/images/CStrans_small.png' height='60' width='60' alt='Department Logo' class='pnghide' id='compscilogo' /></a>
      </div>
      <div class='unilogo'>
         <a href='http://www.bris.ac.uk/' class='imglink'><img src='/images/unilogo.png' height='50' width='172' alt='University Logo' class='pnghide' id='univerlogo' /></a>
      </div>
      <div class='headtext'><span class='depttext'>Department of</span><br /><span class='compscitext'>Computer Science</span></div>
      <div class='bannerpic'>&nbsp;<!-- Image loaded in CSS --></div>
   </div>
</div>

<div class='teachbox'>
</div>
<div class='teach' id='teachlinks'>
   <div class='teachcontent'>
      <ul class='teachnav'>
         <li class='teachnavitem'>
            <a href='/Teaching/Resources/COMSM0103/' class='navlink'>COMSM0103</a>
            <span class='navsep'>&nbsp;|&nbsp;</span>
         </li>
         <li class='teachnavitem'>
            <a href='/Teaching/secure/progress.jsp&#63;unit=COMSM0103' class='navlink'>Progress</a>
            <span class='navsep'>&nbsp;|&nbsp;</span>
         </li>
         <li class='teachnavitem'>
            <a href='/cw/COMSM0103/' class='navlink'>Submission</a>
            <span class='navsep'>&nbsp;|&nbsp;</span>
         </li>
         <li class='teachnavitem'>
            <a href='/forum/index.jsp&#63;title=COMSM0103' class='navlink'>Forum</a>
            <span class='navsep'>&nbsp;|&nbsp;</span>
         </li>
         <li class='teachnavitem'>
            <a href='/Tools/Local/Handbook/unit.jsp&#63;unit=COMSM0103' class='navlink'>Handbook</a>
            <span class='navsep'>&nbsp;|&nbsp;</span>
         </li>
         <li class='teachnavitem'>
            <a href='/Teaching/Questionnaire/secure/run2.jsp&#63;protect=all&amp;unit=COMSM0103' class='navlink'>Feedback</a>
            <span class='navsep'>&nbsp;|&nbsp;</span>
         </li>
         <li class='teachnavitem'>
            <a href='/Teaching/secure/unit.jsp&#63;unit=COMSM0103' class='navlink'>Manage</a>
         </li>
      </ul>
   </div>
</div>


<div class='content'>
<h2>COMSM0103: Object Oriented Programming With Java</h1>

<h3>About the unit</h3>
<ul>
<li><a href="about.the.unit.html">About the unit</a>
</ul>


<h3>An essential resource you must get used to using</h3>
<ul>
<li><a href="http://java.sun.com/j2se/1.5.0/docs/api/">Java 1.5 API</a>
<li><a href="http://java.sun.com/javase/6/docs/api/">Java 1.6 API</a>
</ul>


<h3>Other Resources</h3>
<ul>
<li>
<a href="http://www.cs.bris.ac.uk/Teaching/Resources/COMSM0103/books.html">Booklist</a></li>
<li><a href="http://www.bluej.org/">BlueJ</a></li>
<li><a href="http://www.cs.bris.ac.uk/Teaching/Resources/COMSM0103/projects.html">Example code (including projects from course text)</a></li>
<li><a href="http://www.bluej.org/objects-first/second-edition/supplement/java5-supplement.html">Summary of new features in Java 1.5</a>
<li><a href="http://www.cs.bris.ac.uk/Teaching/Resources/General/java.html">The department's java resources page</a>
<li><a href="http://www.cs.bris.ac.uk/Teaching/Resources/COMS12100/style/">Programming style guide</a>
<li><a href="http://java.sun.com/developer/JDCTechTips/">Core Java Technologies Tech Tips</a> Tips on advanced subjects
<li><a href="http://www.javaworld.com/">Javaworld Q&A and Tips</a>
<li><a href='/forum/index.jsp&#63;title=COMSM0103'>M0103 Forum</a>
<li><a href="http://java.sun.com/developer/onlineTraining/new2java/index.html">Sun's 'New to Java' 
Centre</a>
</ul>

The first year Software Engineering course also uses Java and you may want to check its
<a href="http://www.cs.bris.ac.uk/Teaching/Resources/COMS12100/">resources page.</a>


<h3>Tutorials</h3>
<ul>
<li><a href="http://www.cs.bris.ac.uk/jot/">A tutorial for beginners</a>
<li><a href="http://www.cs.bris.ac.uk/Teaching/Resources/COMS30122/java/index.html">A tutorial for competent Java programmers</a>
<li><a href="http://java.sun.com/docs/books/tutorial/">Sun's Java tutorial</a> -- hundreds of example programs
</ul>
<p>


<h3>Outline and Handouts</h3>

Handouts will appear as the course progresses. An outline of the lectures appears below - please
note that the details may change as the course progresses.
<p>
<table BORDER>
<tr><td><i>Lecture</i>
    <td><i>Subject (Chapter)</i>
<tr><td>1
    <td><a href="handouts/handout1.pdf">Introduction to the unit, OOP, and Java</a>
<tr><td>2
    <td><a href="handouts/handout2a.pdf">Objects and classes</a> (Ch.1) and 
        <a href="handouts/handout2b.pdf">Understanding class definitions</a> (Ch.2)
<tr><td>3
    <td><a href="handouts/handout3.pdf">Object interaction</a> (Ch.3)
<tr><td>4
    <td><a href="handouts/handout4.pdf">Grouping objects</a> (Ch.4)
<tr><td>5
    <td><a href="handouts/handout5.pdf">More sophisticated behavior - libraries</a> (Ch.5)
<tr><td>6
    <td><a href="handouts/handout6.pdf">Well-behaved objects - testing, maintaining, debugging</a> (Ch.6)
<tr><td>7
    <td><a href="handouts/handout7.pdf">Designing classes</a> (Ch.7)
<tr><td>8
    <td><a href="handouts/handout8.pdf">Inheritance</a> (Ch.8)
<tr><td>9
    <td><a href="handouts/handout9.pdf">Polymorphism</a> (Ch.9)
<tr><td>10
    <td><a href="handouts/handout10.pdf">Further abstraction techniques: abstract classes and interfaces</a> (Ch.10)
<tr><td>11
    <td><a href="handouts/handout11.pdf">Building Graphical User Interfaces</a> (Ch.11)
<tr><td>12
    <td><a href="handouts/handout12.pdf">Handling errors</a> (Ch.12)
<tr><td>13
    <td><a href="handouts/handout13.pdf">Designing applications</a> (Ch.13)
<tr><td>14
    <td><a href="handouts/handout14.pdf">Networking</a>
<tr><td>15
    <td>Threads <a href="handouts/handout15a.pdf">part 1</a> <a href="handouts/handout15b.pdf">part 2</a> -- note part 2 is 32 pages
<tr><td>---
    <td><a href="handouts/ch14.pdf">Case study</a> (Ch.14)</a> -- this is not a lecture. Read the handout on 
your own.
<tr><td>Easter Break
    <td>
<tr><td>16
    <td><a href=coursework/class.test/class.test.html>There will be a class test. Time and date to be announced.</a>
</table>
<p>

<h3>Extra Material</h3>
<p>
This section contains slides used in previous years which either go
into a subject in more detail than the handouts or which cover new
areas. Most of them are based on the <i>Core Java</i> books and follow their
structure. Most have source code in the "<a
href="https://www.cs.bris.ac.uk/Teaching/Resources/COMSM0103/projects/extra/">extra"
folder</a> of the example code page.



<p>
<table BORDER>
<tr>
   <td><i>Subject</i></td>
</tr>
<tr>
   <td>Collections
   <a href="handouts/extra/collections.ps">PS</a>
   <a href="handouts/extra/collections.pdf">PDF</a>
   </td>
<tr>
   <td>Exceptions
   <a href="handouts/extra/exceptions.ps">PS</a>
   <a href="handouts/extra/exceptions.pdf">PDF</a>
   </td>
<tr>
   <td>Input/Output
   <a href="handouts/extra/input.output.ps">PS</a>
   <a href="handouts/extra/input.output.pdf">PDF</a>
   </td>
<tr>
   <td>GUI Basics
   <a href="handouts/extra/gui.basics.ps">PS</a>
   <a href="handouts/extra/gui.basics.pdf">PDF</a>
   </td>
<tr>
   <td>Graphics
   <a href="handouts/extra/graphics.ps">PS</a>
   <a href="handouts/extra/graphics.pdf">PDF</a>
   </td>
<tr>
   <td>Event Handling
   <a href="handouts/extra/event.handling.ps">PS</a>
   <a href="handouts/extra/event.handling.pdf">PDF</a>
   </td>
<tr>
   <td>Layout Managers and Text Components
   <a href="handouts/extra/layout.and.text.ps">PS</a>
   <a href="handouts/extra/layout.and.text.pdf">PDF</a>
   </td>
<tr>
   <td>Non-Text Swing Components
   <a href="handouts/extra/non.text.swing.ps">PS</a>
   <a href="handouts/extra/non.text.swing.pdf">PDF</a>
   </td>
<tr>
   <td>Dialogs
   <a href="handouts/extra/dialogs.ps">PS</a>
   <a href="handouts/extra/dialogs.pdf">PDF</a>
   </td>
<tr>
   <td>Applets
   <a href="handouts/extra/applets.ps">PS</a>
   <a href="handouts/extra/applets.pdf">PDF</a>
   </td>
</table>





<h3>Coursework</h3>

You are strongly advised to work through the regular exercises in the
textbook on your own as the course progresses. The text's challenge
exercises are harder and you may not have time to do all of them, but
you can at least think about how you would solve them. 
<p>
Assessed assignments will be posted below. <!-- The assignments will get
much harder as the course progresses, and an assignment worth 20% may
take more than twice as long as an assignment worth 10%.-->
<p>
I assume you are using linux as installed in the labs. Java and BlueJ work under
Windows but I don't have any experience with using them there and I can't provide help.
<p>

<table BORDER>
<tr><td><i>Assignment</i>
    <td><i>Value</i>
    <td><i>Deadline</i>
    <td><i>Feedback</i>
<tr><td><a href="http://www.cs.bris.ac.uk/Teaching/Resources/COMSM0103/coursework/rectangle/rectangle.html">Rectangle</a>
    <td>5%
    <td>Feb. 9, 2007
    <td><a href="projects/feedback/rectangle.discussion.pdf">discussion</a> and <a href="projects/feedback/rectangle.source.pdf">source</a>
<tr><td><a href="http://www.cs.bris.ac.uk/Teaching/Resources/COMSM0103/coursework/club/club.html">Club</a>
    <td>5%
    <td>Feb. 23, 2007
    <td><a href="projects/feedback/club.discussion.pdf">discussion</a>
<tr><td><a href="http://www.cs.bris.ac.uk/Teaching/Resources/COMSM0103/coursework/zuul/zuul.html">Zuul 1</a>
    <td>10%
    <td>March 9, 2007
    <td><a href="coursework/zuul/zuul1">model solution to part 1</a>
<tr><td><a href="coursework/battleships/battleships.html">Battleship Design</a>
         -- <a href="coursework/battleships/design.report.txt">report.txt</a>
    <td>5%
    <td>March 23, 2007
    <td>to be announced
<tr><td><a href="coursework/zuul/zuul2.html">Zuul 2</a>
    <td>15%
    <td>April 23, 2007
    <td>to be announced
<tr><td>Class Test
    <td>25%
    <td>to be announced
    <td>
<tr><td><a href="coursework/battleships/battleships.html">Battleship Implementation</a>  
        -- <a href="coursework/battleships/implementation.report.txt">report.txt</a>
        -- <a href="tar.html">How to make tar files</a>
    <td>35%
    <td>May 4, 2007
    <td>
</table>
<p>
<!-- b>Please note that Zuul is much harder than club and Battleships is much harder than Zuul.<-->



<!--MkFrame-->
</div>
<div class='footer'>
   <div class='footercontent'>
         <span class='leftfootercontent footertext'>
            <a href='/contactus.html' class='footernavlink'>Contact Us</a>
            <span class='navsep'>&nbsp;|&nbsp;</span>
            <a href='/news/' class='footernavlink'>News</a>
         </span>
            </div>
</div>
<div class='legals'>
   <a href='http://www.bris.ac.uk/university/web/terms_conditions.html#copyright' class='navlink'>&copy; 1995-2007 University of Bristol</a>
   <span class='navsep'>&nbsp;|&nbsp;</span>
   <a href='http://www.bris.ac.uk/university/web/terms_conditions.html' class='navlink'>Terms and Conditions</a>
</div>
<div class='pageinfo'>
   <a href='/lib/about.jsp' class='navlink'>About this Page</a>
</div>
</body>
</html>
