CS 10051: Introduction to Computer Science What is the course about? Organizations for the first course in computer science course – Learn the “language of the year” be it Java, C++, C#, Python, Visual Basic, etc. Problems with this approach: 1) A programming Students come to believe computer science is the same as programming. It isn’t. Programming is to computer science like writing is to an English major. All computer scientists can program, but they do many other things as well. Organizations - continued 2) Study the hardware only. How is data represented in a computer? How does a computer function? Problems with this approach: Computer science is not just about machines although all computer scientists understand the basics of how a computer is logically constructed. Machines are to computer science like microscopes are to biologists and telescopes are to astronomers. However, the computer is a bit more complicated than these and some understanding of its “innards” helps explain why certain things can and cannot be done. Organization - continued 3) Learn how to use various types of software such as word processors, spreadsheets, web designers, etc. Problems with this approach: Most computer scientists view these tasks as being in the realm of “computer literacy”, not computer science. While computer scientists can use these tools, normally they do not take courses covering these topics. These topics are covered in CS10001 (Computer Literacy) Organization - continued Depth first approach – start with the most abstract ideas, the development of algorithms, and concentrate on these. Only after many designs are done, will any concrete examples be examined. Problem with this approach: 4) Many students, especially beginning students, have difficulty with the level of abstraction, although some do find it a worthwhile approach. Organization - continued first – provide an overview of many topics and some depth in each. 5) Breath Hardware System software Programming languages Algorithm design Applications such as artificial intelligence, database, natural language processing, etc. Complexity theory Breadth First Organization This is the approach we will take. It’s somewhat like learning the first week of many upper division courses. One goal is to help you answer, “What does a computer scientist do?” and “What can’t a computer do?” We hope that knowing those answers will help you no matter what you decide to do in the future. And, of course, we hope you will find that working with computers is FUN and intellectually stimulating! Course goals 1. To introduce you to the formal discipline of computer science and its terminology. 2. To foster your appreciation of the range of ideas that form the bedrock on which the discipline of computer science rests. 3. To hone your abilities to use scientific methodology for investigating the nature and use of computing in the world. 4. To develop in you an appreciation of what computing can do and can not do to aid the study of any discipline. Course goals – continued 5. To introduce the experimental as well as the inductive nature of the computer science discipline and help you distinguish between these approaches. 6. To improve your ability to write and discuss scientific issues in computing. 7. To improve your ability to read and understand scientific materials in computing. 8. To develop in you a familiarity with computing that will allow you to grow with the discipline in future years. What are not goals for course To instruct you in the use of specific computing products such as Microsoft Office Products or a particular operating system. 2. To instruct you which button to push on which screen. 3. To teach you to program in the "computer language of the year". 4. To make you an expert in all of the areas on which we will touch.