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
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]
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] |