An introduction to fundamentals of computer science. Topics covered include algorithmic design; problem-solving techniques for computer programming; fundamentals of digital logic and computer organization; the role of the operating system; introductory programming methodology, including variables, assignment statements, control statements and subroutines (methods); programming paradigms; the compilation process; theoretical limits of computation; database structures; and social and ethical issues. This class may include students from multiple sections. (Natural Sciences, Elective)
Course Outcomes
- Describe the early human history of computation and the development of tools to aid in computation including computer science pioneers.
- Articulate the social and ethical implications of technology, and issues related to privacy and digital security.
- Describe the main parts of a modern computer and how a computer operates.
- Describe what an algorithm is and develop algorithms to solve problems.
- Demonstrate algorithmic thinking, programming, and debugging.
- Demonstrate working knowledge of how data is represented in the computer including common data types.
- Develop functions in code to make code modular.
- Develop and test functions which accept arguments and return values.
- Write code for a basic sorting algorithm, test the code and prove it works.
- Articulate the difference between a class and an object.
- Write code that instantiates an object and uses the object's methods.
- Write code to work with user input.