William Paterson University of New Jersey Department of Computer Science College of Science and Health Course Outline

Similar documents
Modesto Junior College Course Outline of Record CMPSC 241

Course Outline. TERM EFFECTIVE: Spring 2016 CURRICULUM APPROVAL DATE: 10/12/2015

Course Syllabus of Microprocessor I (Fall 2006)

William Paterson University of New Jersey Department of Computer Science College of Science and Health Course Outline

HUDSON VALLEY COMMUNITY COLLEGE TROY, NEW YORK COURSE OUTLINE

2. COURSE DESIGNATION: 3. COURSE DESCRIPTIONS:

B. Subject-specific skills B1. Problem solving skills: Supply the student with the ability to solve different problems related to the topics

NUMBER OF TIMES COURSE MAY BE TAKEN FOR CREDIT: One

ECOM 2325 Computer Organization and Assembly Language. Instructor: Ruba A.Salamah INTRODUCTION

For undergraduate courses in assembly language programming and introductory courses in computer systems and computer architecture.

SOME ASSEMBLY REQUIRED

CNG 140 C Programming. Syllabus. Course Info Fall Semester. Catalog Description

The University of Aizu School of Computer Science and Engineering Introduction to Programming. Course Syllabus (Special Track for Foreign Students)

Basic Concepts COE 205. Computer Organization and Assembly Language Dr. Aiman El-Maleh

Computer Organization and Assembly Language. Lab Session 01

Week 1 Introduction to Computer and Algorithm (Part1) UniMAP Sem II 11/12 DKT121: Basic Computer Programming 1

COURSE TITLE. Computer Programming C++ LENGTH. One Semester Grades DEPARTMENT. Computer Department Barbara O Donnell, Supervisor SCHOOL

DR. A.P.J. ABDUL KALAM TECHNICAL UNIVERSITY LUCKNOW. Evaluation Scheme & Syllabus. For. B.Tech. First Year (Programming for Problem Solving)

STATE UNIVERSITY OF NEW YORK COLLEGE OF TECHNOLOGY CANTON, NEW YORK COURSE OUTLINE CITA170 - COMPUTER CONCEPTS AND OPERATING SYSTEMS

Chapter 1 INTRODUCTION

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

17. Instruction Sets: Characteristics and Functions

About the Authors... iii Introduction... xvii. Chapter 1: System Software... 1

ITT Technical Institute. ET2560T Introduction to C Programming Onsite and Online Course SYLLABUS

CPS1011. Program Structure {C};

Course Text. Course Description. Course Objectives. StraighterLine Introduction to Programming in C++

Course Name: Computer Vision Course Code: IT444

COURSE TITLE. Introduction to Java LENGTH. One Semester Grades DEPARTMENT. Computer Department Barbara O Donnell, Supervisor SCHOOL

Microprocessor (COM 9323)

Computer Organization CS 206 T Lec# 2: Instruction Sets

EKT 120/4 Computer Programming KOLEJ UNIVERSITI KEJURUTERAAN UTARA MALAYSIA

M1 Computers and Data

Introduction to Computer Systems

Microprocessor Theory

ITE 205 Software Design and Programming I

IT-2670: C/C++ PROGRAMMING LANGUAGE

Run time environment of a MIPS program

School of Computer Science

Switching to AQA from Edexcel

Computer Architecture 2/26/01 Lecture #

FLORIDA STATE COLLEGE AT JACKSONVILLE COLLEGE CREDIT COURSE OUTLINE COURSE NUMBER: COP 2823 PREREQUISITE(S): COP 2837 OR COP 2360

COS 140: Foundations of Computer Science

Course Syllabus [1/2]

CSc 10200! Introduction to Computing. Lecture 1 Edgardo Molina Fall 2013 City College of New York

NEW YORK CITY COLLEGE OF TECHNOLOGY/CUNY Computer Systems Technology Department

Course Description: This course includes concepts of instruction set architecture,

Academic Course Description. EC0309A Microprocessors and Micrcontrollers Fifth Semester, (Odd Semester)

Computer Science (Informática)

G. PULLAIAH COLLEGE OF ENGINEERING AND TECHNOLOGY Pasupula, Nandikotkur Road, Kurnool

VARDHAMAN COLLEGE OF ENGINEERING (AUTONOMOUS) Shamshabad, Hyderabad

Practical C++ Programming

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR

THE 8051 MICROCONTROLLER

COE 205: Computer Organization & Assembly Language Introductory Experiment-B By Louai Al-Awami

Course Name: Computer Networks-1 Course Code: IT222

KULLEĠĠ SAN BENEDITTU Secondary School, Kirkop

CS4617 Computer Architecture

Basic Definition INTEGER DATA. Unsigned Binary and Binary-Coded Decimal. BCD: Binary-Coded Decimal

BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE, Pilani Pilani Campus Instruction Division. SECOND SEMESTER Course Handout Part II

COURSE DESCRIPTION. CS 232 Course Title Computer Organization. Course Coordinators

Course Name: Database Systems - 1 Course Code: IS211

Principles of computer programming. Profesor : doc. dr Marko Tanasković Assistent : doc. dr Marko Tanasković

Compulsory course in Computer Science

Introduction to C. Why C? Difference between Python and C C compiler stages Basic syntax in C

"Charting the Course to Your Success!" MOC B Programming in C# Course Summary

9/3/2015. Data Representation II. 2.4 Signed Integer Representation. 2.4 Signed Integer Representation

AP Computer Science AB

3D Graphics Programming Mira Costa High School - Class Syllabus,

Computer Programming C++ (wg) CCOs

Switching to AQA from OCR

Advanced Diploma in Computer Science (907) Computer Systems Architecture

INTRODUCTION OF MICROPROCESSOR& INTERFACING DEVICES Introduction to Microprocessor Evolutions of Microprocessor


Pointers in C. A Hands on Approach. Naveen Toppo. Hrishikesh Dewan

ii) Do the following conversions: output is. (a) (101.10) 10 = (?) 2 i) Define X-NOR gate. (b) (10101) 2 = (?) Gray (2) /030832/31034

Software Reliability and Reusability CS614

Course Form Revision

BRAZOSPORT COLLEGE LAKE JACKSON, TEXAS SYLLABUS COSC 1320: INTRODUCTION TO C++ PROGRAMMING COMPUTER TECHNOLOGY & OFFICE ADMINISTRATION DEPARTMENT

C Programming. Course Outline. C Programming. Code: MBD101. Duration: 10 Hours. Prerequisites:

Class 9 Saturday, Feb 14

CS 200: Computer Organization

ET285 Digital Electronics II [Onsite]

CIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions)

Boca Raton Community High School AP Computer Science A - Syllabus 2009/10

IBM. Enterprise Systems Architecture/ Extended Configuration Principles of Operation. z/vm. Version 6 Release 4 SC

CS-3410 Systems Programming Spring 2013

COMP2121: Microprocessors and Interfacing. Instruction Set Architecture (ISA)

Introduction to System Programming Course 2015 Spring Euiseong Seo

Syllabus for Computer Science General Part I

Honorary Professor Supercomputer Education and Research Centre Indian Institute of Science, Bangalore

ITT Technical Institute. ET2640 Microprocessors and Microcontrollers Onsite and Online Course SYLLABUS

Programming for Problem Solving 105A L T P Credit Major Minor Total Time

EC 413 Computer Organization

COURSE STRUCTURE AND SYLLABUS APPROVED IN THE BOARD OF STUDIES MEETING HELD ON JULY TO BE EFFECTIVE FROM THE ACADEMIC YEAR

Instruction Sets: Characteristics and Functions Addressing Modes

CS2214 COMPUTER ARCHITECTURE & ORGANIZATION SPRING 2014

Thus needs to be a consistent method of representing negative numbers in binary computer arithmetic operations.

Computer Organization and Technology Processor and System Structures

SYLLABUS. osmania university CHAPTER - 1 : REGISTER TRANSFER LANGUAGE AND MICRO OPERATION CHAPTER - 2 : BASIC COMPUTER

Computer Fundamentals

Transcription:

William Paterson University of New Jersey Department of Computer Science College of Science and Health Course Outline I. Course Title: CS 280 Computer and Assembler Language 3 credits II. III. IV. Course Description: Number systems. Structure of digital computers and machine language. Data representation, instruction formats and addressing techniques. Symbolic coding, assembly systems and programming techniques. System stack, procedure calls, and program segmentation and linkage. Interrupts and I/O. Memory organization and addressing. Program translation and system programs: Assemblers, compilers, interpreters, preprocessors, linkers, loaders and debuggers. Prerequisites: CS 230 with a grade of C- or better. Course Objectives: To examine computer systems as machines and to show how the various structures and abstractions of computing are realized. This implies the following: 1. The study of the structure and capabilities of computers. 2. An understanding of data representation, instruction representation and execution, program translation, subprogram linkage and communication, and data structure implementation. 3. An understanding of various Input/Output operations, and the functions of system programs. 4. An understanding of the connections between hardware and assembly language, and those between high-level languages and assembly language. V. Learning Outcomes: After the completion of this course, a successful student will be able to do the following: 1) Describe the major classes of programming languages with their characteristics. 2) Perform conversions between binary, octal/hexadecimal, and decimal number systems and perform the basic arithmetic operations in these number systems. 3) Describe the assembly level machine organization including: the main memory, the CPU, the I/O systems, the system interconnection, the secondary storage, the clock, and interrupts with their function. 4) Explain memory organization, memory segmentation and boundary alignments. 5) Represent an absolute address in selector/offset form and compute an absolute address from a selector/offset address. 1

6) Represent different types of data inside the computer: characters (in ASCII), integers (in two s complement and sign magnitude), decimal number (in BCD) and floatingpoint values (in binary). Perform addition and subtraction of two s complement binary integers, and recognize overflow conditions. Also perform conversion between 8-bit, 16-bit, and 32-bit two s complement binary integers. 7) Know how to use the services (routines) that the operating system (DOS, ROM- BIOS) provides to other programs to access the hardware. 8) Explain memory utilization under DOS, and the difference between.com programs and.exe programs. 9) Specify an instruction in assembly language, and in machine language, and be able to translate a machine language instruction into assembly language and vice versa. 10) Write and execute (trace) a Debug program to perform a two s complement binary integer arithmetic expression, and know how to interpret the result(s). 11) Use loop instructions to write and execute (trace) Debug programs with simple iteration executions, including the processing of arrays of two s complement binary integers. Arrays will be processed using both pointers and base-displacement addressing. 12) Use the compare and conditional/unconditional jump instructions to implement the high-level language structures if, if/else, and loop. Also write and execute a Debug program with one or more of these structures. 13) Write an assembly language program (program segments definition and symbolic addressing) and explain the assembly process of a source module. 14) Assemble, link, and execute an assembly language program (.exe program) in Debug environment (using the listing and the map files). 15) Write programs with calls to near/far procedures. 16) Use the stack to pass arguments to procedures. 17) Write and execute (in the Debug environment) assembly language programs with external procedures. Must also know how to link an assembly language program with a high-level language program. 18) Perform I/O operations using DOS services. The course will also reinforce the following students learning outcomes of the university: a) Effectively express themselves in written and oral form. Measure: exams, surveys, and projects. b) Demonstrate ability to think critically. Measure: exams, surveys, and projects. c) Locate and use information. Measure: projects. d) Demonstrate ability to integrate knowledge and idea in a coherent and meaningful manner. Measure: exams, surveys, and projects. e) Work effectively with others. Measure: projects. 2

VI. Course Contents: 1. Introduction - Major classes of programming languages S Number systems: binary, Hexadecimal/Octal number systems; conversion between decimal, binary, and hexadecimal/octal number systems; arithmetic operations on binary and hexadecimal/octal number systems. 2. Digital computer system hardware S Main Memory: addressing, boundary alignments, and organization; RAM, ROM. S CPU: CU, ALU and registers (8086 registers) S I/O System: I/O devices, controllers, communication between the CPU and controllers (memory-mapped I/O and I/O addressing). S Secondary storage: drives and controllers. S Clock S Interrupts: hardware and software interrupts, 8086 interrupts. 3. Data representation S Representation of characters (EBCDIC, ASCII, Extended ASCII) S Numeric data. binary integers: signed-magnitude, two=s complement (addition, subtraction, and overflow conditions). Binary-coded decimal. Floating-point numbers 4. Software Environment S DOS and ROM-BIOS S Program files, batch files, and device drivers S Computer initialization S Input-Output interface: DOS and BIOS services, and interrupts instructions. S Memory utilization under DOS and DEBUG utility program. 5. Machine language instruction formats and assembly language statements. 6. Data movement and arithmetic instructions on binary integers. 7. Relative addressing and iteration 8. Comparing, conditional and unconditional jump instructions. 9. Arrays: Addressing and operations; multi-dimensional arrays. 10. Assembly language programming. General syntax of an assembly language statement. Source modules and segments definition 3

. Symbolic addressing of memory locations, symbol table. Program termination and return to DOS. Assume and equ directives. Program translation, linkage and execution: program listing and map files 11. Subprograms: near and far procedures; near and far pointers; stack and operations on stack; using the stack to pass arguments to procedures 12. External subprograms and linking with high-level languages 13. DOS I/O services. VII. Teaching Methods: 1. Classroom lectures 2. Exercises/homework/lab assignments discussions 2. Open lab. sessions VIII. Evaluation: 1. Periodic examinations and final examination. 2. Homework assignments. 3. Programming assignments IX. Textbook: Introduction to the Structure and Programming of Computer Systems, Gilbert Ndjatou, Thomson C.P., 2003. X. Bibliography: Introduction to 80X86 Assembly Language and Computer Architecture, Richard C. Detmer, Jones & Bartlett, 2001. Professional Assembly Language (Programmer to Programmer), Richard Blum, Wrox Press, 2005. IBM PC Assembly Language and Programming (5th Edition), Peter Abel, Prentice Hall, 2001. The Assembly Programming Master Book, Vlad Pirogov, A-List Publishing, 2004. PC Assembly Language, An Introduction to Computer Systems, Paul Morneau, West Publishing Co., 1993. 4

Assembly Language for Intel-Based Computers (4th Edition), Kip R. Irvine, Prentice Hall, 2002. System Software, An Introduction to Systems Programming, 2nd edition, Leland L. Beck, Addison-Wesley Publishing Co., 1990. Structure Assembler Language For IBM Microcomputers, Alton R. Kindred, Hartcourt Brace Jovanovich, Inc., 1991. XI. Prepared by: Dr. Gilbert Ndjatou. XII. Original Department Approval Date: Spring 1997. XIII. Revised by: Dr. Gilbert Ndjatou on April 1, 2000. Second revision in Fall 2004. XIV. Department Revision Approval Date: Fall 2004.. 5