Course Outline

CS161 Introduction to Computer Science

Winter 2011

(the following outline is subject to change!)

 

Introduction to Computers and Programming

 

Date:

Topic:

Readings, Assignments:

1/4

Introduction

Login to Desire 2 Learn

 

Syllabus,

 

 

Objectives for the Course,

 

 

Instructor Biography,

Please read the syllabus

 

Review Outline.

 

 

Discuss the Science of Computing

 

 

Problem Solving

 

 

1/6

Introduction to Solving Problems with Computers

 

Problem Solving, Abstraction and Program Engineering, Software Development Method, Programming Languages, Processing a High-Level Language Program, Using a Computer.

 

 

Examples of what we can do with programs

 

In class: Learn how to login and enter in programs developed in class

 

 

Graded Online Class Discussion: Thought Process of Problem Solving

 

Algorithms

 

1/11

Problem Solving Fundamentals and Algorithms

Read: Appendix A

 

Introduction to algorithms

Why are algorithms necessary

Decision steps in an algorithm,

Checking the correctness of an Algorithm, Problem Solving Strategies.

 

 

 

Create algorithms in class to prepare for Homework #1

 

 

 

 

Date:

Topic:

Readings, Assignments:

 

1/13

Survey of Languages and Examples

Introduction to what we can do with different type of languages.

Chapter 1

 

 

Experience examples of the general form of programs, statements, data types.

Get familiar with terminology.

 

 

 

 

 

 

 

 

 

Graded Online Class Discussion:

Putting the Pieces Together of a Program

 

 

 

DUE DATE:  Homework #1 is Due  1/18/2011

 

 

1/18

What does Selective Execution mean?

 

 

Control Structures, Logical Structures, Introduction to the if statement

 

 

Experience selective execution in a variety of programming languages.

 

 

 

 

 

 

 

 

 

 

 

1/20

More Selective Execution

 

 

Nested if statements and Multiple Alternatives.

 

 

Graded Online Class Discussion: Tracing a Program or Algorithm, Debugging and Testing Programs.

 

 

 

 

 

Homework #2 is Due 1/25/2011

 

1/25

What about Repetition?

Read: Chapter 2

 

How can we cause code to be repeated?

Structured programming versus using go-to’s

 

 

Evaluate example of programs using loops

 

 

Example of different types of loops and discuss why/when they are used

 

 

 

1/27

Practice Repetition

  

 

 

 

 

 

 

Review of for, while, and do-while Loops, Nested Loops, Debugging and Testing Programs, Common Programming Errors

 

 

 

 

 

 

 

 

 

 

2/1

Social, Professional, Ethical Issues

Homework #3 is Due

 

 

Review for Midterm

 On 2/1/2011

 

 

Question and Answer session

 

 

 

 

Graded Online Class Discussion:

Professional Ethics and Responsibilities

 

 

 

 

 


Procedural Abstraction

 

Date:

Topic:

Readings, Assignments:

2/3

Solving problems with functions

Read: Chapter 5

 

Independent Modules, Functions with and without Arguments; Use examples in different languages

 

 

2/8             Midterm

 

2/10

Writing Functions in High Level Languages

 Read: Chapter 6

2/15, 2/17

 

 

 

Functions in the Design Process, Using Function Return

 

 

Values for Decision and Loop Control, Output Arguments,

 

 

Syntax Rules.

 

 

 

 

 

Graded Online Class Discussion:

Incorrectly Ordered Argument Lists,

 

 

Generalized Functions, Choosing Argument Names.

 

 

Homework #4 is Due On 2/15

 

2/22

Working with Arrays and Records

Read: Chapter 3

2/24

How can arrays be beneficial

                   

Graded Online Class Discussion:

Examine examples using arrays

Learn high level syntax for array processing

 

 

 

3/1

Building Algorithms and Solving Problems

Begin using conditionals, loops, and functions to solve larger problems.

Verifying Correctness

Read: Chapter 6

Homework #5 is Due

On 3/1

 

3/3

 

Continue with algorithm development

Examine solutions to problems posed in class

 

Graded Online Class Discussion:

Let’s go back to algorithms and rethink our approach!

 

 

 

 

 

 

 

 

 

3/8

Review for the Final

 

 

Software Design Methodologies

Homework #6 is

Due 3/10

 3/10

The software challenge, the software life cycle, procedural abstraction, modular abstraction, data abstraction

 

Practice!

 

 

 

 

           

 

 

 

 

*** Notice the day and Time of the in-class Final Exam ***

 

Comprehensive Final Exam Thursday March 17th  10:15am-12:05