Course Syllabus Diablo Valley College COMSC 260 section 5071 – Assembly Language and Machine Orhanization Mandatory Meetings: None Instructors: Caterina Pentcheva E-mail: cpentcheva@dvc.edu Office Location: LA 111 Face to Face Office Hours LA 111 or ATC 115: Tuesday 1:20-2:20 pm: in person only Online Office Hours via: Canvas email/Canvas chat/Zoom/ Skype Monday and Wednesday 12-1:30 pm -- via Canvas email/zoom/Skype Sunday 10-11 am -- via email and/or Canvas chat Course Website: Canvas Prerequisite: COMSC 165 Course Credits 4 units Last Day to Add: 02/09/20 Last Day to Drop With Refund: 02/07/20 Last Day to Drop Without W: 02/09/20 Last Day to Drop With W: 04/24/20 Spring Break March 29 - April 4 MIDTERM EXAM - March 22 FINAL EXAM - May 17 or May 18, student choice Course Description This course covers the basics of machine architecture, machine language, assembly language, operating system interface, and interfacing with high level languages. Topics include data representation, instruction representation and execution, addressing, indexing, macros, subroutine linkages, storage and time efficiency issues, interrupt descriptor tables, virtual memory, cache memory, and dynamic address translation. Successful strategies in an online class • New Online Students - Strategies to Learn Online: College of the Siskiyous' Surviving in an Online Course Student Learning Outcomes: 1. 2. 3. 4. 5. 6. Describe computer hardware architecture. Use all types of data representation. Access and use the operating system. Program in assembly language. Interface with high level languages. Perform simple hardware simulation. Required Text/Material Text: Assembly Language for x86 processors, 7th edition Author: Kip Irvine Publisher: Prentice Hall Software For this course, we will be using Microsoft Visual Studio 2019/2017. You may also use the express editions of Visual Studio. To setup up MASM in Visual Studio 2019 environment, you may refer to author’s page: http://kipirvine.com/asm/gettingStartedVS2019/index.htm To setup up MASM in Visual Studio 2017 environment, you may refer to author’s page: http://kipirvine.com/asm/gettingStartedVS2017/index.htm To download Irvine directory and updated project: http://kipirvine.com/asm/examples/index.htm NOTE: I recommend using PC computer for this course. You will save yourself a lot of headache. However, if you want to use Mac computers, please see the directions below: Installing Visual Studio on a Mac Before you can install Visual Studio on a Mac you must first install Windows. You have 2 choices for installing Windows: you can either have a dual boot system (Boot Camp) or you can run Windows as a virtual machine (Virtual Box or Parallels Desktop). In general, if you run Windows on a dual boot system you will have better performance. The best recommendation is to install the 64-bit version of Windows 10. Here is one suggested link for installing Windows 10 on a Mac: https://www.macworld.co.uk/how-to/macsoftware/install-windows-mac-3497251/ Here is a link for set up VMWare Fusion on Mac systems, How To Setup VMWare Fusion On Mac OS X Or install the Virtual Box with Windows 10 on a Mac, [2017] How to Run Windows 10 on Mac for FREE!! OS X Sierra to Snow Leopard!! Course Assignments and Exams The course will require 9 online quizzes, 8 assignments, a midterm exam, and a final exam. The lowest quiz will be dropped. Exams cannot be made up or rescheduled. In case of emergency, please talk to me. Assignments are worth 30% of the final grade, quizzes 10%, midterm 25%, final 25%, and discussion reflections 10%. Final letter grades are based on the following overall course percentage: 90 – 80 – 70 – 60 – 0– 100 % A 89 % B 79 % C 69 % D 59 % F Midterm Exam - after chapter 4, Final Exam - after chapter 9 Note: Both Exams are going to open from 4 am to 11:59pm on the indicated days so you have flexibility of when to complete them. However, you will have only one attempt and 120 minutes (only ) to complete the exam. Tardiness of Assignments and Tests Each assignment has a due date. After the due date, the assignment loses a point per day. After 20 days of tardiness, the assignment is worth zero points. Absolutely no assignment will be accepted after the final exam or the end date of instructions, whichever comes later. If you fail to take the test with the rest of the class, there are 10 percent late penalty. For example, if you take the midterm after the rest of the class and you get 90 percent, your test will be worth only 81 percent. (10% of 90 % is 9%) Quizzes have due dates. The lowest quiz will be dropped. Missed quiz will NOT be re-open for any reason. Please check Canvas calendar for due dates. In case you need to take the exam on a different date because of religious Holiday, you need to talk to me in ADVANCE and take the exam BEFORE the class. If you have an emergency, you need to present supporting proof such as doctors note. Emergency do not include: ----Forgetting to take the exam --- Having light cold or flu ---Broken car ---Family vacations ---Sick grandparents, parents, siblings -- Broken computers and cell phones --Picking someone from the airport, train stations, etc. --Being in a different time zone --Having another exam on the same day Submission of Assignments: Submit assignments: 1. Copy your source code and a screenshot of one or more runs for each part of the assignment (if more than one part) on a word document - docx file and submit via assignments tool in Canvas. 2. For non-programming exercises: Upload a word document with your work. For full credit on non-programming assignments: PLEASE show your work. Please submit the assignment when you complete ALL parts if the assignment has more than one part. I do not accept partially completed assignments. You can submit partially completed assignment only if you cannot/do not have time to complete the entire assignment and elect to get a partial credit for that particular assignment. Assignments sent in any other format or via email will not be graded and you may receive 0 points for them. Assignments CANNOT be submitted after the end of the semester. Grading assignments 1. Accuracy – 15 points 2. Code style – indentation, clarity, etc. – 2 points 3. Comments – 3 points. Block comment must include your name, assignment number and description, date submitted, and if the assignment is complete or incomplete. An assignment is complete if it is coded properly according to the specifications, has no syntax or logic errors, and produces the expected output. Line comments – most of the assembly code statements must have comments. Reflections In each module, your instructor will post a reflection topic on a dedicated reflection discussion board that you will find in each module. You are to post a two paragraph reflection on the posted topic and reply to two of your classmates reflections. Note that this is a graded activities and they have due dates as any other assignment in this course. Note: Reflections are due by midnight on the due dates. Every reflection posted after the due date will be discarded. There is no partial credit for this assignment. Note: Replies to reflections will be due by midnight two days after the due date of the reflections. Replies posted after the due date will be discarded. There is no partial credit for this assignment. Quizzes All quizzes are online. You will have 15 minutes to complete each quiz. You need to complete each quiz on one sitting. Quizzes are due by Midnight Sundays. Please refer to the table at the end of the syllabus for more details. You need to complete the quizzes by their closing time. No makeup on quizzes. No quiz will be re-opened after its closing date. The lowest quiz will be dropped. Class Policy Expect to spend about 12 hours per week on this course. Lab assignments, Labs and other materials are posted on the class website in Canvas Quizzes will cover the material for the indicated week's reading assignment in the course outline, the lecture notes and the power point slides for the week. For questions on labs, assignments, and any other course related questions, use the Canvas discussion board. Students may post and reply to questions in order to help each other. Use this method so that all students benefit from questions, answers, and clarifications. If you have any questions about lectures, quizzes, exams, etc. please email using Canvas When emailing instructor, please type COMS260_SectionNumber_Your Name_ content of the email in the subject line. Arrangements for missed exams must be made with the instructor in advance. Final Exam cannot be missed. No credit will be given for work that is plagiarized. Points awarded for work that is later found to be plagiarized will be withdrawn. Please do not delete (lose) your assignments and labs from your computers or flash drives until the end of the semester. For questions on labs, assignments, and any other course related questions, use the Canvas discussion board. Students may post and reply to questions in order to help each other. Use this method so that all students benefit from questions, answers, and clarifications. Arrangements for missed exams must be made with the instructor in advance. Final Exam cannot be missed. No credit will be given for work that is plagiarized. Points awarded for work that is later found to be plagiarized will be withdrawn. Please do not delete (loose) your assignments and labs from your computers or flash drives until the end of the semester. Attendance This is a challenging class and you should try and attend every lecture. If you miss class, you will be responsible for asking another student about what was covered on the day you missed including assignment due dates. The best practice is to login to Canvas daily or set up notifications to remind the due day for each assignment. Students who miss 2 or more weeks of class and who do not turn in assignments or take exams may be dropped from the class unless arrangements are made in advance. Tutoring Currently there is no authorized tutoring for Comsc-260 at DVC. Dropping from Class If for any reason you need to stop attending class, it is your responsibility to contact the admissions office and withdraw from the class. If you haven't dropped and your name shows up on the FINAL Class Roster, your grade will be "F" for the school Policy. Incomplete The “incomplete” grade was designed for students who have a last minute “disastrous” event (serious illness, death in the family) that prevents them from completing the course. A student must be passing prior to the “disaster”, must have more than 50 percent of the work completed, and evidence of the “disaster” must be supplied to the instructor. The instructor has sole discretion of whether to issue the incomplete. Incompletes are rarely given and do require a contract between the student and instructor about what work is to be made up and the time limit in which it is to be finished. Cheating & Plagiarism Policy Don't do it…Consider this… Do you really want to have faked your way through the class? The DVC Academic Integrity Policy is located at: https://www.dvc.edu/communication/policies/pdfs/ADRF.pdf Student Code of Conduct Policy Student Code of Conduct is located at: https://www.dvc.edu/communication/policies/student-rights/code-of-conduct.html is posted on the DVC Website and pertains to both face to face and online courses. Please read and contact me if you have questions. Student Privacy Rights Policy The Family Educational Rights and Privacy Act (FERPA) is a law that protects students from having their education records shared with people without the student giving their advance approval in writing. (Education records include such things as grades, information from counseling appointments, academic standing, disciplinary records, to name a few.) FERPA also gives students the right to see their education records. If there is inaccurate or misleading information in their records, students can challenge it and try to get it changed. Under FERPA, colleges must have students’ written permission to let parents, guardians, spouses, or others see or discuss their educational records, even if the student is present. Students Privacy Rights is located at: https://www.dvc.edu/communication/policies/student-rights/privacy.html and the link of student support services, https://www.dvc.edu/services.html and more the Food Pantry, https://www.dvc.edu/student-services/student-life/food-pantry.html Accommodations for Students with Disabilities If you have a documented disability and wish to discuss academic accommodations, or if you would need assistance in the event of an emergency, please contact me as soon as possible. DSS Statement: "Any student with a documented disability is welcome to contact us as early in the semester as possible so that we may arrange reasonable accommodations. As part of this process, please be in touch with Disability Support Services office at Student Services Center Room 240 or call: 925-969-2176” For information related to DVC Disabled Student Services go to: http://www.dvc.edu/studentservices/dss/dss-student-handbook/index.html Changes to the Syllabus The contents of this syllabus are subject to change with appropriate notice to the students. Course Summary: Date Sun Feb 2, 2020 Details Assignment 1 - Number Systems - Read Assignment Chapter 1-- PLEASE SHOW YOUR WORK FOR FULL CREDIT Course Information Module Reflections Assignment graded discussion Assignment Quiz 1 - Basic Concepts Sun Feb 9, 2020 Assignment 2 - Basic Architecture - Read Chapter 2 Basic Concepts Reflections - graded Assignment discussion Assignment Assignment Quiz 2 - Basic x86 Architecture Assignment Sun Mar 1, 2020 x86 Processor Architecture Reflections graded discussion due by 11:59pm due by 11:59pm due by 11:59pm due by 11:59pm due by 11:59pm due by 11:59pm due by 11:59pm due by Assignment Quiz 3 - Assembly Language Fundamentals 11:59pm Assignment Assembly Language Fundamentals Reflections - graded discussion due by 11:59pm Assignment Sun Mar 15, 2020 Sun Mar 22, 2020 Sun Apr 12, 2020 Assignment 3 - Intro Assembly Language Programming - Read Chapter 3 due by 11:59pm Data Transfer, Addressing , and Arithmetic Reflections Assignment 4 - Data transfers, addressing, Assignment and arithmetic - Read Chapter 4 Quiz 4 - Data transfers, addressing, and Assignment arithmetic due by 11:59pm due by 11:59pm due by 11:59pm Assignment Assignment Midterm due by 11:59pm Assembly Language Procedures Reflections - graded discussion Assignment 5 - Procedures - Read Chapter Assignment 5 due by 11:59pm due by 11:59pm due by 11:59pm Assignment Assignment Quiz 5 - Procedures Sun Apr 26, 2020 Assignment 6 - Conditional Processing Read Chapter 6 Conditional Processing Reflections Assignment graded discussion Assignment Assignment Quiz 6 - Conditional Processing Sun May 10, 2020 Integer Arithmetic Reflections - graded discussion Assignment 7 - Integer Arithmetic - Read Assignment Chapter 7 Assignment Assignment Quiz 7 - Integer Arithmetic Sun May 17, 2020 Tue May 19, 2020 Fri May 22, 2020 Fri Jun 19, 2020 due by 11:59pm due by 11:59pm due by 11:59pm due by 11:59pm due by 11:59pm due by 11:59pm Assignment Quiz 8 - Advanced Procedures due by 11:59pm Assignment Advanced Procedures Reflections - graded due by discussion 11:59pm Assignment 8 - Advanced Procedures - Read Chapter 8 Reading Quiz Chapter 9 - Strings and Arrays Assignment - note, you need to read chapter 9 to accomplish this quiz Assignment Assignment FINAL EXAM due by 11:59pm Assignment FINAL due by 11:59pm due by 11:59pm