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]
Resources for Beginners
Learn about the history of computing and how to think like a programmer.
How Aristotle Created the Computer
An article discussing the history of the philosophy behind computer science.
Coding for Dummies (2015)
“…one-stop guide to building a foundation of knowledge in writing computer code for web, application, and software development.”
Think Like a Programmer: An Introduction to Creative Problem-Solving (2012)
“…how to systematically approach every programming task with skill and confidence.”
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.”
Which Language Should You Learn First?
For guidance, one option is Codecademy. Sign up for a free account and learn many languages interactively.
Try the following for more language-specific resources.
HTML and CSS
To start with something simple, try HTML and CSS.
They’re not full “programming languages,” but are necessary tools for web design.
Web development and design foundations with HTML5 (2017)
Find it upstairs in the WCC Library’s QA section. Call # 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.”
Relatively easy programming languages that are in high demand.
Python Crash Course: A Hands-on, Project-Based Introduction to Programming (2015)
“…a fast-paced, thorough introduction to Python that will have you writing programs, solving problems, and making things that work in no time.”
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 (2014)
Find it upstairs in the WCC Library’s QA section. Call # QA76.73.J38 S327 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.
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.”
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.”
Algorithms to live by: the computer science of human decisions (2016)
Find it upstairs in the WCC Library’s BF section. Call # BF39 .C4885 2016
Geek sublime: the beauty of code, the code of beauty (2014)
Find it upstairs in the WCC Library’s PN section. Call # PN56.T37 C426 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).
Wikipedia: Computer Science Portal
A great resource for techology-related fields because it is constantly updated with the latest information.
Articles and eBooks
WCC Library database of computing-related books, videos, etc.
“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.]
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”: