CS代考 CS 530 Systems Programming

CS 530 Systems Programming
Course Materials
· Required text: , System Software: An Introduction to Systems Programming, 3rd edition, , 1997. ISBN 0-201-42300-6.

Copyright By PowCoder代写 加微信 powcoder

Course Information for CS 530
Description from the Official Course Catalog
Design and implementation of system software. Relationship between software design and machine architecture. Topics from assemblers, loaders and linkers, macro processors, compilers, debuggers, editors. Introduction to software engineering and review of programming fundamentals and object-oriented concepts. Large project in object-oriented programming is required.
Prerequisites: Computer Science 237 and 310.
Course Type: Required.
Specific Goals for CS 530
Course-Level Student Learning Outcomes
1. Understand key features of the SIC and SIC/XE architectures and be able to interpret instruction formats and addressing modes of the SIC and SIC/XE architectures.
2. Understand the techniques and algorithms for translating assembly code to binary machine code and vice versa; and learn how to implement the translating / assembling algorithms.
3. Understand different schemes for loading and linking program machine codes for execution and learn how to determine memory content when the program is linked and relocated.
4. Learn how to perform macro expansion with macro processor.
5. Understand context free grammars for describing the syntax of computer programming languages.
6. Understand the concepts and algorithms for lexical analysis and syntactical analysis in compiler construction; and learn how to implement a basic compiler parser.
7. Demonstrate deep understanding of the relationship between the underlying computer hardware and the low-level software that runs on it.
8. Develop advanced programming abilities through team programming assignments.
9. Learn to work together in a team to build a software system controlling hardware through a course project.

Relationship to CS Program Outcomes
CS 530 addresses the following CS program outcomes:
1. An ability to apply knowledge of computing and mathematics appropriate to the discipline.
2. An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution.
3. An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs.
4. An ability to function effectively on teams to accomplish a common goal.
5. An ability to use current techniques, skills, and tools necessary for computing practice.
6. An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices.
7. An ability to apply design and development principles in the construction of software systems of varying complexity.
Topics Covered
The following topics are covered in CS 530:
1. Introduction of SIC and SIC/XE machines, addressing modes and instruction formats.
2. Basic assembler functions, modification records, machine dependent and independent assembler features, assembling algorithms and data structures.
3. Basic loader features, relocation and programming linking.
4. Macro definition and expansion, macro processor algorithms and data structures, parameter concatenation, generation of unique labels, conditional macro expansion, keyword macro parameters.
5. Compiler grammars, lexical and syntactical analysis, parsing and parse tree, code generation.
UNIVERSITY POLICIES
Netiquette: Netiquette is online etiquette and is applicable to all course communications. It is important that all students be aware of proper behavior and show respect to one another.
Netiquette guidelines are common sense and ask all to use appropriate language for an educational environment:
· Use complete sentences
· Use proper spelling and grammar
· Avoid slang and uncommon abbreviations
· Avoid obscene or threatening language
The University values diversity and encourages discourse. Be respectful of differences while engaging in discussions. Consult SDSU’s netiquette guidelines for more information.
Accommodations: If you are a student with a disability and are in need of accommodations for this class, please contact Student Ability Success Center at (619) 594-6473 as soon as possible. Please know accommodations are not retroactive, and I cannot provide accommodations based upon disability until I have received an accommodation letter from Student Ability Success Center.
Student Privacy and Intellectual Property: The Family Educational Rights and Privacy Act (FERPA) mandates the protection of student information, including contact information, grades, and graded assignments. I will use [Canvas] to communicate with you, and I will not post grades or leave graded assignments in public places. Students will be notified at the time of an assignment if copies of student work will be retained beyond the end of the semester or used as examples for future students or the wider public. Students maintain intellectual property rights to work products they create as part of this course unless they are formally notified otherwise.
Religious observances: According to the University Policy File, students should notify the instructors of affected courses of planned absences for religious observances by the end of the second week of classes.
Student email addresses: Students are provided with an SDSU Gmail account for their official use. This SDSU email address will be used for all communications. Per university policy, students are responsible for checking their official university email once per day, please see Student Official Email Address Use Policy here.

Academic Honesty: The University adheres to a strict policy prohibiting cheating and plagiarism. Examples of academic dishonesty include but are not limited to:
· posting, sharing any assignment / quiz / project / exam information in any form on any online platform and/or asking help,
· copying, in part or in whole, from another’s test or other examination;
· obtaining copies of a test, an examination, or other course material without the permission of the instructor;
· collaborating with another or others in work to be presented without the permission of the instructor;
· falsifying records, laboratory work, or other course data;
· submitting work previously presented in another course, if contrary to the rules of the course;
· altering or interfering with grading procedures;
· assisting another student in any of the above;
· using sources verbatim or paraphrasing without giving proper attribution (this can include phrases, sentences, paragraphs and/or pages of work);
· copying and pasting work from an online or offline source directly and calling it your own;
· using information you find from an online or offline source without giving the author credit;
· replacing words or phrases from another source and inserting your own words or phrases.
The California State University system requires instructors to report all instances of academic misconduct to the Center for Student Rights and Responsibilities. Academic dishonesty will result in disciplinary review by the University and may lead to probation, suspension, or expulsion. Instructors may also, at their discretion, penalize student grades on any assignment or assessment discovered to have been produced in an academically dishonest manner.
Medical-related absences: Students are instructed to contact their professor/instructor/coach in the event they need to miss class, etc. due to an illness, injury or emergency. All decisions about the impact of an absence, as well as any arrangements for making up work, rest with the instructors. Student Health Services (SHS) does not provide medical excuses for short-term absences due to illness or injury. When a medical-related absence persists beyond five days, SHS will work with students to provide appropriate documentation. When a student is hospitalized or has a serious, ongoing illness or injury, SHS will, at the student’s request and with the student’s consent, communicate with the student’s instructors via the Vice President for Student Affairs and may communicate with the student’s Assistant Dean and/or the Student Ability Success Center.
SDSU Economic Crisis Response Team: If you or a friend are experiencing food or housing insecurity, technology concerns, or any unforeseen financial crisis, it is easy to get help! Visit sdsu.edu/ecrt for more information or to submit a request for assistance. SDSU’s Economic Crisis Response Team (ECRT) aims to bridge the gap in resources for students experiencing immediate food, housing, or unforeseen financial crises that impacts student success. Using a holistic approach to well-being, ECRT supports students through crisis by leveraging a campus-wide collaboration that utilizes on and off-campus partnerships and provides direct referrals based on each student’s unique circumstances. ECRT empowers students to identify and access long term, sustainable solutions in an effort to successfully graduate from SDSU. Within 24 to 72 hours of submitting a referral, students are contacted by the ECRT Coordinator and are quickly connected to the appropriate resources and services.
For students who need assistance accessing technology for their classes, visit our ECRT website (sdsu.edu/ecrt) to be connected with the SDSU library’s technology checkout program. The technology checkout program is available to both SDSU and Imperial Valley students.
Technical support
Canvas Technical Support  
Please note that we are using Canvas for this course. If you have difficulty logging in, or experience technical difficulties, please contact the Canvas support team by calling 619-483-0632. They are open 24×7 for your convenience. Live Chat and other resources are available at: https://library.sdsu.edu/computers-technology
Clicking on the “?” in the lower-left hand corner of your Canvas class will also get you help.

To find out more documentation about Canvas or to ask the Canvas Community questions, see the following link: https://community.canvaslms.com/community/answers
COURSE MATERIALS
TEXT: Beck, Leland (1996), System Software: An Introduction to Systems Programming, 3rd edition; , ISBN 0-201-42300-6, ISBN-13 978-0-20142300-6.
SDSU Bookstore

Lecture Notes / Slides
Note: lecture notes / slides are strictly SDSU properties, posting and sharing any course materials on any online platform outside SDSU Canvas are strictly prohibited.

Materials (including texts, readings, course fees, equipment, and any technology requirements)
Required or optional
Where and how it can be obtained

COURSE DESIGN
Scored activities and weighting by percentage of total score:

· Project (See CS530_project_fall2022.pdf)

· 5 Programming Assignment/Homework

· Class Participation and attendance

Programming assignments
Whether as part of a lab or problem set, programs must be well structured and commented. Frequently, students make their lives more difficult by simply writing the program without thinking first. The use of good program design will make your life significantly easier. In addition, an emphasis should be made on making your programs readable. Use meaningful variable names and comment as you write the program rather than adding comments at the end. Functionality may be evaluated automatically, be sure to follow specified interfaces and naming conventions. Good design and structure are expected; programs are not assessed as excellent or good simply because they work. You are not expected to comment every line nor to comment on obvious lines of code (e.g. counter = counter + 1), but you must provide enough documentation such that a reasonable programmer can easily follow your code. Failure to do so will result in the program earning a lower number of points.

Group project / programming assignment
You are encouraged to form a group of 3 to work on the programming assignments and project.

Assessments / Exams
There will be 5 in-class open-book assessments. The assessments are non-cumulative, but later assessments may build on materials covered in the previous assessments. Generally, tests emphasize on understanding of concepts and you should expect short essay questions in addition to any short answer or quantitative questions. If you cannot attend an assessment, contact me before the assessment. You must have extenuating circumstances beyond your control for not attending the exams, and I will be the sole judge as to whether the circumstances warrant your absence from the assessments. In general, do NOT expect any make-up assessment or exam.
GRADING POLICIES
Grading Scale: 
· A+:100%-94%; A-: 93.99%-90%;
· B+: 89.99%-87%; B: 86.99%-83%; B-: 82.99%-80%;
· C+: 79.99%-77%; C: 76.99%-73%; C-: 72.99%-70%;
· D+: 69.99%-67%; D: 66.99%-63%; D-: 62.99%-60%;
· F: 59.99%-0%.

Late Turn in Homework and Report
Assignment problem sets consist of questions and programming assignments, and are due at the beginning of class. Any assignments turned in after the beginning of class will be counted late. Late assignments will be accepted up to one class period after the due date with a penalty of 10% of the possible number of points. Questions may be quantitative or qualitative in nature. For qualitative questions you are expected to give responses in grammatically correct complete sentences. For quantitative problems, you must show your work in order to receive credit.

For the group project, the following rubric will be considered in grading:
1) There should be a section in your assignment or project report to detail each student’s participation and contribution to the project.
2) Students would each submit a peer review on others in the same group. Students who are evaluated by their peers as having failed to satisfactorily participate in the group’s work (rated at 67 percent or below) will not receive the group’s grade. Instead, you will receive a grade comprised of my / TA’s and your group’s evaluation of your work. This means, while a group may receive an A on the project, the free rider could receive a D or below.
TENTATIVE SCHEDULE
This syllabus and schedule are tentative and subject to change as the class progresses.

Syllabus, Intro to systems programming, group making

SIC/XE (1), SIC/XE (2) : Quiz #1, 2

SIC/XE (3), and Project topics & discussion

Assembler (1), Assembler (2)

Assembler (3), Assembler (4)

Assembler (5)

Week 7: Chap 2-1,2
Loader and Linker (1), Loader and Linker (2)

Week 8: Proj Rev, No Class
Loader and Linker (3)

Week 9: Chap 2-3,4 : Oct 19th
Quiz #3, Macro (1)

Week 10: Chap 3-1, 2 : Oct 26th
Macro (2), Macro (3)

Week 11: Chap 4-1, Project Review : Nov 2nd
Macro (4),

Week 12 : Nov9th : Chap 4:2,3
Quiz #4#5, Compiler (1)

Week 13: Nov 16th Chap 5 Begin
Compiler (2), Compiler (3)

Week 14: Thanksgiving
Compiler (4), Software Engineering / Project management (1)

Week 15: Chap 5:2
Final Mock, Presentation Review (Thur)

Final Project Presentation (1)

程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com