Computer Science





CS 604 (Computer Systems and Concepts)





4 Class Hours per Week
















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


Silberchatz, G. Gayne, & P. Galvin, Operating System Concepts, 8th edition, John Wiley & Sons, 2009.






E. Rich, Automata, Computability, and Complexity: Theory and Applications, Pearson Prentice Hall, 2008.




Computer Magazines and Journals






Spring 2010





Dr. A. Joseph



Course Description: This course provides an integrated survey of fundamental ideas in the areas of computer architecture, operating system, and programming language specification and translation.








Dr. A. Joseph



163 Williams St., 2nd floor, Room 231



212 346 1492


Office Hours:


Thursday:             10:00am-3:00pm







Grading Policy


Final examination:



In-class examinations (6 -- 20 minutes exams):


35% [best 5 of 6]




In-class student participation and contribution:




Project and project presentation:



16% (4% for presentation)




Extra credit option:


Note: All students who want to improve their grade to a sufficiently high level. This assignment may be a project. It is not intended to be a substitute for any regular class assignment.


10% (Due by week 12 and no later)


Final grade Determination


Above 92%

90% -- 92%



85% -- 89%



80% -- 84%



75% -- 79%



65% --74%



Below 65%






Note: Grades are computed to the nearest whole number.







Learning Objectives and Outcomes


A student in this Computer Systems and Concepts course will achieve the following objectives and corresponding outcomes:


Objective #1


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


Outcomes #1


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 the ability to explain and able to discuss the relative 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.


Objective #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 and implementation; as well as develop the analytical skills needed troubleshoot assembly language programs.


Outcomes #2


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.    Understand and be able to distinguish between logical and physical memory addresses and data storage.  

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


Objective #3


Students will have a thorough knowledge of the central processing unit its relation to other the functional units – memory and input/output -- of the Von Neumann model of a digital system.


Outcomes #3


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

3b.    Demonstrate a clear understanding of stack organization and Reverse Polish notation and their combined use in effecting the computational efficiency of a digital computer system.

3c.    Show the ability to explain the different addressing schemes and able to solve problems involving them.-

3d.    Able to illustratively describe the concept of program control and the design of the general instruction set for a digital computer system. 


Objective #4


Understand and describe the concepts of structuring methods; interrupts’ methods and implementation; application programming interface (API); services provided to users and the system; and installation, customization, and booting.


Outcomes #4


4a.      Demonstrate ability to compare and contrast the many possible methods (e.g., simple, layered, modular, and microkernel) of structuring the operating system.

4b.      Show sound knowledge of the difference between asynchronous and synchronous interrupts and of the relative advantages of interrupts over polling.

4c.       Show concrete knowledge by describing the procedures involve in installing, customizing, booting an operating system.

4d.      Able to discuss the system call concept and able to differentiate between the needs for the system call interface and the application program interface.

4e.       Show how system programs manage the resources used by applications.

4f.       Demonstrate the ability to illustratively explain why the services provided to users constitute a different set of functions than that provided to the system.

4g.       Demonstrate intimate knowledge of the issues of design and implementation as well as the desired user and system properties.

4h.      Demonstrate the ability to discuss the tradeoffs inherent in operating system design and able to identify potential threats and their safeguards in designed systems.


Objective #5


Understand and explain the process concept and the related idea of thread as well as their respective concurrency.


Outcomes #5


5a.      Able to explain process state and process control block using appropriate examples to highlight their components.

5b.      Able to illustratively describe the creation and termination, scheduling, and interprocess communication features of a process.

5c.       Show the ability to compare and contrast the various types of multithreading models.

5d.      Demonstrate a deep understanding of some of the issues encountered with multithreaded programs (e.g., fork () and exec () system calls, cancellation, signal handling, thread pools, thread specific data, and scheduler activations).

5e.       Able to describe possible run-time problems arising from the concurrent operation of many separate tasks.

5f.       Demonstrate the ability to explain how software and hardware are individually used to solve mutual exclusion problem.

5g.       Able to discuss the evaluation criteria for selecting a particular system’s CPU scheduling algorithm and the various available criteria comparing CPU scheduling algorithms.


Objective #6


Students will understand and able to apply the central theory of languages, computation, and finite state machine that underlies modern computing.


Outcome #6


6a.      Able to differentiate between an alphabet, string, and a language

6b.      Demonstrate intimate knowledge of the attributes (e.g., cardinality, number per alphabet, semantics) of a language

6c.       Show the ability to determine whether a string is in a language and to cast problems as decision questions

6d.      Understand the machine hierarchy and the language and computational hierarchies that goes with it

6e.       Demonstrate clear knowledge of the concept of computation in terms of decision procedures, non-determinism, and functions on languages

6f.       Understand the concepts of and able to design a finite state machine.


Objective #7


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


Outcomes #7


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

7b.      Demonstrate the ability for effective oral and written communication.



Tentative Examination Schedule:


Course Section

In-class Examinations

Project Draft Submission

Project Presentation & Submission

Final Exam

CS 604 (CRN: 22081)

2/3, 2/17, 3/3, 3/17, 4/7, 4/21


April. 14, 2010

April. 28, 2010


Note 1: In general, the lessons will highlight inquiry-based lecture-discussion and may include storytelling. The central focus of the course will be critical thinking and problem-solving. To get the most out of the course, each student is expected to study the reading assignments and genuinely attempt each homework problem before coming to class. The idea is to come to class ready with questions about and ideas relating to the course materials and associated problems.


Note 3: In the interest of learning, it is very important to come to class prepared to learn – do all required assignments. Failure to do so could diminish your ability to get the most out of each lesson and the class. Remember that learning is action oriented. That is, it is not enough to come to class to listen to what others have to say. You should come to class prepared to become involve in all aspects of classroom activities because learning is an active process.


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









Homework Assignments





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).

Read: Chap. 1.

Prob.: 1, 3-6, 7, 11, 14, 15, and 17.

Read: Chap 2.

Prob.: 3, 4, 8, 12, 16, and 19-23.

Read: Chap. 3.

Prob.: 1-5, 7-10, 13, 16-17, 20, 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, 21 and 23.





Basic computer organization and design: Instruction codes; timing and control; instruction cycle; computer instructions; computer registers; instruction cycle; memory reference instructions; input/output and interrupt; 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





Central processing unit (CPU): Register and stack organization; instruction formats; addressing modes; data transfer and manipulation; program control.

Read Chap.: 8.

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





Operating system structure: Operating system services, structure, design and implementation, generation; user interface; system calls and types; system programs; virtual machines; and system boot.

Read chapter 2

Do problems 2.2; 2.5; 2.11 - 2.13.





Processes: Process concept and scheduling; operations on processes; inter-process communication; examples of IPC systems; and communication in client server systems.

Read chapter 3

Do problems 3.1; 3.2; 3.5.





Threads: Multithreading models; thread libraries; threading issues; and operating system examples.

Read chapter 4

Do problems 4.3; 4.4; 4.6; 4.8.





CPU scheduling:  Scheduling and algorithms; multiprocessor and thread scheduling; algorithm evaluation; operating system examples

Read chapter 5

Do problems 5.2; 5.5; 5.11; 5.12.





Project presentation and submission: projects presented to class and submitted.






Languages and strings, language hierarchy, computation, and finite state machines: Strings; languages; language recognition; power of encoding machine-based hierarchy of language classes; tractability of language classes; decision procedures; determinism and non-determinism; functions on languages and programs; deterministic finite state machines; regular languages; and designing deterministic finite state machine.






Final examination






Note 1: This course is structured around freely formed small collaborative teams in a cooperative learning environment. Students are encouraged to work together in their respective teams to form effective and productive teams that share the learning experience within the context of the course, help each other overcome 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 team member is responsible for the completion and submission of each assignment. Each team member will be individually graded.


Note 2: During the first class session, student background information may be collected to get a sense of the diversity of student population, educational background, and learning style. An assessment test may be given to determine students’ prerequisite knowledge of the subject.


Team project: Students in small teams of two to four persons will participate in a research project supported by a technical report. The research topic will be on an emerging area of interest to an organization or the research community. In this project, teams will conduct research to assist in the determination of the solution to the research problem. They will demonstrate their knowledge and understanding of how research is conducted and the significance of the problem solution. The project grade to individual students within a team will be based upon their personal involvement and level of participation in the project as determined by their teammates and the professor.


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


Supplementary materials: Handouts in class or web postings of current events and issues affecting information security and risk analysis/assessment.  Some books that may be helpful to the course will be posted on Blackboard.


In class activity and participation: Students are encouraged to bring to class articles on current newsworthy events in information security, risk analysis/assessment and management and related news to share with the class. Students are welcome to inform the class on these events and their significance to operating system and architecture.




Students are strongly encouraged to download relevant posted lessons from Blackboard and review them. They are encouraged to ask questions about these lessons in class.


Effort may be made to present some lessons using the storytelling format supported with subsequent discussion and elaboration on the central themes of the respective lessons.


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



Collaborative teams are designed to function outside of the classroom. Collaborative team activities will be reinforced inside the class during the lessons. Teams are encouraged to function cohesively and to participate in all class activities.



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 team  team characteristics and team processes significantly contribute to success or failure in the classroom and directly [affect] the quality and quantity of learning within the team.


·         Team 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 teams 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.


Each team may be viewed as a small business that is seeking creative and innovative ways to maximize its product, academic outcomes or average team grade. A satisfactory product is the break-even team average grade of 85%. Teams getting average grades of above 85% are profitable enterprises.