Introduction to Computer Science I
Instructor: Ramgopal Mettu
Teaching Assistant:Ellis Fenske
Computational tools are a critical part of our everyday lives. Software is the driving force behind cutting edge scientific discovery, blockbuster entertainment, and today's fast-paced marketplace. This course aims to be an introduction to techniques and problem-solving approaches that are used to develop some of these tools. At a high level, we will focus on what has recently been called "computational thinking", which is the practice of using abstraction to design and implement algorithms and software to solve problems. A key focus of this course will be to show that computational tasks, and their solutions, arise in many different aspects of our daily lives.
We will learn basic programming principles, as well as applications of computational tools. Python will be the language we shall use to explore the following basic programming concepts:
- Data structures such as lists, vectors, dictionaries, trees
- Iteration and recursion
- Performance analysis via profiling and timing
We will also see how these elementary concepts are used in a number of application areas such as embedded systems, networks, social media, and scientific computing, to name just a few.
At the end of this course, students should be able to:
- Understand how computational tools, and computational thinking, are used to solve problems in a diverse set of application areas.
- Understand the basic theory and organization of a computer system.
- Understand the basic operation of modern software tools (e.g., operating systems, social media tools, embedded operating systems)
- Use Python to implement a computational solution, reason about its performance, and measure its efficiency.
Meeting Time and PlaceLectures: MWF 11:00-11:50a, Stanley Thomas 302
Discussions: Tu 12:30-1:45p (Section 72079), Th 12:30-1:45p (Section 72510), Stanley Thomas 302
|Office:||Stanley Thomas 303E|
|Office Hours:||MW 1-2 or by appointment|
|Teaching Assistant:||Ellis Fenske|
|Office:||Stanley Thomas 309|
|Office Hours:||TuTh 1:45-2:45p|
Template design by Andreas Viklund