This book is based on the author's experience of 30 years of teaching programming at the University of Oxford and is an excellent choice for early programming courses offered by universities worldwide. It is a rigorous and thoughtfully structured textbook designed to equip students with both the theoretical underpinnings and practical skills essential in today's programming landscape. It describes how to think about computer programs and how to use mathematics as part of that thinking. Many books and online tutorials teach the basics of coding: the syntax of the language, and how to translate an algorithm into code. But how do you come up with that algorithm and know it is correct?
The first part of the book considers small programs that use a loop, and how to demonstrate their correctness using loop invariants. It also covers some algorithms and algorithmic techniques that every programmer should know. The second half of the book considers slightly larger programs. It teaches the basics of modularization, splitting up a program into manageable chunks. It teaches about abstract datatypes, values within a program that can be treated as mathematical values: how to specify their behaviors formally; and how to treat them as abstract mathematical objects when programming. It also teaches how to use data structures to represent abstract datatypes, and what it means for such a representation to be correct. And it presents some abstract datatypes and data structures that every programmer should know. The book is pragmatic: the philosophy is to include enough formality to be convincing and to guide the programmer towards correct code, without getting bogged down in the mathematics.
Each chapter includes questions at the end and a solution manual for those exercises is available for adopting instructors. Source code is also available for download from the author's website or Github. Combining pedagogical clarity with up-to-date industry relevance, Thinking About Programs guides learners through fundamental programming concepts, algorithmic thinking, and problem-solving strategies while fostering a deep understanding of computational logic.
Les informations fournies dans la section « Synopsis » peuvent faire référence à une autre édition de ce titre.
Gavin Lowe is an Emeritus Professor of Computer Science and tutorial fellow at St. Catherine's College, Oxford. He was a professor at the University of Oxford and President of the Senior Common Room at St. Catherine's College. His research interests included the fields of concurrency and computer security and he developed the cryptographic protocol analysis tool Casper. He is a distinguished teacher, winning awards in 2008 and 2010 and is responsible (along with Peter Millican) for the development and establishment of a new joint degree in Computer Science and Philosophy at the University of Oxford in 2012. He received his undergraduate degree in mathematics, a Master's in computation, and his doctorate from Oxford.
Les informations fournies dans la section « A propos du livre » peuvent faire référence à une autre édition de ce titre.
Vendeur : GreatBookPrices, Columbia, MD, Etats-Unis
Etat : As New. Unread book in perfect condition. N° de réf. du vendeur 50852078
Quantité disponible : Plus de 20 disponibles
Vendeur : GreatBookPrices, Columbia, MD, Etats-Unis
Etat : New. N° de réf. du vendeur 50852078-n
Quantité disponible : Plus de 20 disponibles
Vendeur : Grand Eagle Retail, Bensenville, IL, Etats-Unis
Paperback. Etat : new. Paperback. This book describes how to think about computer programs, and how to use mathematics as part of that thinking. Many books and online tutorials teach the basics of coding: the syntax of the language, and how to translate an algorithm into code. But how do you come up with that algorithm? And how can you be confident that the algorithm is correct?The first part of the book considers small programs that use a loop, and how to demonstrate their correctness using loop invariants. It also covers some algorithms and algorithmic techniques that every programmer should know. The second half of the book considers slightly larger programs. It teaches the basics of modularisation, splitting up a program into manageable chunks. It teaches about abstract datatypes, values within a program that can be treated as mathematical values: how to specify their behaviours formally; and how to treat them as abstract mathematical objects when programming. It also teaches how to use data structures to represent abstract datatypes, and what it means for such a representation to be correct. And it presents some abstract datatypes and data structures that every programmer should know.The book is aimed at those who want to obtain a better understanding of programs they work on, and so become better programmers. The target audience ranges from those who are just starting out, to professional programmers. The book aims to be pragmatic: the philosophy is to include enough formality to be convincing and to guide the programmer towards correct code, without getting bogged down in the mathematics. Adopt a mathematical approach to programming by learning how to design algorithms with loop invariants and abstraction. Discover techniques for modularizing code and formally specifying abstract data types with data structures, enabling both beginners and professionals to ensure correct program behavior. This item is printed on demand. Shipping may be from multiple locations in the US or from the UK, depending on stock availability. N° de réf. du vendeur 9798400731631
Quantité disponible : 1 disponible(s)
Vendeur : Rarewaves.com USA, London, LONDO, Royaume-Uni
Paperback. Etat : New. This book describes how to think about computer programs, and how to use mathematics as part of that thinking. Many books and online tutorials teach the basics of coding: the syntax of the language, and how to translate an algorithm into code. But how do you come up with that algorithm? And how can you be confident that the algorithm is correct?The first part of the book considers small programs that use a loop, and how to demonstrate their correctness using loop invariants. It also covers some algorithms and algorithmic techniques that every programmer should know. The second half of the book considers slightly larger programs. It teaches the basics of modularisation, splitting up a program into manageable chunks. It teaches about abstract datatypes, values within a program that can be treated as mathematical values: how to specify their behaviours formally; and how to treat them as abstract mathematical objects when programming. It also teaches how to use data structures to represent abstract datatypes, and what it means for such a representation to be correct. And it presents some abstract datatypes and data structures that every programmer should know.The book is aimed at those who want to obtain a better understanding of programs they work on, and so become better programmers. The target audience ranges from those who are just starting out, to professional programmers. The book aims to be pragmatic: the philosophy is to include enough formality to be convincing and to guide the programmer towards correct code, without getting bogged down in the mathematics. N° de réf. du vendeur LU-9798400731631
Quantité disponible : Plus de 20 disponibles
Vendeur : PBShop.store UK, Fairford, GLOS, Royaume-Uni
PAP. Etat : New. New Book. Shipped from UK. Established seller since 2000. N° de réf. du vendeur FW-9798400731631
Quantité disponible : 15 disponible(s)
Vendeur : GreatBookPricesUK, Woodford Green, Royaume-Uni
Etat : New. N° de réf. du vendeur 50852078-n
Quantité disponible : Plus de 20 disponibles
Vendeur : GreatBookPricesUK, Woodford Green, Royaume-Uni
Etat : As New. Unread book in perfect condition. N° de réf. du vendeur 50852078
Quantité disponible : Plus de 20 disponibles
Vendeur : Rarewaves USA, OSWEGO, IL, Etats-Unis
Paperback. Etat : New. This book describes how to think about computer programs, and how to use mathematics as part of that thinking. Many books and online tutorials teach the basics of coding: the syntax of the language, and how to translate an algorithm into code. But how do you come up with that algorithm? And how can you be confident that the algorithm is correct?The first part of the book considers small programs that use a loop, and how to demonstrate their correctness using loop invariants. It also covers some algorithms and algorithmic techniques that every programmer should know. The second half of the book considers slightly larger programs. It teaches the basics of modularisation, splitting up a program into manageable chunks. It teaches about abstract datatypes, values within a program that can be treated as mathematical values: how to specify their behaviours formally; and how to treat them as abstract mathematical objects when programming. It also teaches how to use data structures to represent abstract datatypes, and what it means for such a representation to be correct. And it presents some abstract datatypes and data structures that every programmer should know.The book is aimed at those who want to obtain a better understanding of programs they work on, and so become better programmers. The target audience ranges from those who are just starting out, to professional programmers. The book aims to be pragmatic: the philosophy is to include enough formality to be convincing and to guide the programmer towards correct code, without getting bogged down in the mathematics. N° de réf. du vendeur LU-9798400731631
Quantité disponible : Plus de 20 disponibles
Vendeur : Brook Bookstore On Demand, Napoli, NA, Italie
Etat : new. N° de réf. du vendeur ATKJWB2TTJ
Quantité disponible : Plus de 20 disponibles
Vendeur : CitiRetail, Stevenage, Royaume-Uni
Paperback. Etat : new. Paperback. This book describes how to think about computer programs, and how to use mathematics as part of that thinking. Many books and online tutorials teach the basics of coding: the syntax of the language, and how to translate an algorithm into code. But how do you come up with that algorithm? And how can you be confident that the algorithm is correct?The first part of the book considers small programs that use a loop, and how to demonstrate their correctness using loop invariants. It also covers some algorithms and algorithmic techniques that every programmer should know. The second half of the book considers slightly larger programs. It teaches the basics of modularisation, splitting up a program into manageable chunks. It teaches about abstract datatypes, values within a program that can be treated as mathematical values: how to specify their behaviours formally; and how to treat them as abstract mathematical objects when programming. It also teaches how to use data structures to represent abstract datatypes, and what it means for such a representation to be correct. And it presents some abstract datatypes and data structures that every programmer should know.The book is aimed at those who want to obtain a better understanding of programs they work on, and so become better programmers. The target audience ranges from those who are just starting out, to professional programmers. The book aims to be pragmatic: the philosophy is to include enough formality to be convincing and to guide the programmer towards correct code, without getting bogged down in the mathematics. Adopt a mathematical approach to programming by learning how to design algorithms with loop invariants and abstraction. Discover techniques for modularizing code and formally specifying abstract data types with data structures, enabling both beginners and professionals to ensure correct program behavior. Shipping may be from our UK warehouse or from our Australian or US warehouses, depending on stock availability. N° de réf. du vendeur 9798400731631
Quantité disponible : 1 disponible(s)