CS 10051 Introduction to Computer Science Class
Overview Syllabus Schedule Labs Homework
Instructors Resources FAQ Lectures Notices

CS 10051 Course Overview

Classroom, Labs and Textbook

  • Class lectures will be in room 228 on the 2nd floor of the Math/CS building. This is an auditorium-style lecture hall with double projectors and wireless Internet.
  • Lab rooms assigned to this course are room 139 and room 162, both on the 1st floor of the Math/CS building.
  • Please see the the syllabus for the textbook, course requirements, and other important information.
  • In addition to the instructors, Prof. Gwenn Volkert and Prof. Paul Wang, we also have a nubmer of TAs and graders working for this course as well. The course offers lectures and hands-on labs to help you learn.

Course Description

Introduction to Computer Science (CS10051) is a broad introduction to the most important concepts in computer science. This course is designed for students with no previous background in computing. Students who successfully complete Introduction to Computer Science can easily move on to the next course for Computer Science majors--Programming and Problem Solving (CS23021).

This course will expose students to

  1. The basic principles and practices of procedural programming using instructional techniques that places a high value on programs that not only generate the "right answers", but that are also easy to read, maintain, and modify. These elements are important in any programming situation, regardless of the specific language used.
          The graphical Scratch programming environment gets students started thinking about computer programming. We then introduce the C++ programming language and use it for most of the exercises. A short overview of JavaScript and HTML is also presented near the end of the course.

  2. The field of computer science as it exists today, with some reference to its past and future. This will enable us to touch on a variety of really fascinating topics and intellectual paradigms, e.g., some of the most important ideas in Computer Science, such as

    • Machine Architecture: When you purchased your last personal computer, what did you actually pay for? In fact, you received hardware that executes machine instructions in the "fetch-execute cycle" at a very high speed, some memory, a hard disk, and some input-output devices (like a keyboard and display). You will learn what machine instructions are, how the fetch-execute cycle works, and how memory is used to enable the machine to do its job. You will learn the operation and mechanisms of the physical computer at the hardware level and we aim to demystify a lot of computer jargon that you might not have clear definitions for.
    • Programs and Data: Computers are universal computing machines that can be programmed to do many different tasks. How data are represented, stored, and manipulated by computers and how tasks can be coded in programs are important aspects of Computer Science.
    • Internet and the Web: You will learn how computers communication with one another, what a Local Area Network (LAN) is, and about how "packets" travel around networks. You will also learn about Wide Area Networks (WANs), especially the Internet, what they are and how they work. You will learn some networking terminology (IP, TCP, TCP/IP) and you will learn about addressing schemes, network servers, domain names, and more.
    • Language Translation: The basic computer hardware can only understand very primitive instructions. How then do high-level language programs, such as C++ programs, get executed by the computer? One solution is to build a translator that will transform the high-level language programs into a form that the machine can process. You will learn what people mean when they say they "compiled" a program, and you will do some compiling yourself.
    • Computer Hardware and Circuitry: Out of very simple "logic gates", such as the AND, OR and NOT, we can easily create circuits that compute primitive and complex functions. It's interesting also to understand how such circuits are embodied by transistors and very large scale integration (VLSI) chips.

Go to Top of Page