- Grades 6-12
- Industry Outreach
- Alumni
- Research
- Students
- News & Events
- Our Department

These are some of the books that have been used during the past few offerings of the following courses, either as textbooks, other references or course reserves. This list is for your information, but it is **not an indication that these items are currently being used or will be used in the future**. For ebooks and other editions, please check the Reading Room catalogue.

Only courses that are being offered in the current term have materials on course reserve. See the list of **Current Course Reserves **[pdf].

Jump to:

CPSC Undergrad Courses | CPSC Grad Courses | Other Courses

- Fluency with information technology : skills, concepts & capabilities. 6th ed. / Snyder.

T 58.5 S645 2015 (plus older edition) - On intelligence / Hawkins, Blakeslee.

QP 376 H294 2005 - The invisible computer : why good products can fail, the personal computer is so complex, and information appliances are the solution / Norman.

HC 79 H53 N67 1998

- How to design programs : an introduction to programming and computing / Felleisen ... [et al.].

QA 76.6 H697 2001 (also available online)

- Bebop to the Boolean boogie : an unconventional guide to electronics fundamentals, components, and processes / Maxfield.

TK 7868 D5 M323 2003 - Discrete mathematics with applications. 4th ed. / Epp.

QA 39.2 E65 2011 (plus older editions)

Student solutions manual and study guide for discrete mathematics with applications. 4th ed. QA 39.2 E65 2011 suppl. - How to prove it : a structured approach. 2nd ed. / Velleman.

QA 9 V38 2006 (plus older edition)

- The Java tutorial : a short course on the basics. 6th ed. / Zakhour, Kannan, Gallardo.

QA 76.73 J38 Z35 2013 (plus ebook version and older edition)

- Computer systems : a programmer's perspective. 3rd ed. / Bryant, O'Hallaron.

QA 76.5 B795 2016 (plus older editions)

- See CPSC 121
- ADTs, data structures, and problem solving with C++ / Nyhoff.

QA 76.73 C153 N868 2005 - C++ primer plus. 6th ed. / Prata.

QA 76.73 C153 P735 2012 (plus older edition) - Discrete mathematics and its applications. 6th ed. / Rosen.

QA 39.3 R67 2007 (plus older edition) - Objects, abstraction, data structures, and design : using C++ / Koffman, Wolfgang.

QA 76.64 K63 2006 - Student's solutions guide to accompany Discrete mathematics and its applications. 6th ed. / Rosen ; prepared by Grossman.

QA 39.3 R67 2007 guide

- Data structures using C / Thareja

QA 76.9 D35 T53 2014

- Big C++. 2nd ed. / Horstmann, Budd.

QA 76.73 C153 H668 2009 - Programming : principles and practice using C++ / Stroustrup.

QA 76.73 C153 S82 2009

- Principles of computer system design : an introduction / Saltzer, Kaashoek.

QA 76.9 S88 S255 2009

- Practical programming : an introduction to computer science using Python. 2nd ed. / Campbell ... [et al.].

QA 76.73 P98 P73 2013 (plus older edition

CPSC 303 (Numerical Approximation and Discretization)

- A first course in numerical methods / Ascher, Greif.

QA 297 A748 2011 - Scientific computing : an introductory survey. 2nd ed. / Heath.

Q 183.9 H4 2002

- Database management systems. 3rd ed. / Ramakrishnan, Gehrke.

QA 76.9 D3 R237 2002 (plus ebook version and older edition)

- Software engineering. 8th ed. / Sommerville.

QA 76.758 S657 2007 (plus older edition)

- Essentials of programming languages. 3rd ed. / Friedman, Wand.

QA 76.7 F73 2008 (plus older edition) - Programming languages : application and interpretation / Krishnamurthi.

QA 76.7 K85 2007 (Also available online) - Structure and interpretation of computer programs. 2nd ed. / Abelson, Sussman

QA 76.6 A255 1996 - The Little Schemer. 4th ed. / Friedman, Felleisen.

QA 76.73 S34 F75 1996 - The seasoned schemer / Friedman, Felleisen

QA 76.73 S34 F77 1996

- Haskell : the craft of functional programming. 3rd ed. / Thompson.

QA 76.62 T434 2011 - The art of Prolog : advanced programming techniques. 2nd ed. / Sterling, Shapiro

QA 76.73 P76 S74 1994

- See CPSC 213
- Modern operating systems. 3rd ed. / Tanenbaum.

QA 76.76 O63 T359 2008 (plus older edition)

- Foundations of 3D computer graphics / Gortler.

T 385 G658 2012 - Fundamentals of computer graphics. 4th ed. / Shirley, Marschner.

T 385 S434 2016 (plus older editions) - OpenGL programming guide : the official guide to learning OpenGL, version 4.3. 8th ed. / Shreiner ... [et al.].

T 385 O636 2013 (plus older edition) - OpenGL 4.0 shading language cookbook / Wolff.

T 385 W644 2011 (also available online) - WebGL programming guide / Matsuda, lea

T 385 M38 2013

- Computer networking : a top-down approach. 7th ed. / Kurose, Ross.

TK 5105.875 I57 K88 2017 (plus older editions)

- Algorithm design / Kleinberg, Tardos

QA 76.9 A43 K54 2006 - Algorithm design : foundations, analysis, and Internet examples / Goodrich, Tamassia.

QA 76.9 A43 G67 2002 - Algorithms / Dasgupta, Papadimitriou, Vazirani

QA 9.58 D37 2008 - Computers and intractability / Garey, Johnson

QA 76.6 G35 1979 - Introduction to algorithms. 3rd ed. / Cormen, Leiserson, Rivest, Stein.

QA 76.6 C662 2009 (plus older editions)

- Artificial intelligence : a modern approach. 3rd ed. / Russell, Norvig.

Q 335 R86 2010 (plus older edition) - Artificial intelligence : foundations of computational agents / Poole, Mackworth.

Q 342 P66 2010

- Artificial intelligence : a modern approach. 3rd ed. / Russell, Norvig.

Q 335 R86 2010 (plus older edition)

- Interaction design : beyond human-computer interaction. 4th ed. / Rogers, Sharp, Preece.

QA 76.9 H85 P72 2015 (plus older edition) - User interface design and evaluation / Stone ... [et al.].

QA 76.9 U83 U835 2005

- Numerical linear algebra / Trefethen, Bau.

QA 184 T74 1997

- See CPSC 304
- Database system concepts. 6th ed. / Silberschatz, Korth, Sudarshan.

QA 76.9 D3 S5637 2011 (plus older editions) - Database systems : the complete book. 2nd ed. / Garcia-Molina, Ullman, Widom.

QA 76.9 D3 G3653 2009 (plus older edition)

- Linear and nonlinear optimization / Griva, Nash, Sofer.

T 57.74 G75 2009 - Numerical optimization. 2nd ed. / Nocedal, Wright.

QA 402.5 N62 2006 (Also available online)

- Software architecture : foundations, theory, and practice / Taylor, Medvidovic, Dashofy.

QA 76.754 T39 2010 - Visual complexity : mapping patterns of information / Lima

Q 223 L55 2011

- Modern compiler implementation in Java. 2nd ed. / Appel.

QA 76.73 J38 A65 2002

- Operating systems. 3rd ed. / Nutt.

QA 76.76 O63 N89 2004 - Operating systems : principles and practice. 2nd ed. / Anderson, Dahlin

QA 76.76 O63 A545 2014 - The design and implementation of the FreeBSD operating system / McKusick; Neville-Neil

QA 76.76 O63 M398745 2005

- Concurrency : state models & Java programs / Magee, Kramer.

QA 76.642 M34 2006 - Distributed computing : principles & applications / Liu.

QA 76.9 D5 L58 2003 - Distributed systems : concepts and design. 5th ed. / Coulouris ... [et al.].

QA 76.9 D5 C68 2012 (plus older edition) - Distributed systems : principles and paradigms. 2nd ed. / Tanenbaum, Van Steen

QA 76.9 D5 T36 2007 - The Go programming language / Donovan, Kernighan

QA 76.73 G63 D65 2015 - Principles of computer system design : an introduction / Saltzer, Kaashoek

QA 76.9 S88 S255 2009 - Programming in Go : creating applications for the 21st century / Summerfield

QA 76.73 G63 S86 2012

- See CPSC 317

- Was CPSC 448B (Breadth Course for Computer Systems & Design)
- The art of multiprocessor programming / Herlihy, Shavit

QA 76.6 H5244 2012 - An introduction to parallel programming / Pacheco

QA 76.642 P29 2011 - Principles of parallel programming / Lin, Snyder.

QA 76.642 L558 2008 - Programming massively parallel processors : a hands-on approach / Kirk, Hwu

QA 76.642 K57 2013

- See CPSC 320

- Introduction to the theory of computation. 3rd ed. / Sipser.

QA 267 S56 2013 (plus older editions) - JFLAP : an interactive formal languages and automata package / Susan H. Rodger, Thomas W. Finley.

QA 267.3 R63 2006

- See CPSC 322

- Curves and surfaces in geometric modeling : theory and algorithms / Gallier.

QA 567 G28 2000

- Computer vision : a modern approach. 2nd ed. / Forsyth, Ponce.

TA 1634 F78 2012 (plus older edition) - Computer vision : models, learning, and inference / Prince.

TA 1634 P75 2012 - A guided tour of computer vision / Nalwa.

TA 1632 N275 1993 - Multiple view geometry in computer vision. 2nd ed. / Hartley, Zisserman.

TA 1634 H38 2003 - Pattern classification. 2nd ed. / Richard O. Duda, Peter E. Hart, David G. Stork.

Q 327 D83 2000

- Computer animation : algorithms and techniques. 3rd ed. / Rick Parent

TR 897.7 P36 2012 (plus older edition)

- A gift of fire : social, legal, and ethical issues for computing and the Internet. 4th ed. / Baase.

QA 76.9 C66 B3 2013 - Ethics for the information age. 7th ed. / Quinn.

QA 76.9 M65 Q56 2017 (plus older editions) - The social impact of computers. 3rd ed. / Rosenberg.

QA 76.9 C66 R64 2004 (plus older edition)

- See CPEN 441 (was EECE 418)

- Bioinformatics : the machine learning approach. 2nd ed. / Baldi, Brunak.

QH 506 B35 2001 - Biological sequence analysis : probabilistic models of proteins and nucleic acids / Durbin ... [et al.].

QP 620 B576 1998 (plus ebook version) - Problems and solutions in biological sequence analysis / Borodovsky, Ekisheva.

QU 58 B67 2006

- Concrete mathematics : a foundation for computer science / Graham, Knuth, Patashnik.

QA 39.2 G733 1994 - Introduction to algorithms. 3rd ed. / Cormen ... [et al.].

QA 76.6 C662 2009 (plus older edition) - Randomized algorithms / Motwani, Raghavan.

QA 274 M68 1995

- Introduction to the theory of computation. 3rd ed. / Sipser.

QA 267 S56 2013 (plus older editions)

- Artificial intelligence : a modern approach. 3rd ed. / Russell, Norvig.

Q 335 R86 2010 (plus older edition) - Artificial intelligence : foundations of computational agents / Poole, Mackworth.

Q 342 P66 2010

- Speech and language processing : an introduction to natural language processing, computational linguistics, and speech recognition. 2nd ed. / Jurafsky, Martin.

P 98 J87 2009 (plus older edition)

- Principles of database and knowledge-base systems. Vol. 1-2 / Ullman

QA 76.9 D3 U443 1988

- A guided tour of computer vision / Nalwa.

TA 1632 N275 1993 - Computer vision : a modern approach. 2nd ed. / Forsyth, Ponce.

TA 1634 F78 2012 (plus older edition) - Computer vision : algorithms and applications / Szeliski

TA 1634 S94 2011 - Computer vision : models, learning, and inference / Prince.

TA 1634 P75 2012 - Digital image processing. 2nd ed. / Gonzalez, Woods.

TA 1632 G66 2002 - High-level vision : object recognition and visual cognition / Ullman.

QP 475 U44 1995 - Introduction to Fourier optics. 3rd ed. / Goodman.

QC 355 G65 2005 - Introductory techniques for 3-D computer vision / Trucco, Verri.

TA 1634 T78 1998 - Multiple view geometry in computer vision. 2nd ed. / Hartley, Zisserman.

TA 1634 H38 2003 (plus older edition) - Pattern classification. 2nd ed. / Duda, Hart, Stork.

Q 327 D83 2000 - Pattern classification and scene analysis / Duda, Hart.

Q 327 D83 1973 - Robot vision / Horn.

TJ 211.3 H67 1986 - The measurement of visual motion / Hildreth.

BF 241 H53 1984 - Three-dimensional computer vision : a geometric viewpoint. / Faugeras.

TA 1632 F38 1993 - Vision : a computational investigation into the human representation and processing of visual information / Marr.

QP 475 M27 1982

- The formal semantics of programming languages : an introduction / Winskel.

QA 76.7 W555 1993 - Semantics engineering with PLT Redex / Felleisen, Findler, Flatt.

QA 76.73 R227 F45 2009 - Types and programming languages / Pierce.

QA 76.7 P54 2002

- Probabilistic robotics / Thrun, Burgard, Fox.

TJ 211 T575 2005

- Applied numerical linear algebra. / Demmel.

QA 184 D455 1997 - A first course in numerical methods / Ascher, Greif.

QA 297 A748 2011 - Iterative methods for sparse linear systems. / Saad.

QA 188 S17 1995 - Matrix analysis and applied linear algebra / Meyer.

QA 188 M495 2000 - Matrix computations. 3rd ed. / Golub, Van Loan

QA 188 G65 1996

- See also CPSC 418
- Parallel programming: techniques and applications using networked workstations and parallel computers. 2nd ed. / Wilkinson, Allen.

QA 76.642 W54 2005 (plus older edition) - Parallel programming with MPI / Pacheco.

QA 76.642 P3 1997 - Principles of parallel programming / Lin, Snyder.

QA 76.642 L558 2008

- See CPSC 502

- Polygon mesh processing / Botsch ... [et al.].

QA 447 P62 2010

- Computer vision : a modern approach. 2nd ed. / Forsyth, Ponce.

TA 1634 F78 2012 (plus older edition) - Computer vision : algorithms and applications / Szeliski.

TA 1634 S94 2011

- Computer animation : algorithms and techniques. 3rd ed. / Rick Parent

TR 897.7 P36 2012 (plus older edition)

- Biological learning and control : how the brain builds representations, predicts events, and makes decisions / Shadmehr, Mussa-Ivaldi.

QP 376 S4373 2012 - The brain's sense of movement / Berthoz.

QP 493 B47 2000 - Clinical mechanics of the hand / Brand.

WE 830 B817 1985 - The computational neurobiology of reaching and pointing : a foundation for motor learning / Shadmehr, Wise.

QP 303 S487 2005 - Computational science and engineering / Strang

TA 330 S73 2007 - Introduction to dynamic systems : theory, models, and applications / Luenberger.

QA 402 L84 1979 - An introduction to natural computation / Ballard.

QP 356 B345 1997 - Microcosms of the brain : what sensorimotor systems reveal about the mind / Tweed.

QP 454 T85 2003 - The neurology of eye movements / Leigh, Zee.

RE 731 L44 2006 (+DVD) - Numerical methods for evolutionary differential equations / Ascher

QA 377 A827 2008 - Principles of neural science / edited by Kandel, Schwartz, Jessell.

QP 355.2 P76 2000 - Theoretical neuroscience : computational and mathematical modeling of neural systems / Dayan, Abbott.

QP 363.3 D39 2001

- Foundations of machine learning / Mohri, Rostamizadeh, Talwalkar.

Q 325.5 M64 2012 (also available online) - Machine learning : a probabilistic perspective / Murphy.

Q 325.5 M87 2012 (also available online)

- See also Game Theory Reading List
- Multiagent systems : algorithmic, game-theoretic, and logical foundations / Shoham, Leyton-Brown.

QA 76.76 I58 S75 2008 - A course in game theory / Osborne, Rubinstein.

HB 144 O733 1994 - Algorithmic game theory / edited by Nisan ... [et al.].

QA 269 A43 2007

- Graph drawing : algorithms for the visualization of graphs / Battista ... [et al.].

T 385 G6934 1999 - Planar graph drawing / Nishizeki, Rahman.

QA 166 N568 2004

- Probability and computing : randomized algorithms and probabilistic analysis / Mitzenmacher, Upfal

QA 274 M574 2005 - Reactive search and intelligent optimization / Battiti, Brunato, Mascia.

QA 402.5 B38 2008 (Also available online) - Stochastic local search : foundations and applications / Hoos; Stutzle.

T 57.79 H66 2005 - Tuning metaheuristics : a machine learning perspective / Birattar.

QA 402.5 B57 2009

- Programming in Go : creating applications for the 21st century / Summerfield

QA 76.73 G63 S86 2012 (also available on Kindle and Kobo)

- Convex optimization / Boyd, Vandenberghe

QA 402.5 B69 2004 - The elements of statistical learning : data mining, inference, and prediction. 2nd ed. / Hastie, Tibshirani, Friedman.

Q 325.75 H37 2009 (plus older edition) - Machine learning : a probabilistic perspective / Murphy.

Q 325.5 M87 2012 - Pattern recognition and machine learning / Bishop.

Q 327 B57 2006

- Numerical linear algebra / Trefethen, Bau.

QA 184 T74 1997

- See CPSC 302

- See CPSC 344
- Readings in human-computer interaction : toward the year 2000 / Baecker ... [et al.].

QA 76.9 H85 R43 1995

- See CPSC 445

- Convex optimization / Boyd, Vandenberghe.

QA 402.5 B69 2004 (also available online) - Nonlinear programming / Bertsekas.

T 57.8 B47 1999 - Numerical optimization. 2nd ed. / Nocedal, Wright.

QA 402.5 N62 2006 (also available online)

- Visualization analysis and design / Munzner

QA 76.9 I52 M86 2015

- Engineering problem solving with C. 4th ed. / Etter

QA 76.73 C15 E56 2013 (plus older edition) - Engineering with Excel / Larsen.

TA 345 L37 2005 - Introduction to C / Etter

QA 76.73 C15 E853 1999 - Programming in C. 4th ed. / Stephen G. Kochan

QA 76.73 C15 K63 2015

- Computer systems : a programmer's perspective. / Bryant, O'Hallaron.

"Permanent" BCS copy. See also CPSC 213. - Discrete mathematics with applications. 3rd ed. / Epp.

"Permanent" BCS copy. See also CPSC 121. - Introduction to algorithms. 2nd ed. / Cormen, Leiserson, Rivest, Stein.

"Permanent" BCS copy. See also CPSC 320. - See also ENGL 301

- See information page for Introduction to Software Systems

- Asking the right questions : a guide to critical thinking. 9th ed. / Browne, Keeley.

PN 83 B785 2010 - The art of scientific investigation / Beveridge.

Q 180 A1 B48 2005

- Was EECE 259
- Computer organization and design : the hardware/software interface. ARM ed. / Patterson, Hennessy

QA 76.9 C643 P37 2017 (plus older edition) - Digital design : a systems approach / Dally, Harting

TK 7868 D5 D328 2012 - Fundamentals of digital logic with VHDL design. 2nd ed. / Brown, Vranesic.

TK 7888.4 B76 2005 (plus older edition)

- Was EECE 210
- Effective Java. 2nd ed. / Bloch

QA 76.73 J38 B57 2008 - Program development in Java : abstraction, specification, and object-oriented design / Liskov

QA 76.73 J38 L58 2000

- Was EECE 310
- Program development in Java : abstraction, specification, and object-oriented design / Liskov.

QA 76.73 J38 L58 2000

- Was EECE 314
- Modern operating systems. 3rd ed. / Tanenbaum.

QA 76.76 O63 T359 2008 (plus older edition)

- Was EECE 476
- Computer architecture : a quantitative approach. 5th ed. / Hennessy, Patterson.

QA 76.9 A73 P377 2012 (plus older edition)

- Distributed systems : concepts and design. 5th ed. / Coulouris, et al

QA 76.9 D5 C68 2012

- Was EECE 418
- Doing psychology experiments / David W. Martin.

BF 181 M315 2000 - Interaction design : beyond human-computer interaction. 3rd ed. / Rogers, Sharp, Preece.

QA 76.9 H85 P72 2011 (plus older edition) - Interactive system design / Newman, Lamming.

QA 76.9 H85 N48 1995 - The design of everyday things / Norman.

TS 171.4 N67 1988

- Information security : principles and practice. 2nd ed. / Stamp

QA 76.9 A25 S69 2011 - Security engineering : a guide to building dependable distributed systems. 2nd ed. / Anderson

QA 76.9 A25 A54 2008

- Was EECE 450
- Engineering economic analysis / Newnan, et al.

TA 177.4 E527 2013

- Introduction to computer security / Goodrich, Tamassia

QA 76.9 A25 G655 2011 - Secrets and lies : digital security in a networked world / Schneier

QA 76.9 A25 S352 2015

- Readings in human-computer interaction : toward the year 2000 / Baecker ... [et al.].

QA 76.9 H85 R43 1995 - The sackbut blues : Hugh Le Caine, pioneer in electronic music / Young.

ML 410 L52 Y68 1989

- Modern processor design : fundamentals of superscalar processors / Shen, Lipasti

TK 7895 M5 S52 2004

- The H.264 advanced video compression standard. 2nd ed. / Richardson

TK 6680.5 R52 2010 (plus older edition)

- Software project management. 5th ed. / Hughes, Cotterell.

QA 76.758 H84 2009

- Elements of information theory. 2nd ed. / Cover, Thomas.

Q 360 C68 2006 - Error control coding. 2nd ed. / Lin, Costello

QA 268 L55 2004 - Information theory, inference, and learning algorithms / MacKay

Q 360 M23 2003

- Mobile wireless communications / Schwartz.

TK 5103.2 S37 2004 - Wireless communications and networking / Garg.

TK 5103.2 G374 2007 - Wireless communications and networks. 2nd ed. / Stallings.

TK 5103.2 S83 2004 - Wireless networking / Kumar, Manjunath, Kuri.

TK 5105.78 K86 2008

- Reinforcement learning : an introduction / Sutton, Barto.

Q 325.6 S88 1998 - Fundamentals of neural networks : architectures, algorithms, and applications / Fausett.

QA 76.87 F38 1994

- See CPSC 317

- Was EECE 360
- Modern control systems. 11th ed. / Dorf, Bishop.

TJ 216 D67 2008 (plus older edition)

- Was EECE 466 (Digital Signal Processing Systems)
- Digital Image Processing Using MATLAB / Gonzalez, Woods, Eddins.

TA 1632 G66 2004 - Understanding digital signal processing. 3rd ed. / Lyons.

TK 5102.9 L96 2011

- Kept with BCS Program course reserves
- The concise Canadian writer's handbook. 2nd ed. / Messenger.

PE 1408 C59 2013 - The concise Canadian writer's handbook. Student workbook. 2nd ed. / Messenger.

PE 1408 C592 2013 - Technical communication. 2nd ed. / Rodman.

T 11 R64 1996

- Single variable calculus : early transcendentals. 7th ed. / Stewart

QA 303.2 S772 2012 - Student solutions manual for single variable calculus early transcendentals. 7th ed.

QA 303.2 S7722 2012 - Study guide for Stewart's Single variable calculus : early transcendentals. 7th ed.

QA 303.2 S7723 2012

- Multivariable calculus. 7th ed. / Stewart.

QA 303.2 S735 2012 - Student solutions manual for multivariable calculus, seventh edition / Clegg, Frank.

QA 303.2 S74 2012

Home | About Us : Access · Services | Articles & Indexes | Books & Journals : Journals · eBooks : Kindle Kobo · eJournals | Course Reserves : Past Course Reserves | Learning & Media | Research & Publications : Research Tools · Technical Reports · Theses | Subject Resources : Careers & Job Hunting · Data Analytics · Game Design & Development · Game Theory · General Interest · Programming Interviews · Software Systems · Technology & Society

Vancouver, B.C.
V6T 1Z4 Canada

Tel: 604-822-3061 |
Fax: 604-822-5485

General: help@cs.ubc.ca

Undergrad program: undergrad-info@cs.ubc.ca

Graduate program: grad-info@cs.ubc.ca