Fall 2017

FRESHMEN ONLY

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

Professor Tom Valente

Bagby 123 x6210

** email: ** tvalente@hsc.edu

TO BE ANNOUNCED

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

This is a broad based introduction to computer science, using a hands-on approach to learning. This course has no prerequisites except a willingness to pursue the course objectives.

* 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

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 22nd, Oct 27th, Nov 20th) | 30% (12-12-6) |

Final Exam (Thursday Dec 7th at 1:30PM) | 25% |

Quizzes | 10% |

Homework | 35% |

Wed Nov 1

Play a game of craps Simulate MANY games of craps

Some Practice Problems for Test 3

Nov 6 Sequential Search

Nov 8 Binary Search

Selection Sort Insertion Sort and Bubble Sort

Friday Aug 25
Friday Sep 1
Wednesday Sep 6

Test 1 Study Guide

Week of Sep 25
Week of Oct 2

Wed Oct 11
Fri Oct 13
Mon Oct 16
Wed and Fri Oct 18-20

Test 2 Study Guide (Download)

Wed Nov 1

Test 3 Information

FINAL EXAM CHECK LIST!

Homework 2 Due Friday September 8th

Homework 3 Due Wednesday September 13th

Homework 4 (to be done in class during week of Sep 18th)

Homework 5 Due Friday September 29th at 9:30AM

Homework 6 Due Friday October 6th at 9:30AM

Homework 7 Due Monday October 16th at 9:30AM

Homework 8 (DOWNLOAD) Due Wednesday October 25th at 4:00PM

Homework 9 (DOWNLOAD) Due Friday November 3rd at 4:00PM

Homework 10 (DOWNLOAD) Due Friday November 10th at 4:00PM

Homework 11 Due Friday November 17th at 9:30AM

Homework 12 (DOWNLOAD) Due Friday December 1st at 9:30AM

Optional Homework 13 (DOWNLOAD) Due by Final Exam time

Homework 9 (DOWNLOAD)

Homework 10 (DOWNLOAD)

A Scratchpad for doing basic Javascript programming

Our first day attendance experiment as a Javascript program.

Click here for a simulator that allows us to construct circuits that use the logic operations we learned.

Click here to program the VSC-32 in machine language.

Click here to enter a VSC-32 machine language program in hex.

Assembly Language Programming on the VSC-32

A cipher used by Julius Caesar

A Caesar cipher with no word length clues!

A more general substitution cipher