CSC 110 - Computer Science Principles - The Beauty and Joy of Computing
Catalog Description:This course explores the principles of computer science while emphasizing the relevance of computing to students and to society. Students will learn about beautiful computing applications that have changed the world and how computing empowers discovery and innovation. Students will learn the joy of programming a computer using a friendly, graphical language, capable of creating apps, simulations, and games. Students who complete the course will be able to solve meaningful problems with computers, apply design processes to take an idea from concept to implementation, develop a computer program, and analyze computing artifacts from both design and computing perspectives. Students will complete a substantial team programming project related to their interests. 20% of seats will be restricted to Computer Science or CS-Intended students. Enrolling students must not have received credit for or a grade in CSC 116 or CSC 200.
Contact Hours:
- Lecture: 3 hours
Co-requisites: None
Restrictions: Cannot have taken CSC111 or CSC112 or CSC113 or CSC114 or CSC116 or CSC200
Coordinator: Dr. Thomas Price
Textbook:
Course Outcomes:
The goal of this course is to introduce students to 7 central ideas of computer science and computational thinking and how these ideas shape the world. Students who complete this course will be able to:
- Creativity
- [Interdisciplinary Perspectives] Develop programs that implement specific design goals, including user interfaces, games, and generative art
- [Interdisciplinary Perspectives] Integrate a creative design process with a software design process to collaboratively develop a program
- Abstraction
- Use multiple levels of abstraction to manage the complexity of a program
- Data & Information
- Explain how data are represented, stored, and transmitted on computers and the internet
- Extract information from data, and use this data to find patterns, and test hypotheses to gain insight and knowledge
- Algorithms
- Explain the difference between algorithms that run in a reasonable time and those that do not
- Develop an algorithm and express that algorithm as a program
- [Interdisciplinary Perspectives] Evaluate computer programs from both an analytical perspective (e.g. efficiency, use of abstractions and algorithms) and a design perspective (e.g. usability, functionality)
- Programming
- Use functions, variables, lists, loops, and conditionals appropriately in a program
- Internet
- Explain characteristics of the Internet and the systems built on it
- List two examples of cybersecurity concerns and identify potential options to address them
- Global Impacts
- [Interdisciplinary Perspectives] Explain how design choices in a computing innovation affect society, economy, or culture in both beneficial and harmful ways
- Explain the connections between computing and real-world contexts, including economic, social, and cultural contexts
Topics:
- Iteration
- Variables
- Conditionals
- Procedures, Abstraction and Decomposition
- Lists and Basic Data Structures
- Algorithms
- The Design Process
- Design Critique and Code Review
- The Internet and Web Programming
- Social Implications of Computing
- Python Programming
- Visualization and Data Analysis
See Course Listings