CS 1311
Introduction to Programming Logic
Instructor: John E. Howland
Text: Lecture notes distributed by instructor
Exams: Weekly quizes and a final examination.
Course Objectives: The objectives of this course include:
a) learning the important ideas of computer science
b) learning the use of notation to express the abstractions of computer science
c) learning experimental aspects of computer science
EXAMINATION SCHEDULE
Quizes on each topic will be given (approximately weekly) at the end of a lecture or at the beginning of the laboratory class.
A comprehensive final examination will be given on Friday, December 11, 2009 at 12:00 p.m.
HONOR CODE
All students are covered by a policy that prohibits dishonesty in academic work. The Academic Integrity Policy (AIP) covers all students who entered Trinity before the Fall of 2004. The Academic Honor Code covers all those who entered the Fall of 2004 or later.
The Integrity Policy and the Code share many features: each asserts that the academic community is based on honesty and trust; each contains the similar violations; each provides for a procedure to determine if a violation has occurred and what the punishment will be; each provides for an appeal process.
The main difference is that the faculty implements the AIP while the Code is implemented by the Academic Honor Council. Under the Integrity Policy, the faculty member determines whether a violation has occurred as well as the punishment for the violation (if any) within certain guidelines. Under the Code, a faculty member will (or a student may) report an alleged violation to the Academic Honor Council. It is the task of the Council to investigate, adjudicate, and assign a punishment within certain guidelines if a violation has been verified.
Students who are under the Honor Code are required to pledge all written work that is submitted for a grade: On my honor, I have neither given nor received any unauthorized assistance on this work and their signature. The pledge may be abbreviated pledged with a signature.
Information on the Honor Code and Academic Integrity Policy.
GRADING
Read biology professor Blystone's words on grades.
The approximate breakdown on grading will be as follows. Quizes will be used to determine 35% of the final semester grade. The lowest quiz grade will be dropped. Laboratory problems are assigned on a weekly basis and their grades will determine 30% of the final semester grade. The final examination will be used to determine 25% of the final semester grade. Class participation will determine the remaining 10% of each student's grade. Class participation is a subjective measure and will include such things as class attendance, in-class discussion and out-of-class discussion which is conducted on a course mailing list, cs1311@mail.cs.trinity.edu . Each student should attempt to contribute to the discussion regularly. The instructor will be reading the course mailing list and may contribute to the discussion from time to time. Discussion topics should be limited to the course but may cover any aspect of the course. The course mailing list will be archived but not moderated. This means that all of the discussion will be saved so that it can be accessed at any time, but what you post to the list will be seen by all readers without any editing. It is up to you to engage in friendly conversation and debate. Personal attacks are sure to cause you to be flamed by others and are not encouraged. Each student should go to http://www.cs.trinity.edu/mailman/listinfo/cs1311/ and follow the instructions for subscribing to the CS1311 mail list. The mailing list archives may be accessed at http://www.cs.trinity.edu/pipermail/cs1311/.
Topics:
0 Programming Notation
Describing
Programs
Syntax
Semantics
Evaluation Rules
Describing Data
1 Computer Organization
Processor
Memory Hierarchy
Input/Output
Systems
computer architecture
2 Computer Arithmetic
Primitive Numeric Types
Fixed Point
Arithmetic
Floating Point Arithmetic
Rational Numbers
Complex
Numbers
Big Numbers
3 Computer Circuits
How Do Computers Work
Circuits for Primitive
Functions
Memory Circuits
Switches
Integrated Circuits
Designing a
Computer
4 Algorithms
What is an Algorithm?
Instances of an
Algorithm
Analysis of Algorithms
Measures of Efficiency
5 Data
Structures
Records
Arrays
Lists
Stacks
Queues
Trees
Grahs
Memory
Management
6 Programming Methodology
Top-Down Programming
Decomposition of
Programs
Iteration
Recursion
Object Oriented Programming
7 Software Engineering
Engineering
Methodology
Prototypes
Large-Scale Programming Projects
The Program
Life Cycle
CASE Tools
8 Language Translation
Machine Languages
Syntax
Rules
Production
Rules
Semantics
Interpreters
Compilers
Programming Languages
9 Program Execution Time
The Limitations of Computer
Science
Tractable Computations
Intractable Computations
Some Practical
Computations with Very Expensive Solutions
10 Computer Networks
Data
Communications
Networking
Internetworking
Global Networks
11 Parallel Computation
Multiple Processes
Communicating
Processes
Parallel Computation on a Single Processor
Parallel Computer
Architectures
12 Computability
Speed is Not Enough
The Existence of
Noncomputable Functions
Programs that Read Programs
The Halting
Problem
Examples of Noncomputable Problems
Proving Noncomputability
13 Artificial Intelligence
Knowledge
Representations
Understanding
Learning
Game Playing
Expert
Systems