BRIGHAM YOUNG UNIVERSITY Computer Science CS 124 Introduction to Computer Systems WINTER 2006 Navigation Syllabus Class Schedule TA Schedule Homework Labs Exams References Web Submission Send Email Course Information Class Times Section 1: TTH 8:00am - 9:15, 1170 TMCB Section 2: MWF 9:30am - 10:45am, 1170 TMCB Credits 3 Prof. Roper Office 2230 TMCB E-mail send email Phone 801-422-8149 Teaching Assistants Hours see schedule Office 1126 TMCB and 423 CB Phone TMCB phone: 801-422-8147 E-Mail send email Syllabus Winter 2006 hardcopy Syllabus Purpose This class is designed as a first introduction to computer systems. The focus is on computer organization, not the art of programming. The goal is to understand the inner workings of a modern computer from binary number representation to how a C program is compiled, linked, and executed. At the end of the course, the student should have a basic understanding of: Boolean algebra and binary number representation Logic gates, storage functions, and their transistor implementations Arithmetic and logical operations on binary numbers Simple computer architecture Computer operations and instructions Input-Output (I/O) Subroutine linkage and stacks Assembly language C syntax and basic programming Basic data structures Recursion Text For the lecture material, we will use Operating Systems: Internals and Design Principles, fifth edition, by William Stallings, Prentice Hall, 2005, ISBN: 0-13-147954-7. We will do a lot of C programming in this class. If you need a reference, I suggest the following books: Practical C Programming, 3rd Edition, by Steve Oualline, O'Reilly & Associates, August 1997, ISBN 1-56592-306-5. and/or Practical C++ Programming, 2nd Edition, by Steve Oualline, O'Reilly & Associates, December 2002, ISBN 0-596-00419-2. The text for the course is Introduction to Computing Systems from Bits & Gates to C & Beyond, 2nd edition by Yale N. Patt and Sanjay J. Patel. This book will be used extensively throughout the course and supplemented by materials found on Blackboard. There will also be times when information is given in class that is neither in the text nor on Blackboard. Class attendance and notes are important. Course Activities Course Materials All materials relating to the class can be accessed via Blackboard and this website. This includes the class syllabus, schedule, Powerpoint lectures, homework, labs, discussion board, messages, and most importantly, grades. It is the responsibility of each to student to verify that homework, exam, and lab grades have been correctly recorded. Programming Environments Programming of the labs will be done in LC-3 assembler and C. With the exception of Lab 1, the micro-architecture simulator, the choice of the software tools and programming environment is left to the student's discretion. This can be accomplished in several ways: Windows users can download the LC-3 editor/assembler/simulator from the book's website and a very good C compiler at the LCC website. Both are free! For those wanting to use Linux on their home computers, look at the KNOPPIX website for a free Linux system bootable from CDROM. For those who do not own a computer or would just rather do their work using BYU facilities, there are Linux/Unix labs available in both the Computer Science and Engineering buildings with a Java LC-3 assembler/simulator. A gcc compiler is also available. The EMACS, VIM, or KWRITE are acceptable text editors. If you are unsure of which editor to use, feel free to ask a TA In any case, it is the student's responsibility to present their work to a TA in the designated CS/ECEn 124 labs for pass off. (1110, 1106, 1102, 1029, 1027, and 1126 TMCB or 308 and 425 CB) Computer Lab Assignments CS 124 is a "hands on" course with lab assignments needing to be passed off by TAs in the CS 124 computer labs (1110, 1106, 1102, 1029, 1027, and 1126 TMCB) or EE CAEDM labs (308 and 425 CB). There are ten computer lab assignments designed to emphasize topics discussed in class. The lab assignments explore programming at various abstraction levels in the computer system. Please pay careful attention to the following guidelines: Lab assignments can be found under Assignments on Blackboard and Labs on the navigation bar to the right at the top of the page. Lab assignments must be completed and passed off with a Date Modified timestamp on or before the due date to receive full credit. NOTE: Timestamps cannot be used for extra credit points and cannot be more than two days delinquent. Any lab assignment completed and passed off after the due date will lose 10% per school day. (After 2 weeks, an assignment has no grading value but may be used in adjusting grade at the end of the semester!). Lab assignments are to be passed off by a TA during regular TA hours in the TA offices or class programming labs. Lab assignments can be passed off on school computers or personal laptops (see Programming Environments below). In addition to passing off an assignment with a TA, lab assignments must be submitted by the student via electronic submission before any grade can be awarded. Please note that this is the student's and not the teacher or TA's responsibility and must be done within two days of pass off! As an incentive to get your labs done early and to motivate you to thoroughly check your work, labs passed off by a TA at least one day before the due date (timestamps do not count) will receive an additional 10% extra credit. Any grade points earned on labs above the allotted lab percentage will apply to your overall grade. All labs MUST BE COMPLETED, PASSED OFF AND ELECTRONICALLY SUBMITTED on or before the final day of the semester (April 18). Homework Homework assignments are designed to reinforce class material and help in exam preparation. Please pay careful attention to the following guidelines: Homework is assigned weekly through Blackboard and due at the beginning of class each Thursday (beginning in the 2nd week). At that time, homework will be discussed and graded with students being called upon to present their solutions and questions. Most homework will consist of 5 to 10 questions and cover the material from the previous week's class discussion. Homework must have the student's name, section, and homework number clearly indicated at the top of the homework to be accepted for grading. Answers must be clearly legible as well to be graded. Any homework submitted after the due date will lose 50% per week. (After 1 week, an assignment has no grading value!). You are welcome and encouraged to discuss the homework with your classmates and others. However, you are to do and submit your own work. Submitting someone's work is considered cheating for which you will receive an E grade for the class and be reported to the Honor Code Office. No grade is worth the consequences of dishonesty! Course Assessment Exams Three midterms will be administered during the course of the semester and a final exam during finals week at the end of the semester. All exams will be administered in the testing center and be available from Thursday until closing on Saturday. The exams are the same for both sections of the class. (You should plan at least 1-2 hours for each exam.) Electronic Submission All lab source material is to be submitted electronically. Only text files (.txt) will be accepted for grading. Text editors such as EMACS or VIM automatically generates file the meet the text file format requirement. Notepad and WordPad also work equally as well although WordPad defaults to .rtf (use the Save As option). Microsoft users are also welcome to use Word or other Microsoft products for homework and labs as long as the files are submitted in text format (again, use the Save As option). IT IS YOUR RESPONSIBILITY TO VERIFY THAT YOU ARE SUBMITTING THE RIGHT TYPE OF FILE! Grades Grades will be based on lab assignments (40%), homework (20%), and four exams (40%) as follows: Lab assignments (40%) o Lab 1: Micro-architecture Simulator (Feb 10) (4%) o Lab 2: Machine Code (Feb 17) (2%) o Lab 3: Secret Decoder (Feb 24) (4%) o Lab 4: Conversions and Logic Operations (Mar 3) (4%) o Lab 5: Taxes (Mar 10) (4%) o Lab 6: Nim (Mar 17) (4%) o Lab 7: C Calculator (Mar 24) (4%) o Lab 8: Mancala (Mar 31) (5%) o Lab 9: LC-3 Simulator, Part I (Apr 7) (4%) o Lab 10: LC-3 Simulator, Part II (Apr 14) (5%) Homework (20%) Midterm 1 (Feb 9-11) (8%) Midterm 2 (Mar 9-11) (8%) Midterm 3 (Apr 6-Apr 8) (8%) Final Exam (Apr 21-26) (16%) Grades are assigned on the following scale from the composite total of above areas: 100-93 A 82-80 B- 69-67 D+ 92-90 A- 79-77 C+ 66-63 D 89-87 B+ 76-73 C 62-60 D86-83 B 72-70 C- 59-0 E Please note that since extra credit is available for each lab, there will be no rounding of final points. However, we reserve the right to modify the grading percentages in favor of the student as deemed advisable at the end of the semester. The university policies on UW and I grades are strictly followed. Grading Verification and Appeal Policy It is the student's responsibility to verify that we have correctly recorded scores. If a score is incorrect on Blackboard, then the student must follow the appeal process to correct the score. Incorrectly recorded grades become final after the appeal time frame expires. The student can appeal a grade on a homework or lab through email to their grading TA. The appeal must be submitted within 1 week of the score being posted on Blackboard. Scores are posted on blackboard 1 week after the homework or lab is due. The student can appeal a grade on an exam directly to the instructor through email. Midterm appeals must be submitted within 1 week of when the midterm closes at the testing center. The final exam may be appealed within 1 week of when the grade is posted on Blackboard. Verbal appeals are not considered. Academic Honesty The BYU Honor Code includes a statement of standards regarding academic honesty. Academic honesty includes completing your own homework, programming assignments, midterms, and final. Students should work together to help each other understand material, but should always turn in their own work. Examples of academic dishonesty include sharing code for assignments with other students, turning in someone else's code as your own, sharing exam material with other students, and cheating on an exam. Any violation of academic honesty standards will result in failing the class. All violations of academic honesty are documented and reported to the Honor Code office. Preventing Sexual Harassment and Discrimination Title IX of the Education Amendments of 1972 prohibits sex discrimination against any participant in an educational program or activity that receives federal funds. The act is intended to eliminate sex discrimination in education. Title IX covers discrimination in programs, admissions, activities, and student-to-student sexual harassment. The BYU policy against sexual harassment extends not only to employees of the university but to students as well. If you encounter unlawful sexual harassment or gender based discrimination, please talk to your professor; contact the Equal Employment Office at 378-5895 or 367-5689 (24-hours); or contact the Honor Code Office at 378-2847. Students with Disabilities Brigham Young University is committed to providing a working and learning atmosphere which reasonably accommodates qualified persons with disabilities. If you have any disability which may impair your ability to complete this course successfully, please contact the Services for Students with Disabilities Office (378-2767). Reasonable academic accommodations are reviewed for all students who have qualified documented disabilities. Services are coordinated with the student and instructor by the SSD Office. If you need assistance or if you feel you have been unlawfully discriminated against on the basis of disability, you may seek resolution through established grievance policy and procedures. You should contact the Equal Employment Office at 378-5895, D-282 ASB. Disclaimer This syllabus is subject to change during the semester in favor of the student as deemed necessary by the instructor. All changes will be reported in class as well as clearly posted on Blackboard. It is the student's responsibility to stay current with class policies and check Blackboard and email often during the week.