Computer Science





CS 603/Computer Architecture





4 Hours per Week










CS 504, CS 507





M. Mano, Computer System Architecture, 3rd Edition, Prentice Hall, 1993.


R. Britton, MIPS Assembly Language Programming, Prentice Hall, 2004.






T. Sammes and B. Jenkinson, Forensic Computing: A practitioner’s Guide, Springer, 2000.


Computer Magazines and Journals





Spring 2006





Dr. A. Joseph



Course Description: This course provides basic knowledge of digital computer organization and design at the machine and microprogramming levels with the associated assembly language programming concepts.  It highlights the organization and architecture of the central processing unit, input-output peripherals, memory unit, and pipelining and parallel processing.  It also presents computer forensics concepts in the assurance of the integrity of information extraction from a personal computer and handling for evidential purposes.











Dr. A. Joseph



163 Williams St., 2nd floor, Room 231



212 346 1492


Office Hours:


Wednesday (NYC)            12:00pm--5:00pm







Grading Policy


Final examination:



Mid-term examination:


25% (No make up)




Class preparation and participation:







(A late project will be penalized 5 points per day for 5 days)




Extra credit assignment (Optional):

Note: Only for students who are otherwise fulfilling all of the other course requirements.


5% (Due week 12)



Final grade Determination


Above 92%

90% -- 92%


85% -- 89%


80% -- 84%


75% -- 79%


70% --74%


65% -- 69%


Below 65%


Note: Grade is computed to the nearest whole number.



Learning Objectives and Outcomes




Students are expected to accomplish the following after the course is completed:


1.        Students will acquire sound knowledge in the key principles and practices used in the design and analysis of a digital computer system.


2.        Students will understand the differences among the main types programming languages relative to their effect on a digital computer processing speed; relationships between the types of programming languages from a user perspective; and tradeoffs between hardware and software in digital systems design; as well as develop the analytical skills needed troubleshoot assembly language programs.


3.        Students will have a thorough knowledge in of the main functional units (bus system, memory unit, central processing unit, and input/output) of the Von Neumann model of a digital system and their interrelationships.


4.        Students will know the general ways used to improve the performance of computing systems, understand the different levels at which these performance improvements are made, and are to identify main types of multiprocessor architectures.


5.        Students will understand the basics of computer forensics in its relation to computer hardware; will acquire practical knowledge of disks and drives, partition tables, and copying and imaging; will understand the principles of computer-based evidence and the practices of computer examinations.


6.        Students will develop team-building, social, and organizational skills that they can further develop in other classes and in their professional careers.





These are outcomes, arranged in a manner corresponding to the preceding objectives, that students will attain by the end of the course:


1a.     Demonstrate an understanding of the basic building blocks of the functional units of a digital computer system.

1b.    Use truth tables and algebraic expressions to describe the functions of simple combinational circuits, design circuits from these descriptions, design basic sequential circuits from truth tables, and analyze related combinational and sequential circuits,

1c.     Demonstrate that they are able to explain the storage of numeric and nonnumeric data, able to discuss the relativity utility of signed-magnitude and two’s complement representation of negative integers from the point-of-view of a digital computing device.

1d.    Explain the steps involve in the design of a basic digital computer system.


2a.     Demonstrate through descriptions, discussions, and or illustrations an understanding of the purpose of an assembly language, its programming objectives, and its relationship to machine language and high-level languages.

2b.    Understand and be able to explain the concepts of assembly language directives, operators, macros, and program structure

2c.     Demonstrate the ability to analyze assembly language programs and to translate simple high-level language programs into corresponding assembly language programs.

2d.    Discuss the issues involved in hardware or software implementation of an instruction in a digital computer instruction set.

2e.     Demonstrate the ability to discuss, with appropriate illustrations, the concepts of subroutine calls and interrupts at the assembly level.


3a.     Demonstrate an understanding of a digital computer bus system and its role in the transfer of information between the functional units.

3b.    Discuss the layout and logical functions of the central processing unit, memory unit, and input-output devices.

3c.     Explain the interaction between the central processing unit, memory unit, and input-output devices in the processing of information.


4a.     Explain basic instruction level parallelism using pipelining and the major hazards that may occur.

4b.    Discuss the concept of parallel processing beyond the classical Von Neumann model.

4c.     Describe alternative architectures such as SIMD, MIMD, and VLIW.

4d.    Explain the concept of interconnection networks and characterize the different approaches used.

4e.     Discuss memory management in multiprocessing systems with emphasis on the issues involve.


5a.     Demonstrate a practical understanding of the relatedness of computer forensics to digital computer hardware.

5b.    Demonstrate the ability to differentiate between copying and imaging.  

5c.     Demonstrate a practical understanding of physical disks, logical drives, and interpretation of partition table.

5d.    Demonstrate an understanding of the likely places information is hidden on a personal computer. 

5e.     Explain information storage on floppy and hard disk drives.


6a.     Demonstrate an ability to work effectively in teams.

6b.    Demonstrate the ability for effective verbal and written communication.





Tentative Examination Schedule:


Course Section

Midterm Examination Date

Final Examination Date

CS 603/CRN 21522

March 15, 2006

May 10, 2006



Note 1: Facilitate and promote learning under the best circumstances, you are encouraged to download the lectures from Blackboard and study them as your main guide. All lessons will be posted on Blackboard at least a week in advance. Use the textbook to complement and perhaps, at times, elucidate the lecture notes.


Note 2: Some lessons may be presented in a storytelling format while others will highlight inquiry-based lecture-discussion. However, the course will centrally focus on problem-solving. The homework problems will be solved in class as a means to explain the concepts. To get the most out of the course, you are expected to study the reading assignments and genuinely attempt each homework problem before coming to class. For those problems you cannot solve, determine why you are having difficulty obtaining the solution. The idea is to come to class willing to learn and ready to ask questions about the course materials and problems.


Note 3: In the interest of learning, it is very important that you foster an inquisitive mind – do all required assignments. Failing to do so may diminish your ability to get the most out of each lesson and the class.




Note 5: It is very important you read and familiarize yourself with CSIS Statement of Student Responsibilities (see Blackboard).












Review: Digital logic circuits (logic gates, Boolean algebra, combinational circuits, and flip-flops);

Digital components (decoders, multiplexers, registers, counters tri-state switches, buses, and memory units); and Data representation (data types, 2’s complement, fixed-point, and floating-point)  (See Blackboard)

Review: Chap. 1.


Review: Chap 2.

Prob.: 3, 8, 12, and 19-22.

Review: Chap. 3.

Prob.: 3, 7, 17, and 23.





Register Transfer and Microoperations: register transfer (language, and bus and memory); Microoperations (shift, logic, and arithmetic); and Arithmetic logic shift unit (ALU).

Read: Chap. 4.

Prob.: 1-4, 6-9, 11, 18, 19, and 21.





Basic computer Organization and Design: Timing and control; Instruction cycle; Computer instructions and types; and Design of accumulator logic and basic computer

Read: Chap. 5.

Prob.:1-7, 9-10, 12, and 15-18





Programming  the Basic Computer: Machine language; Assembly language; Assembler; Program loops, subroutines, and Programming arithmetic and logic operations

Read: Chap. 6.

Prob. 1-7, 11-14, and 18





Microprogrammed Control: Microarchitecture; Control memory; Address sequencing; Microinstructions; Example; and Control unit design.

Read: Chap. 7.

Prob.: 5, 6, 11-14, 20, and 21.





Central Processing Unit (CPU): Register and stack organization; Instruction formats; Addressing modes; Data transfer and manipulation; Program control; and Comparison of CISC and RISC architectures.

Read Chap.: 8.

Prob.: 6-9, 11, and 13-16.





Input/Output Organization: Peripheral devices, Interface; Asynchronous data transfer; and Transfer modes (programmed I/O, interrupt, DMA, and IOP); Encoding methods and formats for floppy disks.

Read Chap. 11.

Prob.: 1, 2, 6, 7, 11-16, and 29.





Memory Organization: Memory hierarchy; Main memory; Auxiliary memory; Associative memory; Cache memory, Virtual memory, and Memory management; Boot sequence and POST; Master boot record and partitions; Directories and file systems, and hiding information; Main issues and physical construction (heads, tracks, and cylinders) of disk geometry; Formation of addressable elements; Hard disk interfaces; Encoding methods and formats for hard disks; Formatting process.

Read Chap. 12.

Prob.: 1-8, 13, 15-20, 23, and 24.










Pipeline and Multiprocessors: Implementations of simple datapaths; Instruction pipelining; Introduction to instruction-level parallelism; Superscalar architecture; Branch prediction; Prefetching; Multithreading; Introduction to SIMD, MIMD, VLIW, and EPIC; Systolic architecture; Interconnection networks (hypercube, shuffle-exchange, mesh, and crossbar); Shared memory systems; Cache coherence; and Memory models and memory consistency.

Read Chap. 9 (sections 1, 2, 3, 4, 6, 7) and 13 (sections 1, 2, 4, 5)

Prob.: 9/2, 3, 4, 7, 9) and 13/1, 3, 6, 8, 13, 14)





Treatment of Personal Computers: Guide to Good Practice; Principles of Computer-Based Evidence; Search and Seizure, Intelligence, Preparation, and Briefing; Operating Dilemma; Shutdown, Seizure, and Transportation; Computer Examinations; Physical Disks and Logical Drives; Interpreting Partition Tables; and Imaging and Copying. 

Read Chap. 6 ( Sammes and Jenkinson)

Prob. : To be assigned





Final Examination.











Note 1: This course is structured around freely formed small collaborative groups in a cooperative learning environment. Students are encouraged to work together in their respective groups to form effective and productive teams that share the learning experience within the context of the course, help each other with learning difficulties, spend time to get to know each other, and spend time each week to discuss and help one another with the course work (content and assignments). Each group member is responsible for the completion and submission of each assignment. Each group member will be individually graded.



Group project: Students in small groups of two to four will participate in a project or research and prepare a report that may involve the use of a low level or high-level programming language. In this project, students will write a program to determine the solution of a technical problem, and then demonstrate their knowledge and understanding of how the program is processed in the typical digital computer system.  Assignment of grade to individual students for group project will be based upon their involvement in the following items: programming, report writing, proofreading and correction of programming codes and written report, and combinations of the above.



Web support: This course is supported with most or all of the following Blackboard postings: lesson questions, lessons (PowerPoint), instructions and guidelines pertaining to the course, computer architecture and related news, group and class discussions boards, email correspondence about the course, homework solutions, examination grades, and miscellaneous course related activities and information.



Supplementary materials: Handouts in class or web postings of current events and issues affecting computer architecture.  Some books that may be helpful for the course will be posted on Blackboard.


In class activity and participation: Students are recommended to bring to class current newsworthy events in computer organization/architecture and related news to share with the class.  Students will inform the class of the news events and their significance to computing.  


The collaborative groups are encouraged to function outside of the classroom. Collaborative group activities will be reinforced inside the class during the lessons. Student groups are encouraged to function cohesively and to participate in class activities.  



Students are strongly encouraged to download posted lessons from Blackboard, review them, and should ask intelligent questions about the material in these lessons.


Every effort will be made to present each lesson using the storytelling problem solving format supported with subsequent discussion and elaboration on the central points of the lesson.


The key elements of a story are the following: casuality, conflict, complication, and character.



The following excerpts about collaborative learning are from research documents:


·         In the university environment, educational success and social adjustments  depend primarily on the availability and effectiveness of developmental academic support systems.


·         Most organized learning occurs in some kind of group  group characteristics and group processes significantly contribute to success or failure in the classroom and directly effect the quality and quantity of learning within the group.


·         Group work invariably produces tensions that are normally absent, unnoticed, or suppressed in traditional classes.  Students bring with them a variety of personality types, cognitive styles, expectations about their own role in the classroom and their relationship to the teacher, peers, and the subject matter of the course.


·         Collaborative learning involves both management and decision-making skills to choose among competing needs.  The problems encountered with collaboration have management, political, competence, and ethical dimensions


·         The two key underlying principles of the collaborative pedagogy are that active student involvement is a more powerful learning tool than the passive attendance and that students working in groups can make for more effective learning than students acting alone.   The Favorable outcomes of collaborative learning include greater conceptual understanding, a heightened ability to apply concepts, and improved attendance.  Moreover, students become responsible for their own learning is likely to increase their skills for coping with ambiguity, uncertainty, and continuous change, all of which are characteristics of contemporary organizations.



Who creates a new activity in the face of risk and uncertainty for the purpose of achieving success and growth by identifying opportunities and putting together the required resources to benefit from them?


Creativity is the ability to develop new ideas and to discover new ways to of looking at problems and opportunities


Innovation is the ability to apply creative solutions to those problems and opportunities to enhance or to enrich people’s lives.