| The Course Map shows that the website 
              offers a tremendous amount of material that is probably too large 
              to cover in a single term course. Students enrolled in the A1418(undergraduate) 
              or 5A5448 (graduate) classes at KTH come with diverse backgrounds 
              that range from little or no previous programming experience to 
              those with extensive training in C/C++ or other languages.  Course Tailoring  At a minimum, all students in these two courses should obtain the 
              skills to do basic level programming in Java for technical and scientific 
              tasks. However, students should work with the teacher to tailor 
              the selection of topics and materials they will study so as to best 
              apply their time.   Student who need an introduction to programming in general should 
              focus on the  Java track in Part I: Chapters 1-12. If time 
              permits, they should study the basics of Java networking techniques 
              in Part II: Chapters 13-14. Students with prior programming experience will more quickly traverse 
              the Part I materials and so can delve more deeply into the Java 
              networking topics presented in Part II: Chapters 12-15. Some students 
              will want to study the more sophisticated networking topics discussed 
              in Chapters 16-21 and to learn techniques discussed in Part III: 
              Chapters 22-24 that extend Java to work with other languages and 
              to access platform and hardware capabilities. Course Project Option  Students have the option of developing a course programming project 
              instead of simply performing the exercises at the end of each chapter. 
              The student's program should illustrated an understanding of the 
              Java programming techniques discussed in Part I. So the progam should, 
              for example, use a graphical interface, employ threads, execute 
              input/output operations to read and save disk data, etc. The exercises in the chapters are meant to illustrate the techniques 
              discussed and to  KTH Course Requirements The table below shows the list 
              of essential topics that a student in the A1418/5A5448 classes should 
              understand by the end of the course. The student can demonstrate 
              this by  
              Completion of the 12 Tech Task assignments. (The student 
                is also encouraged to do some or all of the exercises given at 
                the end of each chapter.) 
 
Or a term project that uses the techniques covered by the Tech 
                Tasks. In addition, there will be a final exam that reviews the 
              topics listed here. Sample questions for the final exam are available 
              here.   
              
                 
                  | Topics & 
                    Tasks | Relevant Chapters |   
                  | 
                      Setup the SDK. Basics of creating an applet and an application.Relevance of Java for technical progrmming. | 1 |   
                  | Essential syntax of a Java program. This 
                      includes  
                      Class definition with methods and variables.Declaring variables.Using strings.Loops (for, do-while, etc.)if-else Casting variable of one type into that 
                        of another type.Primitive typesEssentials of floating-point in Java, 
                        e.g. relative precision of float 
                        vs double. Tech Task 1: 
                      Using the Math 
                        class to carry out a computation and print out the result.. | 2, 3 |   
                  | Classes and objects: 
                      InstantiationConstructorsOverloading of methodsPassing arguments by value vs referenceArraysPrimitive type wrapper classesHandling exceptions (i.e. the try-catch 
                        format) static variables and methods Tech Task 2: 
                      Do one of the root finding exercises 
                        in the Physics track or create a Java program to execute 
                        some other mathematical algorithm. | 3 |   
                  |  Class inheritance 
                      Overriding methodsAbstract classInterfaceCasting a reference variable to that of a subclass or 
                        superclass type.this, 
                        super vs. 
                        this(), 
                        super() Tech Task 3: 
                      Create a program that uses the random 
                        number generators in Java. | 4 |   
                  | 
                      Tech Task 4:Packages and import Defining constantsAccess modifiers 
                       Use System.out.printf() 
                        to format the numerical output in one or more of the previous 
                        tech programs. | 5 |   
                  | Basics of creating a graphical user interface: 
                      Swing vs. basic AWTUsing  JPanel 
                        and JButtonUsing simple layouts: FlowLayout, 
                        BorderLayout, 
                        GridLayout 
                        Simple techniques of drawing on a panel.Event handling for a buttonFamiliarity with other components such 
                        as check boxes and radio boxes.Create a user interface with two or more 
                        panels, each holding components. Tech Task 5: 
                      Add a GUI to one of your previous programs 
                        or create a new program that carries out a technical task 
                        of some sort. The program should use input value(s) entered 
                        by the user via the GUI.  | 6, 7 |   
                  | 
                      Threading in Java Thread 
                        subclass  Runnable 
                        interface. Animation Tech Task 6:  
                      Create a program to display a simple 
                        animation of a technical process of some sort.  | 8 |   
                  | 
                      Write text to a file and read it back.
Write binary data to a file and read 
                        it back. Tech Task 7:  
                      Use the Histogram 
                        class from the course, or one of its subclasses, in a 
                        program.  | 9 |   
                  | 
                      ArrayListString 
                        Buildersplit() 
                        method in StringArrays 
                        class Enumerated type. Tech Task 8:  
                      Read in a file with a mix of text and 
                        numbers, carry out an operation with the numbers, and 
                        write the results to a new file. | 10 |   
                  | 
                      Loading and drawing imagesHandling colors Tech Task 9:  
                      Create a program to read in and filter 
                        an image, e.g. remove all but one color band, and display 
                        the before and after images. Or create an animated image with 
                        a mathematical technique such as fractal generation. | 11 |   
                  | 
                      Cursor iconsTiming and performance Tech Task 10:  
                      Enhance one of your previous programs 
                        with two or more techniques from Chapter 12 such as changing 
                        the cursor according to what graphical interface component 
                        it is above. | 12 |   
                  | 
                      Basics of networking.  
                        
                          TCP/IPPortsClient/Server architectures Tech Task 11:  
                      From an application, read a data file 
                        via a URL entered by the user, calculate something from 
                        the data , and display the result. | 13 |   
                  | 
                      ServerSocket 
                        and Socket 
                        classesThreads to handle clients Tech Task 12:  
                      Create a simple server with Java that, 
                        when contacted by a client (e.g. a web browser or your 
                        own custom Java client), runs an algorithm of some sort 
                        and sends a result back to the client in HTML format. 
                         | 14, 15 |      Most recent update: May 9, 2006 |