This practical book provides a highly accessible introduction to natural language processing, the field that supports a variety of language technologies, from predictive text and email filtering to automatic summarization and translation. With it, you'll learn how to write Python programs that work with large collections of unstructured text. You'll access richly annotated datasets using a comprehensive range of linguistic data structures, and you'll understand the main algorithms for analyzing the content and structure of written communication.
An object-oriented approach to Python web development gives you a much more fully-realised experience of the language. The flexibility and power of Python, combined with the improvements in design, coding and software maintenance that object-oriented programming allows, is built to respond to the challenges of increasingly more complex and data-intensive application development, making difficult tasks much more manageable. This book has been designed to make this sophisticated approach to programming easier to learn quickly, providing you with a clear and coherent learning journey.
Beginning by looking at a range of design patterns for the _init_() method, you will learn how to effectively use a range of Python’s special methods to create classes that integrate with Python’s built-in features, and find detailed explorations and demonstrations of callables and contexts, containers and collections, numbers, and decorators and mixins, with a focus on best practices for effective and successful design. The book also features information that demonstrates how to create persistent objects using JSON, YAML, Pickle, CSV, XML, Shelve and SQL and shows you how to transmit objects between processes. Going further into OOP, you’ll find expert information on logging, warnings, unit testing as well as working with the command line.
Learn how to program by diving into the R language, and then use your newfound skills to solve practical data science problems. With this book, you’ll learn how to load data, assemble and disassemble data objects, navigate R’s environment system, write your own functions, and use all of R’s programming tools.
RStudio Master Instructor Garrett Grolemund not only teaches you how to program, but also shows you how to get more from R than just visualizing and modeling data. You’ll gain valuable programming skills and support your work as a data scientist at the same time.
Now in its Tenth Edition, Concepts of Programming Languages introduces students to the main constructs of contemporary programming languages and provides the tools needed to critically evaluate existing and future programming languages. Readers gain a solid foundation for understanding the fundamental concepts of programming languages through the author's presentation of design issues for various language constructs, the examination of the design choices for these constructs in some of the most common languages, and critical comparison of the design alternatives. In addition, Sebesta strives to prepare the reader for the study of compiler design by providing an in-depth discussion of programming language structures, presenting a formal method of describing syntax, and introducing approaches to lexical and syntactic analysis.
Based on a new classification of algorithm design techniques and a clear delineation of analysis methods, Introduction to the Design and Analysis of Algorithms presents the subject in a coherent and innovative manner. Written in a student-friendly style, the book emphasizes the understanding of ideas over excessively formal treatment while thoroughly covering the material required in an introductory algorithms course. Popular puzzles are used to motivate students' interest and strengthen their skills in algorithmic problem solving. Other learning-enhancement features include chapter summaries, hints to the exercises, and a detailed solution manual.
Digital Fundamentals, Eleventh Edition, continues its long and respected tradition of offering students a strong foundation in the core fundamentals of digital technology, providing basic concepts reinforced by plentiful illustrations, examples, exercises, and applications. The text’s teaching and learning resources include an Instructor’s Manual, PowerPoint lecture slides, and Test Bank, as well as study resources for students.
Have you ever wondered how your GPS can find the fastest way to your destination, selecting one route from seemingly countless possibilities in mere seconds? How your credit card account number is protected when you make a purchase over the Internet? The answer is algorithms. And how do these mathematical formulations translate themselves into your GPS, your laptop, or your smartphone? This book offers an engagingly written guide to the basics of computer algorithms. In Algorithms Unlocked, Thomas Cormen―coauthor of the leading college textbook on the subject―provides a general explanation, with limited mathematics, of how algorithms enable computers to solve problems.
Have you ever wondered how your GPS can find the fastest way to your destination, selecting one route from seemingly countless possibilities in mere seconds? How your credit card account number is protected when you make a purchase over the Internet? The answer is algorithms. And how do these mathematical formulations translate themselves into your GPS, your laptop, or your smartphone? This book offers an engagingly written guide to the basics of computer algorithms. In Algorithms Unlocked, Thomas Cormen―coauthor of the leading college textbook on the subject―provides a general explanation, with limited mathematics, of how algorithms enable computers to solve problems.
This second edition expands upon the solid, practical foundation established in the first edition of the text. A new four-part organizational structure increases the flexibility of the text, and all material is presented in a straightforward manner accompanied by an array of examples and visual diagrams.
প্রোগ্রামিং শেখাটা ঠিক অন্য লেখাপড়ার মতো নয় যে, বই পড়লাম, উদহারণ দেখলাম, কয়েকটি অনুশীলনীর সমাধান করে পরীক্ষার জন্য প্রস্তুত হয়ে গেলাম কিংবা কিছু প্রশ্নের উত্তর মুখস্থ করে ফেললাম। প্রোগ্রামিং হচ্ছে একটি বিশেষ দক্ষতা (skill), যেটি অর্জন করার জন্য প্রয়োজন বিষয়টির ওপর পরিষ্কার ধারণা এবং পর্যাপ্ত চর্চা। শুধু বই পড়ে গেলে এবং চর্চা না করলে প্রোগ্রামিং শেখা হয় না। আবার কেন কী করছি, সেটি না বুঝে শুধু চর্চা করলেও কাজ হয় না। বাংলাদেশে শিক্ষার্থীদের কাছে প্রোগ্রামিং বিষয়টি একটু কঠিন মনে হওয়ার পেছনে বেশ কিছু কারণ আছে, যার একটি হচ্ছে, বাংলা ভাষায় ভালো বইয়ের অভাব। এই অভাবটি আমরা পূরণ করার চেষ্টা করছি বেশ কয়েক বছর ধরেই। আমার সৌভাগ্য যে, এক্ষেত্রে কিছুটা সফলও হয়েছি, কারণ আজকাল কম্পিউটার বিজ্ঞানের শিক্ষার্থীদের পড়ার টেবিলে আমার ‘কম্পিউটার প্রোগ্রামিং ১ম খণ্ড’ বইটি থাকে, এমনকি স্কুল-কলেজের অনেক ছেলেমেয়েরাও বইটি পড়ে প্রোগ্রামিং শিখছে। বইটির দ্বিতীয় খণ্ড, তৃতীয় খণ্ড, প্রোগ্রামিং সমস্যা সমাধান শুরু করার জন্য ‘৫২টি প্রোগ্রামিং সমস্যা ও সমাধান’ এবং প্রোগ্রামিং শিখতে গিয়ে যারা নিজেদেরকে গণিতে দুর্বল ভাবে, তাদের জন্য ‘গণিত করব জয়’ আমরা প্রকাশ করেছি। তারপরও আমার মনে হচ্ছিল, শিক্ষার্থীরা যখন কম্পিউটার প্রোগ্রামিং ১ম খণ্ড বইটি পড়ে, তখন তাদের আরো বেশি প্রোগ্রামিং চর্চা করা দরকার, অনুশীলন করা দরকার। তাই এমন একটি বইয়ের চিন্তা মাথায় আসে, যেখানে প্রচুর উদাহরণ থাকবে, সেই সঙ্গে থাকবে অনুশীলনী। তাহমিদ রাফির সঙ্গে আলোচনার পরে সে বইটি লিখতে সানন্দে রাজি হয়ে যায়। আমাদের দেশে একাদশ-দ্বাদশ শ্রেণির শিক্ষার্থীদের আইসিটি কোর্সে ‘সি প্রোগ্রামিং’ আছে। আবার দেশের হাতেগোনা কয়েকটি বাদে সব বিশ্ববিদ্যালয়েই সি ভাষা দিয়ে প্রোগ্রামিং শেখানো শুরু করা হয়। সেসব শিক্ষার্থী ছাড়াও যে-কেউ যখন প্রথম সি ভাষায় প্রোগ্রামিং শিখবে, তখন বইটি তার কাজে লাগবে। বইটি কেবল পড়লে হবে না, বইয়ের উদাহরণগুলো দেখে বুঝে তারপরে কম্পিউটারে টাইপ করে কম্পাইল ও রান করতে হবে। আউটপুট সঠিক আসলো কি না, বোঝার চেষ্টা করতে হবে, না বুঝলে বন্ধুদের সঙ্গে আলোচনা করতে হবে। তারপর অনুশীলনীর প্রতিটি সমস্যার সমাধান করতে হবে। আশা করি, বইটির সমস্যাগুলো অনুশীলন করলে শিক্ষার্থীদের প্রোগ্রামিংয়ের ভিত্তি মজবুত হবে।