CS441 System Design Lab
C.S. 441 System Design Lab
Coding of an assembler, syntax analysis, verification, and validation.
Prerequisites: C.S. 440 System Design (C- or higher)
Professor: Douglas J. Ryan
Office: Strain Science Building (Room 201)
Office Hours: 1:30-2:30 MTWF
Phone: 359-2135
Book(s): See CS440
Approximate Grading:
Pass1 Design .............................. 25 pts
Pass2 Design .............................. 25 pts
Pass1 Implementation w/ST ................. 100 pts
Pass2 Implementation w/OM.................. 150 pts
---
Total ..................................... 300 pts
Note: Final grades will be determined on a percent basis (total points received / total points possible) using the following scale:
[92 - 100] A
[90 - 92) A-
[87 - 90) B+
[82 - 87) B
[80 - 82) B-
[77 - 80) C+
[72 - 77) C
[70 - 72) C-
[67 - 70) D+
[60 - 67) D
[0 - 60) F
Design / Project Timelines / Reports
The pass 1 design is due on Monday (2/8/2000) along with a timeline of when you are going to complete Pass 1. Your deadline schedule is to include what you plan to have accomplished every time we meet until you get pass 1 complete. At the beginning of each class, each person will give a brief report of where they are in conjunction with their deadline schedule.
Pass 1
Pass1 will be fully graded based on the results of the printout from your symbol table and the final value of the location counter. No error checking will be looked at during this phase, but you must be able to handle any syntactically correct assembly language program based on our grammar and instruction set. Further, for full credit, our programs will produce the same values for the symbols in the ST if everything in the assembly program is previously defined. This means no worst case assumption for the number of bytes on a line will be necessary. In pass1, you are to implement all addressing modes and the only time you can make a worst case assumption about the number of bytes for a line is if the line contains a forward reference and the actual number of bytes cannot be determined.
Pass 2
Pass2 will be graded with three major components comprising your grade. The first of these components will be how your assembler handles assembly language source code with no errors. That is, what does the assembly listing look like for these assembly programs. The second component will be how does your assembler handle assembly language source code with various degrees of errors. That is, does your assembler flag most or all of the errors and not bomb out on some tough test case situation. The last component of this phase is can your object module be linked using Microsoft LINK and actually execute the executable successfully.
Guidelines for grading Pass1 and Pass2
Successful Execution (80%)
Efficiency (10%)
Documentation (5%)
Coding Style/Hungarian Notation (5%)
Code Reviews / Discussion
Each week after the progress reports, we will do a code review. Hopefully, we will be able to do two code reviews for each person in the class. Each class meeting is mandatory. Anyone not showing up on time or not staying for the duration of the class will lose 2.5% of the total points in the class. Anyone not actively participating in the discussion of the reviews will lose 1% of the total class points. Participation is being actively involved in the group discussion for the duration of class.
Since you are telling me when you will have the pieces of the project done, there is no need to have a late policy. That is, nothing will be accepted late. You are determining when things are due. My only stipulation is that pass 1 must be completed on or before April 10 (5 pm). Chances are if you wait that long, you are in serious trouble.
Policies:
1) A program that does not successfully compile or produces
no output loses 80%.
2) The cheating policy is defined in Pacific Stuff (beginning on page 60) & the Pacific Catalog
(beginning on page 26) as well as the Academic Policy that each of you signed. Be sure you read
or reread this policy carefully. Every function written for CS440/441 is to be an original design and an original implementation. The Web, textbooks, and any other references are simply references for you. Copying source code from any source is prohibited. Further, source code is not to exchange hands in any form or by any medium except when sending your solutions to the instructor. It is OK to share high level ideas during the design phase, help someone in the class fix a bug occasionally, share information dealing with OS issues, debugger issues, in general, development issues that do not involve code writing.
3) All code in any form generated from this course becomes the intellectual property of Pacific University. You may not share this code with anyone without obtaining written permission from Pacific University.
4) Neither computer failure, software failure, nor lack of computer
access are accepted as excuses for late programs; therefore, start
work on the programs as soon as they are assigned, don't put them
off until the last minute!!! Further, corruption of programs
due to bad disk media is also not accepted as an excuse for late
programs; therefore, always keep a current backup of all
programs on a separate disk!!!
Goals for the course
- Introduce tools to aid in developing large software systems.
- Use your knowledge of data structures, algorithms, and assembly in developing the software system.
- Gain experience in developing data sets to exhaustively test each line of code developed.
- Manage a project that is way too big to fit into your head.
- Develop skills that lead to tight efficient code.
- Critique code written by others and have your code critiqued.
- For each person to successfully complete this project!!!
© 2000 Douglas J. Ryan / ryandj@pacificu.edu