Praise for the first edition: "The well-written, comprehensive book...[is] aiming to become a de facto reference for the language and its features and capabilities. The pace is appropriate for beginners; programming concepts are introduced progressively through a range of examples and then used as tools for building applications in various domains, including sophisticated data structures and algorithms...Highly recommended. Students of all levels, faculty, and professionals/practitioners.? —D. Papamichail, University of Miami in CHOICE Magazine ? Mark Lewis’ Introduction to the Art of Programming Using Scala?was the first textbook to use Scala for introductory CS courses. Fully revised and expanded, the new edition of this popular text has been divided into two books. Object-Orientation, Abstraction, and Data Structures Using Scala, Second Edition is intended to be used as a textbook for a second or third semester course in Computer Science. The Scala programming language provides powerful constructs for expressing both object orientation and abstraction. This book provides students with these tools of object orientation to help them structure solutions to larger, more complex problems, and to expand on their knowledge of abstraction so that they can make their code more powerful and flexible. The book also illustrates key concepts through the creation of data structures, showing how data structures can be written, and the strengths and weaknesses of each one. Libraries that provide the functionality needed to do real programming are also explored in the text, including GUIs, multithreading, and networking. The book is filled with end-of-chapter projects and exercises, and the authors have also posted a number of different supplements on the book website. Video lectures for each chapter in the book are also available on YouTube. The videos show construction of code from the ground up and this type of "live coding" is invaluable for learning to program, as it allows students into the mind of a more experienced programmer, where they can see the thought processes associated with the development of the code. About the Authors Mark Lewis is an Associate Professor at Trinity University. He teaches a number of different courses, spanning from first semester introductory courses to advanced seminars. His research interests included simulations and modeling, programming languages, and numerical modeling of rings around planets with nearby moons.? Lisa Lacher is an Assistant Professor at the University of Houston, Clear Lake with over 25 years of professional software development experience. She teaches a number of different courses spanning from first semester introductory courses to graduate level courses. Her research interests include Computer Science Education, Agile Software Development, Human Computer Interaction and Usability Engineering, as well as Measurement and Empirical Software Engineering.
Praise for the first edition: "The well-written, comprehensive book...[is] aiming to become a de facto reference for the language and its features and capabilities. The pace is appropriate for beginners; programming concepts are introduced progressively through a range of examples and then used as tools for building applications in various domains, including sophisticated data structures and algorithms...Highly recommended. Students of all levels, faculty, and professionals/practitioners.? —D. Papamichail, University of Miami in CHOICE Magazine ? Mark Lewis’ Introduction to the Art of Programming Using Scala?was the first textbook to use Scala for introductory CS courses. Fully revised and expanded, the new edition of this popular text has been divided into two books. Object-Orientation, Abstraction, and Data Structures Using Scala, Second Edition is intended to be used as a textbook for a second or third semester course in Computer Science. The Scala programming language provides powerful constructs for expressing both object orientation and abstraction. This book provides students with these tools of object orientation to help them structure solutions to larger, more complex problems, and to expand on their knowledge of abstraction so that they can make their code more powerful and flexible. The book also illustrates key concepts through the creation of data structures, showing how data structures can be written, and the strengths and weaknesses of each one. Libraries that provide the functionality needed to do real programming are also explored in the text, including GUIs, multithreading, and networking. The book is filled with end-of-chapter projects and exercises, and the authors have also posted a number of different supplements on the book website. Video lectures for each chapter in the book are also available on YouTube. The videos show construction of code from the ground up and this type of "live coding" is invaluable for learning to program, as it allows students into the mind of a more experienced programmer, where they can see the thought processes associated with the development of the code. About the Authors Mark Lewis is an Associate Professor at Trinity University. He teaches a number of different courses, spanning from first semester introductory courses to advanced seminars. His research interests included simulations and modeling, programming languages, and numerical modeling of rings around planets with nearby moons.? Lisa Lacher is an Assistant Professor at the University of Houston, Clear Lake with over 25 years of professional software development experience. She teaches a number of different courses spanning from first semester introductory courses to graduate level courses. Her research interests include Computer Science Education, Agile Software Development, Human Computer Interaction and Usability Engineering, as well as Measurement and Empirical Software Engineering.
A Concise Introduction to Programming in Python, Second Edition provides a hands-on and accessible introduction to writing software in Python, with no prior programming experience required. The Second Edition was thoroughly reorganized and rewritten based on classroom experience to incorporate: A spiral approach, starting with turtle graphics, and then revisiting concepts in greater depth using numeric, textual, and image data Clear, concise explanations written for beginning students, emphasizing core principles A variety of accessible examples, focusing on key concepts Diagrams to help visualize new concepts New sections on recursion and exception handling, as well as an earlier introduction of lists, based on instructor feedback The text offers sections designed for approximately one class period each, and proceeds gradually from procedural to object-oriented design. Examples, exercises, and projects are included from diverse application domains, including finance, biology, image processing, and textual analysis. It also includes a brief "How-To" sections that introduce optional topics students may be interested in exploring. The text is written to be read, making it a good fit in flipped classrooms. Designed for either classroom use or self-study, all example programs and solutions to odd-numbered exercises (except for projects) are available at: http://www.central.edu/go/conciseintro/.
Sie ist elegant, schlank, modern und flexibel: Die Rede ist von Scala, der neuen Programmiersprache für die Java Virtual Machine (JVM). Sie vereint die Vorzüge funktionaler und objektorientierter Programmierung, ist typsicherer als Java, lässt sich nahtlos in die Java-Welt integrieren – und eine in Scala entwickelte Anwendung benötigt oft nur einen Bruchteil der Codezeilen ihres Java-Pendants. Kein Wunder, dass immer mehr Firmen, deren große, geschäftskritische Anwendungen auf Java basieren, auf Scala umsteigen, um ihre Produktivität und die Skalierbarkeit ihrer Software zu erhöhen. Das wollen Sie auch? Dann lassen Sie sich von den Scala-Profis Dean Wampler und Alex Payne zeigen, wie es geht. Ihre Werkzeugkiste: Schon bevor Sie loslegen, sind Sie weiter, als Sie denken: Sie können Ihre Java-Programme weiter verwenden, Java-Bibliotheken nutzen, Java von Scala aus aufrufen und Scala von Java aus. Auch Ihre bevorzugten Entwicklungswerkzeuge wie NetBeans, IntelliJ IDEA oder Eclipse stehen Ihnen weiter zur Verfügung, dazu Kommandozeilen-Tools, Plugins für Editoren, Werkzeuge von Drittanbietern – und natürlich Ihre Programmiererfahrung. In Programmieren mit Scala erfahren Sie, wie Sie sich all das zunutze machen. Das Hybridmodell: Die Paradigmen "funktional" und "objektorientiert" sind keine Gegensätze, sondern ergänzen sich unter dem Scala-Dach zu einem sehr produktiven Ganzen. Nutzen Sie die Vorteile funktionaler Programmierung, wann immer sich das anbietet – und seien Sie so frei, auf die guten alten Seiteneffekte zu bauen, wenn Sie das für nötig halten. Futter für die Profis: Skalierbare Nebenläufigkeit mit Aktoren, Aufzucht und Pflege von XML mit Scala, Domainspezifische Sprachen, Tipps zum richtigen Anwendungsdesign – das sind nur ein paar der fortgeschrittenen Themen, in die Sie mit den beiden Autoren eintauchen. Danach sind Sie auch Profi im Programmieren mit Scala.
With its flexibility for programming both small and large projects, Scala is an ideal language for teaching beginning programming. Yet there are no textbooks on Scala currently available for the CS1/CS2 levels. Introduction to the Art of Programming Using Scala presents many concepts from CS1 and CS2 using a modern, JVM-based language that works well for both programming in the small and programming in the large. The book progresses from true programming in the small to more significant projects later, leveraging the full benefits of object orientation. It first focuses on fundamental problem solving and programming in the small using the REPL and scripting environments. It covers basic logic and problem decomposition and explains how to use GUIs and graphics in programs. The text then illustrates the benefits of object-oriented design and presents a large collection of basic data structures showing different implementations of key ADTs along with more atypical data structures. It also introduces multithreading and networking to provide further motivating examples. By using Scala as the language for both CS1 and CS2 topics, this textbook gives students an easy entry into programming small projects as well as a firm foundation for taking on larger-scale projects. Many student and instructor resources are available at www.programmingusingscala.net
Kluge Bücher über Objektorientierte Analyse & Design gibt es viele. Leider versteht man die meisten erst, wenn man selbst schon Profi-Entwickler ist... Und was machen all die Normalsterblichen, die natürlich davon gehört haben, dass OOA&D dazu beiträgt, kontinuierlich tolle Software zu schreiben, Software, die Chef und Kunden glücklich macht - wenn sie aber nicht wissen, wie sie anfangen sollen? Sie könnten damit beginnen, dieses Buch zu lesen! Denn Objektorientierte Analyse & Design von Kopf bis Fuß zeigt Ihnen Schritt für Schritt, wie Sie richtige OO-Software analysieren, entwerfen und entwickeln. Software, die sich leicht wiederverwenden, warten und erweitern lässt. Software, die keine Kopfschmerzen bereitet. Software, der Sie neue Features spendieren können, ohne die existierende Funktionalität zu gefährden. Sie lernen, Ihre Anwendungen flexibel zu halten, indem Sie OO-Prinzipien wie Kapselung und Delegation anwenden. Sie lernen, die Wiederverwendung Ihrer Software dadurch zu begünstigen, dass Sie das OCP (das Open-Closed-Prinzip) und das SRP (das Single-Responsibility-Prinzip) befolgen. Sie lernen, wie sich verschiedene Entwurfsmuster, Entwicklungsansätze und Prinzipien zu einem echten OOA&D-Projektlebenszyklus ergänzen, UML, Anwendungsfälle und -diagramme zu verwenden, damit auch alle Beteiligten klar miteinander kommunizieren können, und Sie die Software abliefern, die gewünscht wird. Diesem Buch wurden die neuesten Erkenntnisse aus der Lerntheorie und der Kognitionswissenschaft zugrunde gelegt - Sie können davon ausgehen, dass Sie nicht nur schnell vorankommen, sondern dabei auch noch eine Menge Spaß haben!
Hauptziel des Buches ist die Vermittlung des Grundbestandes der Algebraischen Zahlentheorie einschließlich der Theorie der normalen Erweiterungen bis hin zu einem Ausblick auf die Klassenkörpertheorie. Gleichberechtigt mit algebraischen Zahlen werden auch algebraische Funktionen behandelt. Dies geschieht einerseits um die Analogie zwischen Zahl- und Funktionenkörpern aufzuzeigen, die besonders deutlich im Falle eines endlichen Konstantenkörpers ist. Andererseits erhält man auf diese Weise eine Einführung in die Theorie der "höheren Kongruenzen" als eines wesentlichen Bestandteils der "Arithmetischen Geometrie". Obgleich das Buch hauptsächlich algebraischen Methoden gewidmet ist, findet man in der Einleitung auch einen kurzen Beweis des Primzahlsatzes nach Newman. In den Kapiteln 7 und 8 wird die Theorie der Heckeschen L-Reihen behandelt einschließlich der Verteilung der Primideale algebraischer Zahlkörper in Kegeln.
Steigen Sie mit diesem Buch in die Welt des Programmierens ein und zwar mit der beliebten Programmiersprache Java! Schritt für Schritt werden Sie mit den Grundlagen, wie zum Beispiel Variablen, Schleifen und objektorientierter Programmierung, vertraut gemacht, probieren viele anschauliche Beispiele aus und schreiben Ihr erstes eigenes Programm. Dieses Buch steht Ihnen bei allen Herausforderungen jederzeit mit hilfreichen Tipps und Lösungsvorschlägen zur Seite, sodass Sie auf Ihrem Weg zum Programmierer optimal gerüstet sind! Mit den Programmbeispielen zum Herunterladen können Sie das Gelernte direkt ausprobieren.
Der Autor vermittelt eine solide Grundlage f r die Entwicklung leistungsstarker, skalierbarer und sicherer UNIX-Netzwerkanwendungen. Ausgehend von der Programmierung parallel zueinander arbeitender Prozesse erfolgt eine kompakte Einf hrung in die UNIX-Systemprogrammierung und in die Programmierung von POSIX-Threads (Pthreads), die insbesondere f r parallele Anwendungen Effizienzsteigerungen bietet. Anschlie_end wird die Entwicklung von Netzwerkanwendungen ausf hrlich dargelegt: basierend auf den Prinzipien des TCP/IP-Protokolls, wie z.B. Drei-Wege-Handshake, erfolgt eine fundierte Darstellung der Programmierung von UNIX-Sockets, dem De-facto-Standard f r die UNIX-Netzwerkprogrammierung, und aller wichtigen Socket-Funktionen und -Optionen sowie der IP-Namens- und IP-Adressumwandlungen. Der Autor legt damit ein solides Fundament f r die Entwicklung netzwerkfdhiger Anwendungen. Dabei wird auf Sicherheitsaspekte insbesondere durch die ausf hrliche Darstellung des SSL- und TLS-Protokolls eingegangen.
EINE TOUR DURCH C++ // - Dieser Leitfaden will Ihnen weder das Programmieren beibringen noch versteht er sich als einzige Quelle, die Sie für die Beherrschung von C++ brauchen – aber diese Tour ist wahrscheinlich die kürzeste oder einfachste Einführung in C++11. - Für C- oder C++-Programmierer, die mit der aktuellen C++-Sprache vertrauter werden wollen - Programmierer, die in einer anderen Sprache versiert sind, erhalten ein genaues Bild vom Wesen und von den Vorzügen des modernen C++ . Mit dem C++11-Standard können Programmierer Ideen klarer, einfacher und direkter auszudrücken sowie schnelleren und effizienteren Code zu schreiben. Bjarne Stroustrup, der Designer und ursprüngliche Implementierer von C++, erläutert die Details dieser Sprache und ihre Verwendung in seiner umfassenden Referenz „Die C++-Programmiersprache“. In „Eine Tour durch C++“ führt Stroustrup jetzt die Übersichtskapitel aus der Referenz zusammen und erweitert sie so, dass auch erfahrene Programmierer in nur wenigen Stunden eine Vorstellung davon erhalten, was modernes C++ ausmacht. In diesem kompakten und eigenständigen Leitfaden behandelt Stroustrup – neben Grundlagen – die wichtigsten Sprachelemente und die wesentlichen Komponenten der Standardbibliothek. Er präsentiert die C++-Features im Kontext der Programmierstile, die sie unterstützen, wie die objektorientierte und generische Programmierung. Die Tour beginnt bei den Grundlagen und befasst sich dann mit komplexeren Themen, einschließlich vieler, die neu in C++11 sind wie z.B. Verschiebesemantik, einheitliche Initialisierung, Lambda-Ausdrücke, verbesserte Container, Zufallszahlen und Nebenläufigkeit. Am Ende werden Design und Entwicklung von C++ sowie die in C++11 hinzugekommenen Erweiterungen diskutiert. Programmierer erhalten hier – auch anhand von Schlüsselbeispielen – einen sinnvollen Überblick und praktische Hilfe für den Einstieg. AUS DEM INHALT // Die Grundlagen // Benutzerdefinierte Typen // Modularität // Klassen // Templates // Überblick über die Bibliothek // Strings und reguläre Ausdrücke // E/A-Streams // Container // Algorithmen // Utilities // Numerik // Nebenläufigkeit // Geschichte und Kompatibilität
Das Werk eines großen Mannes in wenigen Worten zusammenzu fassen, wird notwendig, wenn diese Worte in Stein gemeißelt werden sollen. Auch im Geleitwort zur Autobiographie eines solchen Mannes ist es angebracht, Kürze walten zu lassen und durch wenig Worte den Autor um so mehr zu ehren. Für Konrad Zuse lauten diese Worte: Schöpfer der ersten vollautomatischen, programmgesteuer ten und frei programmierten, in binärer Gleitpunktrechnung arbeitenden Rechenanlage. Sie war 1941 betriebsfähig. So oder ähnlich wird man einmal schreiben müssen, wenn Konrad Zuses Büste in der Walhalla neben denen Gregor Mendels und Wilhelm Conrad Röntgens - um nur zwei zu nennen, denen zuletzt diese Ehre zuteil wurde - aufgestellt wird. München,August1984 F. L. Bauer v GELEITWORT Wie lange und ausführlich immer eine Autobiographie ist, sie kann nicht vollständig sein. Ich freue mich daher, in diesem Geleitwort ein Beispiel dafür anführen zu können, wie das Werk des Verfassers ausgestrahlt hat. Es ist ein kleines Beispiel, von einer Art wie es Dutzende geben mag, aber ein persönliches, das als mein Dank für die Anregung und Unterstützung - die zu einer dauerhaften Freundschaft geführt hat - gelten darf, aber auch als symbolischer Dank aller anderen, die von Konrad Zuse Richtung und Hilfe erhalten haben.
Lernen mit elektronischen Dokumenten wird immer wichtiger. Der entscheidende Vorteil des Mediums Computer ist die Möglichkeit, dynamische Dokumente zu erzeugen. Diese Dynamik kann zum einen in den einzelnen Inhalten liegen (Animationen, Simulationen) oder in der Erstellung der Dokumente (adaptive Anpassung an die einzelnen Benutzer/innen). Die Lerndokumente liegen dafür in Modulen, nicht als ein großes Dokument vor. Um diese Vorteile nutzen zu können, müssen die Module beschrieben sein. Das Buch bietet ein Beschreibungsschema, mit dem aus einer Wissensbasis von unzusammenhängenden Modulen ein gut lesbares und auf die Bedürfnisse der einzelnen Leser/innen angepasstes webbasiertes Dokument erstellt werden kann.
Der Band wirft Schlaglichter auf die aktuelle Diskussion, wie semantische Information in natürlichsprachlichen Lexika und in der maschinellen Sprachverarbeitung erfasst und repräsentiert werden kann. Dabei werden grundlegende Fragen wie die Repräsentation von Semantik im Grundwortschatz, die Behandlung von Derivationsinformation und von idiomatischen Ausdrücken sowie Phänomene semantischer Übertragung im Sprachkontakt behandelt. Ein großer Teil der Artikel behandelt das Forschungsgebiet aus computerlinguistischer Perspektive.

Best Books