Computer Science is the art of programming a computer.
C.A.R. (Tony) Hoare
Why Study Computer Science?
Make an Impact
CS affects all aspects of modern life. It blends logic, problem-solving, creativity, and innovation. It needs all kinds of people to bring us into the future.
Learn Something Fun
Computer science can be fun! It also requires a different skill set than traditional math and science. Try it out even if you are not interested in those fields
[Association for Computing Machinery (ACM); U. S. Occupational Outlook Handbook]
Learn about the history of computing
How Aristotle Created the Computer An article discussing the history of the philosophy behind computer science.
Crash Course: Computer Science (2017) Origins of modern computers, ideas behind hardware and software, nature of smart devices, and future of computing. About 10 minutes each.
Open Data Structures: An Introduction (2013) An introduction to data structures and algorithms “that will serve the needs of all undergraduate students or self-directed learners.”
Khan Academy: Algorithms A course on “introductory computer science algorithms, including searching, sorting, recursion, and graph theory. Learn with a combination of articles, visualizations, quizzes, and coding challenges.”
Think Like a Programmer: An Introduction to Creative Problem-Solving (2012) “…how to systematically approach every programming task with skill and confidence.”
Which Language Should You Learn First?
Multi-Language Learning Apps
Interactive coding tutorials, designed for online learning
HTML and CSS
To start with something simple, try HTML and CSS.Web Development & Design Foundations with HTML 5 (print Stacks QA 76.76 .H94 F455 2017)
Introduction to HTML5 A novice-level course that explores theory and practice with an emphasis on standards to promote accessibility.
Introduction to CSS3 A course emphasizing “learning how to write CSS rules, how to test code, and how to establish good programming habits.”
Learn Python the Hard Way A free online text on reading and writing basic Python designed for beginners.
MIT OpenCourseWare: Introduction to Computer Science and Programming in Python (2016) A course using Python 3.5 “for students with little or no programming experience.” It’s designed to show how computation can help solve problems and to teach students confidence in writing small, useful programs regardless of major.
Khan Academy: Intro to SQL: Querying and managing data “Learn how to use SQL to store, query, and manipulate data. SQL is a special-purpose programming language designed for managing data in a relational database, and is used by a huge number of apps and organizations.”
Java, C++, or C#
Harder languages to start with. Especially important for mobile app development as taught at WCC.
(Java for Android, C# for Windows Mobile, Objective-C for iOS).
Java: a Beginner’s Guide (print Stacks QA 76.73 .J38S327 2014)
Saylor Academy: Introduction to Computer Science I Some history of software development and the fundamentals of programming using Java.
Saylor Academy: C++ Programming Essential elements of C++, the basics of object-oriented programming, and more.
Pro C# 5.0 and the .NET 4.5 Framework, 6th Ed. (2012) A guide providing “a rock-solid foundation in the C# programming language and the core aspects of the .NET platform.” C# is now in version 7 as of 2017. Google C# 6 or C# 7 for changes from 5.
StackOverflow A “community of 7.2 million programmers, just like you, helping each other.”
StackExchange: Computer Science A “question and answer site for students, researchers and practitioners of computer science.”
BlogsThe latest from Jeff Atwood’s Coding Horror blog. Atwood founded the sites Stack Overflow and Stack Exchange.
- Building a PC, Part IX: Downsizing
- The Rise of the Electric Scooter
- Electric Geek Transportation Systems
Association for Computing Machinery (ACM) “…brings together computing educators, researchers, and professionals to inspire dialogue, share resources, and address the field’s challenges.”
IEEE Computer Society “The world’s leading membership organization dedicated to computer science and technology.”
Computing Research Association (CRA) “Uniting industry, academia, and government to advance computing research and change the world.”
BooksAlgorithms to live by: the computer science of human decisions (print Stacks BF 39 .C4885 2016) Geek sublime: the beauty of code, the code of beauty (print Stacks PN 56 .T37C426 2014)
Recommended Reading for Developers Jeff Atwood’s recommended reading list, with a focus on “how people work” in order to understand how “to make better software.”
Just for Fun
Concepts and Vocabulary
Dictionary of Algorithms and Data Structures A dictionary of “algorithms, algorithmic techniques, data structures, archetypal problems, and related definitions” from the National Institute of Standards and Technology (NIST).
Articles and eBooks
ITPro™ WCC Library database of computing-related books, videos, etc.
CiteSeerX “An evolving scientific literature digital library and search engine that has focused primarily on the literature in computer and information science.” Developed and hosted at Penn State University.
Communications of the ACM (via Business Source Elite) “Articles to advance the science and arts of information processing, to promote the free interchange of information among specialists and the public, and develop and maintain integrity and competence of individuals in the field.”
IEEE Access (via Directory of Open Access Journals) A “a multidisciplinary, applications-oriented, all-electronic archival journal that continuously presents the results of original research or development across all of IEEE’s fields of interest. Supported by author publication fees, its hallmarks are a rapid peer review and publication process with open access to all readers.”
History and Future of CS Education
Education in Computer Science (via Credo Reference) A history of education in CS.
Computer science education: why does it suck so much and what if it didn’t? CS educator Ashley Gavin discusses why our country needs more people in CS and argues why we should not be teaching it as though it’s “an elite club for only the smartest people in the country.” [Jul 2015, 20 min.]The latest entries from the Computing Education Blog:
- Promote diversity by teaching to many goals for computing
- The goal of the first CS course should be to promote confidence if we’re going to increase diversity in CS: Paying off on a bet
- Dijkstra’s Truths about Computing Education Aren’t: The many kinds of programming
Textbooks that you can modify, revise and distribute to you students.
The Missing Link: An Introduction to Web Development and Programming “…provides the developer with an understanding of the various elements of web development by focusing on the concepts and fundamentals” through examples.
Foundations of Computation For a one semester introductory theoretical computer science course. Includes “discrete mathematics, automata theory, formal language theory, and the theory of computation, along with practical applications to computer science.” Prerequisite: “General familiarity with computer programming.”
Think Python 2nd Ed.: How to Think Like a Computer Scientist An “introduction to Python programming for beginners.” Defines “all terms” and develops “each new concept in a logical progression.”
Introduction to Programming Using Java “…directed mainly towards beginning programmers … might also be useful for experienced programmers who want to learn something about Java.”
O’Reilly Media Academic Solutions How to use books from O’Reilly Media in your classroom. O’Reilly will provide classroom copies of many of their books free of charge to educators with a limit of two per semester. The files have no digital rights management (DRM), i.e. the publisher has not applied any technology to restrict their use.
Women in Computer Science
Why are the majority of CS students male?
When Women Stopped Coding Many of the earliest “computers” were women, so when did women stop? This article explains that women’s involvement in CS began declining when personal computers showed up in U.S. homes and were marketed as a male hobby.
What can people do about it?
Encourage Women’s Interest in Tech
Women in Computer Science: Getting Involved in STEM This guide from computerscience.org offers statistics, suggestions, and support resources.
Geek Gurl Diaries A video series by Carrie Anne Philbin, an award-winning U.K.-based CS educator. Focuses on “using and making technology, along side interviews with inspirational women in the fields of computing, science, technology and engineering.”
Reach Out to Others
IEEE Women in Engineering (WIE) “…one of the largest international professional organizations dedicated to promoting women engineers and scientists and inspiring girls around the world to follow their academic interests to a career in engineering.”
Association for Women in Science (AWIS) “We are dedicated to driving excellence in STEM by achieving equity and full participation of women in all disciplines and across all employment sectors.”
National Center for Women & Information Technology The”only national non-profit focused on women’s participation in computing across the entire ecosystem, helping nearly 900 organizations recruit, retain, and advance women from K-12 and higher education through industry and entrepreneurial careers
by providing support, evidence, and action.
The latest news from the Anita Borg Institute, “a social enterprise founded on the belief that women are vital to building technology that the world needs”: