CS 360: Assembly Language, Spring 2005
Syllabus

Course Description

Study of the way the computer functions and how it is organized by developing basic programming skills in an assembly language. Pre-requisites: CS 310 and CS 350.

One of the best ways to learn how a computer is organized and how it performs its job is to study it receives and executes instructions at the low level. This course is intended to develop a deeper understanding of how the computer performs its functions by studying lower-level programming concepts, using the assembly language instruction set for a popular Intel family of processors.

Course Objectives

The goal of the course is enable you to:

  • Understand the function of the computer processor in terms of data size, registers, and instruction sets
  • Understand the relationship between high-level and low-level languages
  • Design and implement assembly language programs
  • Understand the basic instruction sets for the Intel IA-32 processors
  • Describe how the processor manages memory
  • Understand how high-level languages implement expressions, loops, and conditional structures at the machine level

After studying this course you should be able to write assembly language programs, understand circumstances under which assembly language programs are more advantageous, nd appreciate the details of how the computer processor functions.

Return to: [Top of Page] 

Instructor

Bro. Robert K. Maruyama, S.M.
email: [email protected]
office: 739-4605

Text Book

There will be no official text book for this course.  The main source of information is an online tutorial Programmed Instruction to MIPS Assembly Language, by Bradley Kjell at Central Connecticut State University

Topics

The topics covered in the course include the following:

  • Data representation
  • Processor architecture
  • Assembly language instruction set
  • Relationship between high-level and low-level languages
  • Assembler directives
  • Program debugging
  • I/O services
  • Arithemetic operations
  • Loops
  • Conditions
  • Subroutines

Requirements

You are expected to spend most of your time studying the online tutorial and answering its questions.  There will be a midterm exam and a final exam, based on the quiz questions found at the end of each chapter in the tutorial.  In addition, there will be a number of programming assignments to be submitted according to the schedule indicated on the Calendar page.

The following is a summary of what is expected of you for the course. Refer to the section on Grading for further details.

    • Tutorial Readings
    • Programming assignments (PAs)
    • Quizzes
    • Midterm exam
    • Final exam

Return to: [Top of Page]

Project Assignments (PAs)

The main goal in this class is to understand the concepts and techniques of object-oriented programming by writing programs that use various features of the Java language. The best way for you to learn them is actually writing programs while studying examples of well written code. A total of 12 project assignments are scheduled for the course. They will be based on the examples presented in the class. They are to be completed at home and submitted via email as attachments. They must be submitted by Saturday midnight of the week specified in the Schedule page.

For each PA submit a jar (Java Archive) file containing both the source code and the byte code--i.e., .java and .class files. Study How to Create a Jar File for details of creating a jar file. Send the jar file as email attachments to the following address.

To: [email protected]
Subject: OOP PA X (where X is the PA number)

In order to encourage you to keep up with the schedule, penalty points will be deducted at the following rate: 1 day late, 10%; 2 - 6 days late, 30%; 1 to 2 weeks, 50%. As a general rule, for an assignment that is submitted more than two weeks past the due date, the maximum possible credits will be 30% of the assigned points. It is always better to submit an assignment late than not at all. If you foresee a valid reason that could cause you to turn in your assignments late--e.g., TDY, special assignments, accidents, etc.--you must get permission for special arrangements before the programming assignment is due.

Return to: [Top of Page]

Submitting One's Own Work

Each student is expected to submit his or her own work. You are encouraged to discuss and help each other in solving problems, but the work to be submitted should be your own, unless you have been specifically instructed to submit a common project. You must distinguish between consulting your friends and discussing problems with them from copying other people's work. In order to avoid the temptation to copy someone else's work, do not exchange your work itself. The penalty for plagiarism, either in whole or in part, is, for the first offense, a grade of 0 for all parties involved; for the second offense, an F for the course.

Attendance

You are expected to attend all classes. If you need to miss a class for some reason, please notify the instructor prior to the class date so that he can help you catch up with any material that you might miss. As a rule there will be no makeup quizzes and exams. Exceptions may be made for an exam when prior arrangements are made for legitimate reasons.

Return to: [Top of Page]

Grading

The semester grade will be based on the following elements of your course responsibilities: (Points for totals are subject to change depending on the number of quizzes and PAs.)

PA 20 x 6 120

Discussions

10 x 15 150
Midterm 100 100

Finals

200

200

--------------------------------------

Total

 

570

The following guidelines will be used in determining the final grades.
A: >= 90%; B: >= 80%; C: >= 70%; D: >= 60%; F: < 60% 

Return to: [Top of Page]

Getting Help

For "quick" questions the email is the simplest way to contact me. Feel free to drop in at my office during office hours or to set up an appointments outside those hours.

Return to: [Top of Page]