CSC 1200 Computer Organization Syllabus

Professor: 

               Dr. Lillian N. Cassel 
               162A Mendel Hall 
               +1 610 519 - 7341
cassel@acm.org

Assistant:

Berkant Yalcingediz 
Office: 234 Mendel
Hours: Monday 2-4pm
Office hours : 
Tuesday and Thursday 10:30 - 11:30
Wednesday 1-3 pm
Other hours by appointment 
or drop in if the door is open
         Villanova University Academic Integrity Policy and Procedures
Textbook  Schedule Submit reading summary Course goals,  requirements,
and  Grading

Course Goals and Requirements

 

Introduction 

and

Course Goals:

Welcome to CSC 1200.  This is the course where majors in computing sciences are introduced to the underlying system that runs the applications we develop.  The machine and its organization are critical to many of the decisions we make in selecting methods for solving problems.  The machine gives us opportunities, but also imposes limitations.  The design of the machine determines how values are stored and manipulated, how fast various activities are completed, what are our options for storage, transfer, and manipulation of information. 
What follows is the official statement of course goals for CSC 1200.  This defines, at a high level, what we are setting out to accomplish this semester.  We have some room for flexibility and lots of opportunities to go about it in different ways; this says what we are expected to accomplish:

Computing sciences majors learn about the machine that implements their applications and problem solutions. They learn the characteristics that distinguish various kinds of architecture and the direction architecture advances are following. They learn the way information is represented and transferred within the components of a computing system. They learn the relationship between the components: the CPU, Memory, Storage, Input, Output. They learn about caches and their role in system performance. They learn how operations such as addition are implemented in the machine design. They learn why there are levels of storage resources with different access rates and volatility and cost.

In Fall 2001, we are making a significant change in the nature of this course.  While we still will address the requirements specified in the course description, we will focus on ghe general characteristics of the computer systems we use and we will explore the ways we communicate with those systems.  You are already experienced Java programmers.  Now you will look at the most basic kinds of machine direction.  Before the end of the semester, you will have begun to use the language C.  You will continue to explore C in the Operating Systems course, CSC 1600. 

Prerequisites by Topic:

 
 

 

  1. Basic structure of digital computers
  2. Concepts of programming: variables, simple data types (particularly integer, real, character), compound data types (arrays, lists, structures), data structures (linked lists)
  3. Basic logic concepts
  4. Competency in a high level programming language, such as Java.

Major Topics Covered in the Course:

  1. Digital computer components and organization  (3 hours)
  2. Representation of information in computers (3 hours)
  3. Computer arithmetic  (3 hours)
  4. Logic and Digital circuits (6 hours)
  5. Machine and assembly level computer languages (6 hours)
  6. I/O and TRAP routines (6 hours)
  7. Higher level language control of the machine (12 hours)
  8. Tests (3 hours)
(Hours indicated are approximate number of inclass hours on the topic)

Assumed abilities: 

Programming and problem solving as obtained in CSC1051/1052 or equivalent courses
Basic digital logic as obtained in CSC 1300 or the equivlent

Preparation for class

Assigned reading must be done before class
After reading the assigned material, each student will fill in a READING SUMMARY FORM
That form asks you to list the two or three key points of the assigned reading and a few questions that arose as a result of your reading.
You must submit the READING SUMMARY FORM no later than 8 am of class day (Tuesday unless specifically stated otherwise.  Generally a change happens only on the first week of class.)
You should also think about examples for the points you note and the questions you raise so you can discuss them with others in the class.  Reading summaries are part of your graded work. 

Normal class routine

On Tuesday, we will review the material read for that week.  The lecture will review what you have read.  If you have not done the reading, you will be at a serious disadvantage.  Questions raised by students during their reading (and submitted on the reading summary) will be featured in the lecture. 
By the time we have finished class on Tuesday, you should feel well prepared to do the homework problems.  Read the homework problems before the Tuesday class so you can ask for any clarification that you may need.
On Thursday, we will review the homework problems.  You may keep your papers and make notes about what you did well and what you did not do well, but only using a red pen that will be provided. (All homework must be done in blue or black ink.) 
On both Tuesday and Thursday there will be some in class activities from time  to time.  These are mean to enhance your learning and increase your confidence in the material covered.

Textbook:

Introduction to Computing Systems: From Bits and Gates to C & Beyond.  Yale N. Patt and Sanjay J. Patel.  McGraw Hill.   2001

Grading

 
Requirement Number Points Each Total Points
Summary of assigned reading 
and class participation
about 10 10 100
Homework exercises, 
including programming problems
about 12 varies 300
Examinations 3 100 300
Final Examination 1 200 200
Article summaries or 
one article summary and 
one Logic Simulator Exercise
2 50 100
TOTAL possible     1000

Homework

There will be homework every week.   The purpose of the homework is to give you a chance to exercise the knowledge gained from the recent class material. Some exam questions will closely resemble homework problems. Most homework problems will come from the main text book. Each homework question will be worth up to three points.  One point for a modest, but reasonable attempt to answer the question, one more point for a good attempt that gets close to the solution, and one more point if the answer is correct.  Programming problems will be worth more points than standard homework problems.

In class exams

There will be three exams. The dates in the class schedule are tentative and we can change them if it appears in the best interest of the class.  Material on the tests will come from the text book and from supplementary materials and from class notes.

Article summaries (See also format information --- very important information)

In order to see what is current in the area of computer architecture, you will read and summarize two articles from recent literature. These may be articles in technical magazines or journals. They may be from Web sites. The articles must be at least three full pages long, not counting figures. In case of web pages, the amount of text must be equivalent to three magazine pages (three pages of very large font or very wide margins is not enough). The articles must be recent - not more than one year old. The articles must be relevant to the course. In particular, look for the characteristics of specific architectures, such as the latest Intel, Motorola or Sparc processors or new input/output or storage devices.  Articles about pipelining, RISC architecture, parallel machines,  memories, etc. are all appropriate. If you have any doubt about the suitablility of an article, let me look at it before you use it.

  Tentative Schedule

to be revised as needed during the semester
 
Week
number
Date Topic Reading due before class Homework due 
1 28-30 Aug Goals & Objectives
Learning styles
Levels of Learning (Bloom's Taxonomy) Course expectations 
What is this course about?
Computing systems and levels of problem transformation.
Class notes
Before Thursday, Read Chapter 1 and do the homework questions shown in the next column. By Thursday:  Find a good web site that has information about the history of computing hardware.
Also do Problems from Chapter 1:  2, 4, 5, 8, 10, 13
History Links Found
2 4-6 Sept Representing information in the computer: bits, bytes and arithmetic and logic
Numbers notes
Chapter 2
NOTE:  Thursday, September 6 is St. Thomas of Villanova day.
The 12:45 class will meet at 11:15. 
The 2:15 class will meet at 12:15.
 Chapter 2: 1, 2, 5, 7, 9, 13, 19, 30, 33, 36, 37, 41, 45, 47, 49, 51
3 11-13 Sept Digital Logic Structures
Digital Logic Notes
Chapter 3
Logic Simulator - 1
MultiMedia Logic (used in class and lab)
 
4 18-20 Sept Digital Logic continued Optional Review session on Friday at 12:30.
Location will be announced. (Mendel 154 if it is available)
Chapter 3:  10, 12,  14,  16,  19, 21
5 25-27 Sept Exam 1    Exam on Tuesday 
Thursday: Special Laboratory day
2-4 Oct The Von Neumann Model
VonNeumann Model notes
Chapter 4 Chapter 4: 5, 9, 14
7 9-11 Oct The LC-2 example computer Chapter 5 Chapter 5: 1, 4, 6, 9 (count each part as a question), 10, 16, 17
Break 16-18 Oct Semester Break    
8 23-25 Oct Programming and Assembly Language Chapters 6 and 7
(Chapter 6 is a review of material you had before. Read it and renew the ideas.  Chapter 7 is new, but short.)
First article summary
Chapter 6: 10, 13
Chapter 7: 4, 10, 14
9 30 Oct - 
1 Nov 
Exam 2    Exam on Tuesday; Lab on Thursday
10 6-8 Nov Further Detail -- The microarchitecture Appendix C and Chapter 8 Chapter 8: 1, 2, 5, 7 9
Program due Nov. 15: Chapter 8 #8.
11 13-15 Nov Subroutine calls, returns Chapter 9 Chapter 9: 4, 5, 6
12 20 Nov A close up view of the stack
(Thanksgiving break begins after classes today)
Chapter 10 Second article summary (or Logic Simulator project) due (before leaving for Thanksgiving)
13 27-29 Nov  Beginning the C programming language view of the computer organization
 Chapter 11, 12, 13, 14, 15, 16 (detailed)
OR Appendix D (condensed)
(This will look very familiar because of your prior programming experience. Read through it quickly, spending time if needed on anything that you have forgotten.)
Chapter 15: 1
Chapter 16: 2, 5, 10
C program due Decembr 6: 
Write a program to read a number determine the number of 1s in the binary representation of the number. Output the number and the count of 1s.
14 4-6 Dec
Pointers and Arrays
Chapter 17 Chapter 17. 3, 4, 8, 10
15 11-"Friday"
13  Dec
Exam 3 (Tuesday)  Thursday - General review for the final   
   12:45 class: 
...................

 2:15  class:

Final Exam

Cumulative over all material covered during the semester

 

Logic Simulator

If you wish to substitute a project using the logic simulator for one or the other of the article summaries, let me know. I will provide one for you.
 
 

What's a design?

For our purposes, at least, a design is a written document with drawings as appropriate.  The design will list the principal classes and methods (for Java programs) or the organization of the procedures (for a C program), will show a drawing of the input screen and the output screen, and will show several sets of test data.  Test data will demonstrate how the program will behave under expected input and how it will behave in error conditions.  The design is an essential part of the programming project and will be part of the project evaluation.
 

Levels of Learning

Bloom's taxonomy identifies six levels of competence.
 

What the course is about

This course is about the underlying machine that executes the programs we write.  Often we can ignore the machine and deal with it at a higher, abstract level.  That is what you have done in your programming experience so far.

Sometimes, however, we must deal with the actual machine and its limitations and its perculiar characteristics.  We need to know how information is stored so that we can manipulate it most appropriately.  We ned to know how information gets to and from the peripheral devices so that we can interact with them in ways that make sense for our application.  We need to know how close we can come to having one machine do several things at the same time.  We need to know why our program does not always do what we thought we had specified.

This course is not a survey of hardware devices or an explanation of how things like DVD drives work.  It is concerned primarily with the processor and how it processes instructions on information stored in memory.

During this course, you will learn the C programming language.  It is introduced in a very special context:  First we learn about how 0s and 1s are used to represent information and instructions.  Then we see how electronic components operate under the direction of the 0s and 1s.  We look at machine language, a slightly more convenient way for people to talk about what the electronics are doing.  Then we look at assembly language, which allows us to give up some of the detail but still keep close to the actual machine operation.  Next, we look at C as a next step in making the art of communicating with a computer intelligible for humas.  C is a language that is a natural progression from machine and assembly language.  That is its strength and its weakness.  It is a strength because it gives you control of the computer in a way you don't easily have in other languages.  It is a weakness because there are more details you have to work through.  Because you have a year's experience in programming, you should find it relatively easy to learn C.  Learning to learn a new language is another useful product of this course.