Skillnader mellan upplagorna

Jämförelsen mellan upplagorna är gjord av Per-Anders Staav. Bedömningen av avsnitten är klart subjektiv så jag reserverar mig för eventuella fel. Om det finns frågor eller kommentarer om texten får ni gärna höra av er till pastaav@algonet.se

Avsnitt som är märkta som uppslagsdel innehåller saker som jag anser alla som läst kursen bör kunna. Det är dock aningen tråkigt att läsa sådana kapitel rakt av så därav klassificeringen som uppslagskaraktär.

Kända tryckfel

Kapitel 1 Upplagan Nya avsnitt Rolighetsgrad enligt mig Intressanthetsgrad enligt mig Kommentar
1 Primitive java - - Kompileringsfel är tråkiga Uppslagskaraktär Grundläggande syntax
2 Reference Types Avsnitt 2.4 och framåt förskjutna ett steg 2.4 ArrayList Kompileringsfel är tråkiga Uppslagskaraktär Exceptions, String samt lite andra klasser beskrivs
3 Object and classes Avsnitt 3.4.5 samt 3.4.6 har bytt plats. Avsnitt 3.5 och 3.6 har bytt plats med varandra. 3.5.4 Instance vs Static är mer utförligt Kompileringsfel är tråkiga Uppslagskaraktär This, static samt ett par andra viktiga begrepp
4 Inheritance Stora delar av kapitlet är helt omgjort 4.2.1 Abstract Methods and Classes, 4.4.4 Interfaces are Abstract Classes, 4.5.1 The Object Class, 4.5.2 The Hierarchy of Exceptions, 4.5.3 I/O: The Decoder Pattern ,4.6 Implementing Generic Components, 4.6.1 Using Object for Genericity, 4.6.2 Wrappers for Primitive Types, 4.6.3 Adapers: Changing an Interface, 4.6.4 Using Interfaces Types for Genericity, 4.6 The Functor (Function Objects), 4.7.1 Nested Classes, 4.7.2 Local Classes, 4.7.3 Anonymous Classes Mycket förklarar indirekt varför saker är som de är i Java. I sig är det inget speciellt roligt men det man kan göra om man har kunskap om arv är mycket coolt. Materialet täcks till stor del av fortsättningskursen. Nödvändig läsning om man vill bli proffs på java. Något som inte är ett direkt mål för datalogikursen, är man intresserad bör man dock åtminstone översiktligt läsa detta kapitel. Allt man kan tänkas vilja veta om arv
5 Algorithm Analysis - - Skönt att någon annan gjort detta tankearbete Texten om sökning är mycket relevant för kursen De teroretiska grunderna om algoritmanalys.
6 The Collections API 6 Data stuctures Kapitlet inkluderar nu det nya Collections API med stora ändringar av numreringen som följd. Avancerade datastrukturer är roliga. Datastrukturer är mycket centrala i kursen. Beskrivning av de klassiska datastrukturerna.
7 Recursion - Nya 7.3.5 nämner att rekursion är viktigt för träd, en ganska given koppling. Häftigt ämne och tuff kod Mycket centralt för kursen. Teorin för rekursion samt exempel.
8 Sorting Algorithms - - Sortering ingår i allmänbildning inom datalogi. Mycket centralt för kursen. Shellsort ingår dock ej. De teroretiska grunderna om algoritmer
9 Randomization - - Bara för den verkligt intresserade. Slumpfenomen är viktigt och tas upp i många kurser på KTH. Grundläggande om slumpmässiga tal.
10 Fun and Games - - Totalt nödvändig kunskap om man vill programmera ett schackspel. Mycket komplicerat och ej direkt användbart i kursen. Teorier om hur man lär datorn spela spel.
11 Stacks and Compilers - - Kompilatorer kanske inte är det roligaste exemplet . Detaljerna är kanske inte så intressanta men visar använding av stackar. Tillämpningar av stackar på kompilatorer.
12 Utilities - Avsnitt 12.1 är omgjort och ger nu koden för Huffmankodning En av de mer intressanta tillämpningar i boken. Klart intressanta exempel på använding av träd. Tillämpningar av träd på komprimering samt korsreferenslistor.
13 Simulation - - Intressant för den som är intresserad av simulering. Har inga direkta kopplingar till kursen. Diskussion och exempel om simulering.
14 Graph and Paths - - Det är svårt att göra bra spel utan att lösa detta problem... Parad exemplet på bredden-först sökning men själva problemet är mycket komplicerat. Teorier om hur man hittar på en karta.
14 Inner Classes and Implementation of ArrayList Ett kapitel som inte finns i gamla boken 15.1 Iterators and Nested Classes, 15.2 Iterators and Inner Classes, 15.3 The AbstractCollection Class, 15.4 Implementations of ArrayList with an Iterator En del finesser med javas klasser används men det finns intressantare kapitel. ArrayList handlar om just sådant som ingår i kursen men inre klasser är klar överkurs. Implementation av ArrayList.
16 Stacks and Queues Gamla kapitel 15 - Det är användningen av köer och stackar som är det viktiga men vad som händer i bakgrunden är också viktigt. Mycket centralt kapitel. Noteras bör att vi fokuserar på länkade list implementation. Implementation av stackar och köer.
17 Linked Lists Gamla kapitel 16 17.5 Implementing the Collections API LinkedList Class Länkade listor är klart estetiskt tilltalande. Länkade listor är nödvändig kunskap om man ska syssla med programmering. Implementation av länkade listor.
18 Trees Gamla kapitel 17 - Klassiska spel som doom kunde funka genom att de använde binärträd. Ett mycket viktigt område med andra ord. Generella träd är mest relevanta för kurser som databasteknik. Hela kapitlet är dock högintressant för denna kurs. Allmän diskussion om träd.
19 Binary Search Trees Gamla kapitel 18 - Ganska tuffa saker men jag har själv aldrig använt dem. AVL, Red-Black Trees, AA- Trees samt B-Trees är alla överkurs. Diskussion hur man kommer till rätta med balanseringsproblemet av binära träd.
20 Hash Tables Gamla kapitel 19 20.6 Hash Tables Versus Binary Search Trees samt 20.7 Hashing Applications fanns tidigare i sammanfattningen sist i kapitlet. Hash-tabeller är ohyggligt häftiga och användbara. Väldigt central datastruktur i kursen. Teorier samt implementering av Hashtabeller.
21 A Priority Queue: The Binary Heap Gamla kapitel 20 - Prioritetsköer är ohyggligt häftiga och användbara. Väldigt central datastruktur i kursen. Teorier samt implementering av prioritetskön.
22 Splay Trees Gamla kapitel 20 - - Överkurs. Teorier samt implementering av splay träd.
23 Merging Priority Queues Gamla kapitel 22 - Mycket intressant ämne. Överkurs. Teorier om hur man slår ihop två prioritetsköer.
24 The Disjoint Set Class Gamla kapitel 23 - - Överkurs. Teorier samt implementering av disjointklassen.
Appendices A,B,C Appendixarna A (java platforms),C (Some library Routines)och delar av D (Applets) saknas Nytt appendix B1 The Abstract Window Toolkit and Swing (historik om javas grafik), B2 Basic Objects in Swing, Component, container, JPanel etc, B3 Basic Principles, Layout managers, Graphics, Event, Event Handling Man behöver en riktig bok om grafik om man ska komma någonstans. Uppslagskaraktär Appendix om operatorer, Grafik samt bitvisa operatorer.