ECS 50 Name Sean Davis Course Syllabus Summer 2015 Title E-mail Lecturer ssdavis@ucdavis.edu Room Office Hours 3052 Kemper M 10-11:15, 1-2; W 10-12, 1-2; R 8-10:30; and by appointment. Ahsan Abdullah Reader ahsan.abdullah92@gmail.com None None Web page: http://csiflabs.cs.ucdavis.edu/~ssdavis/50/homepage.html Newsgroup: https://piazza.com/class#summer2015/ecs50 E-mail to Sean should only be regarding personal matters, and must come from an ucdavis.edu e-mail account or with ECS in the subject. All course questions should be posted to the piazza newsgroup. Required Materials: G. Karam and J. Bryant, Principles of Computer Systems, 1992, Prentice Hall, Englewood Cliffs, New Jersey. Prerequisite: ECS 40 with a C- or better. Description: Comparative study of different hardware architectures, via programming in the assembly languages of various machines. Role of system software in producing an abstract machine. Only one unit credit allowed for students who have taken EEC 70. Course Objectives: 1. Students will be able to provide the various data representations used in computers for data types and memory addresses, including segmented address forms. 2. Students will be able to compare and contrast the instruction sets, addressing modes, and register sets of at least one CISC architecture and one RISC architecture. 3. Students will be able to describe how compilers and operating systems facilitate machine independent programming. 4. Students will be able to write mixed C-language and assembly language programs, and understand the underlying speed Vs. flexibility trade-offs of such programs. Approximate Course Grading: Homework 35% Midterm #1 15% Midterm #2 25% Final 25% Class participation/discussion attendance/newsgroup help/office hour visits 5% (extra credit) Letter grades will be approximately: A = 90+% ; B = 80-89%; C = 70-79%; D = 60-69%; F = <60% Homework: The deadline for each of the five assignments will be announced in class. Each homework assignment will be comprised of both natural and assembly language problems from the book, as well as some new programs. You will turn in written homework to the homework box in 2131 Kemper. You will use handin to submit programming assignments to the cs50 account. Late work is NOT accepted without an e-mail medical excuse from the Health Center. Don't even try to hand in any work late. BEWARE! You thought getting your program to compile and running in C++ was hard, wait until you try to write and debug assembly code! The code is much more cryptic, and can get totally confusing. DO NOT PROCRASTINATE!!! Except for the last assignment, you will have one week from the date of return to submit a test, program, or written homework for regrading. In the case of programs, you will have five minutes during my office hours to make changes in your previously submitted program, and then have the program retested. Discussion: Discussions will be the last non-test slot each week. See the tentative schedule on the back. Exams: All exams are open book, open note, and cumulative. The final exam is Wednesday, July 29th, 8:00—9:40 in 212 Wellman. TENTATIVE CLASS OUTLINE Date Reading 6/22 AM Chapter 1 6/22 PM Chapter 2 6/23 Chapter 3 6/24 None 6/29 AM Chapter 4 6/29 PM Chapter 5 6/30 Chapter 6 7/1 None 7/6 AM Chapters 7 & 8 7/6 PM Chapter 8 7/7 None 7/8 None 7/13 AM Chapter 11 7/13 PM Chapter 11 7/14 Handout 7/15 None 7/20 AM Handout 7/20 PM Handout 7/21 None 7/22 None 7/27 AM Handout 7/27 PM Handout 7/28 None 7/29 None Topics Introduction, Data and Their Representations Computer Organization Instruction Set Catch-up/ Discussion The Assembler Indexed Addressing The Stack and Frame Registers Catch-up / Discussion Character Manipulation, I/O Organization Interrupts and buffers. Catch-up / Discussion Midterm #1, Chapters 1-6 Intel 8086 Architecture, Memory Access 8086 Procedures, Strings, I/O, Arithmetic Modern x86 Discussion x86 subroutines RISC vs CISC and Intro to MIPS Discussion Midterm #2, Chapters 1-8 MIPS cont’d. MIPS cont’d / History of hardware Discussion and review Final