....................................................................................................................................................................................................................................... Computer Science 161 - Fall 2019

### Meetings:

MWF 9:30PM-10:20PM Bagby 111

### Instructor:

Professor Tom Valente
Bagby 123 x6210
email: tvalente@hsc.edu

MWR 2:30-4:00 PM

### Textbook:

Foundations Of Computer Science, 2nd Edition by Forouzan and Mosharraf

### Course Description:

Computer Science is the study of the kinds of problems that computers can solve and how they actually, in the end, solve them. At the heart of computer science is the notion of algorithm . An algorithm is a careful and thorough step-by-step description (or "recipe") of how to solve a problem. The process of programming a computer begins with the programmer expressing (perhaps informally) an algorithm that will do so. The process continues with the programmer then encoding the algorithm in a programming language such as Java or C++. Remarkably, a computer does not understand nor can it execute instructions written in such languages. Instead, the algorithm is executed by a computer's hardware, the circuits of which understand only 0 and 1 (by detecting either high or low voltage).

The first part of the course will focus on how the computer, at its lowest levels, actually processes information. We'll learn how all information, regardless of its type (textual, numerical, audio, video) is represented in binary. We'll then learn how a computer's circuits can perform fundamental tasks such as adding two numbers or comparing two numbers.

After we've understood enough about the behavior of the computer at is lowest levels, we'll "zoom out" to think about what a person (i.e. programmer) must do in order to have the computer solve a problem. We'll study algorithms, both how to express them and how to understand whether or not an algorithm can produce answers in a reasonable amount of time. We'll do this by investigating algorithms to solve problems such as sorting a list of numbers or searching a list of names for some desired name.

Of course, an algorithm must expressed as a computer program in order for a computer to execute its instructions. Thus, later in the course, we will look at how computer programming languages have evolved to the ones that are in use today. We'll use a modern high-level programming language to learn about both procedural and object-oriented programming, the latter being particularly important in modern programming.

Finally, we'll investigate one of today's hot issues - that of secure communications. We'll study a couple of modern methods for encoding secret messages (an area known as Cryptography). In doing so, we'll understand once and for all that computers DO have limitations, and that this is not necessarily a bad thing!

 In-class Tests (3 in class - Sep 27th, Nov 4th, Nov 25th) 30% (12-12-6) Final Exam (Monday Dec 9th at 2:00PM) 25% Quizzes 10% Homework 35%
Tests must be taken at the date and time announced, unless you provide a legitimate excuse prior to the time of the test. Quizzes must be taken when given.

### Notes

Friday Aug 30   Wednesday Sep 4   Wednesday Sep 11
Test 1 Study Guide

Weeks of Sep 23 and Sep 30   Friday Oct 4
Mon Oct 14   Wed Oct 16   Mon Oct 22   Mon and Wed Oct 22-24   October 30 Practice Problem
Play a game of craps   Simulate MANY games of craps
Wed Nov 6
Mon Nov 11
Test 3 Information

Some Practice Problems for Test 3
Solutions to Nov 22 problems
FINAL EXAM CHECK LIST!

Oct 14   Oct 16   Oct 22   Oct 28   Nov 11

### List Processing Algorithms

Nov 8 Sequential Search
Nov 13 Binary Search
Selection Sort   Insertion Sort and Bubble Sort

### Homework

Homework 1 Due Friday September 6th
Homework 2 Due Friday September 13th
Homework 3 Due Wednesday September 18th
Homework 4 (group effort)
Homework 5 Due Friday October 4th at 9:30AM
Homework 6 Due Friday October 11th at 9:30AM
Homework 7 Due Friday October 18th at 9:30AM
Homework 11 Due Wednesday November 20th at 9:30AM