CSCI 330: Introduction to Computer Systems

Similar documents
CS Course Missive

Penn State University - University Park MATH 140 Instructor Syllabus, Calculus with Analytic Geometry I Fall 2010

EDIT 576 (2 credits) Mobile Learning and Applications Fall Semester 2015 August 31 October 18, 2015 Fully Online Course

Data Structures and Algorithms

University of Waterloo School of Accountancy. AFM 102: Introductory Management Accounting. Fall Term 2004: Section 4

EDIT 576 DL1 (2 credits) Mobile Learning and Applications Fall Semester 2014 August 25 October 12, 2014 Fully Online Course

INTERMEDIATE ALGEBRA Course Syllabus

ASTRONOMY 2801A: Stars, Galaxies & Cosmology : Fall term

BUS Computer Concepts and Applications for Business Fall 2012

Social Media Journalism J336F Unique ID CMA Fall 2012

Instructor Dr. Kimberly D. Schurmeier

Coding II: Server side web development, databases and analytics ACAD 276 (4 Units)

Math 181, Calculus I

ECON492 Senior Capstone Seminar: Cost-Benefit and Local Economic Policy Analysis Fall 2017 Instructor: Dr. Anita Alves Pena

Visual Journalism J3220 Syllabus

Design and Creation of Games GAME

Neuroscience I. BIOS/PHIL/PSCH 484 MWF 1:00-1:50 Lecture Center F6. Fall credit hours

CIS Introduction to Digital Forensics 12:30pm--1:50pm, Tuesday/Thursday, SERC 206, Fall 2015

ENEE 302h: Digital Electronics, Fall 2005 Prof. Bruce Jacob

EECS 571 PRINCIPLES OF REAL-TIME COMPUTING Fall 10. Instructor: Kang G. Shin, 4605 CSE, ;

Department of Anthropology ANTH 1027A/001: Introduction to Linguistics Dr. Olga Kharytonava Course Outline Fall 2017

CS 1103 Computer Science I Honors. Fall Instructor Muller. Syllabus

COURSE INFORMATION. Course Number SER 216. Course Title Software Enterprise II: Testing and Quality. Credits 3. Prerequisites SER 215

PSCH 312: Social Psychology

JN2000: Introduction to Journalism Syllabus Fall 2016 Tuesdays and Thursdays 12:30 1:45 p.m., Arrupe Hall 222

MTH 215: Introduction to Linear Algebra

Financial Accounting Concepts and Research

CS 101 Computer Science I Fall Instructor Muller. Syllabus

Course Content Concepts

Accounting 312: Fundamentals of Managerial Accounting Syllabus Spring Brown

CHEM:1070 Sections A, B, and C General Chemistry I (Fall 2017)

IPHY 3410 Section 1 - Introduction to Human Anatomy Lecture Syllabus (Spring, 2017)

Prerequisite: General Biology 107 (UE) and 107L (UE) with a grade of C- or better. Chemistry 118 (UE) and 118L (UE) or permission of instructor.

TUESDAYS/THURSDAYS, NOV. 11, 2014-FEB. 12, 2015 x COURSE NUMBER 6520 (1)

CEE 2050: Introduction to Green Engineering

State University of New York at Buffalo INTRODUCTION TO STATISTICS PSC 408 Fall 2015 M,W,F 1-1:50 NSC 210

MKT ADVERTISING. Fall 2016

Fashion Design & Merchandising Programs STUDENT INFORMATION & COURSE PARTICIPATION FORM

Class Schedule

MGMT 479 (Hybrid) Strategic Management

CHEMISTRY 104 FALL Lecture 1: TR 9:30-10:45 a.m. in Chem 1351 Lecture 2: TR 1:00-2:15 p.m. in Chem 1361

Office Hours: Mon & Fri 10:00-12:00. Course Description

Strategic Management (MBA 800-AE) Fall 2010

COMMUNICATIONS FOR THIS ONLINE COURSE:

WEEKLY CHARGER. Principal s Schedule. Powerschool is an OHS teacher s main source of communication

Syllabus: CS 377 Communication and Ethical Issues in Computing 3 Credit Hours Prerequisite: CS 251, Data Structures Fall 2015

English Policy Statement and Syllabus Fall 2017 MW 10:00 12:00 TT 12:15 1:00 F 9:00 11:00

SYLLABUS. or by appointment MGM Theatre Room 216, Rich Bldg.

ENG 111 Achievement Requirements Fall Semester 2007 MWF 10:30-11: OLSC

Required Materials: The Elements of Design, Third Edition; Poppy Evans & Mark A. Thomas; ISBN GB+ flash/jump drive

Computer Science 141: Computing Hardware Course Information Fall 2012

Dr. Zhang Fall 12 Public Speaking 1. Required Text: Hamilton, G. (2010). Public speaking for college and careers (9th Ed.). New York: McGraw- Hill.

CS 100: Principles of Computing

PHY2048 Syllabus - Physics with Calculus 1 Fall 2014

VSAC Financial Aid Night is scheduled for Thursday, October 6 from 6:30 PM 7:30 PM here at CVU. Senior and junior families are encouraged to attend.

Lesson Plan. Preparation

POFI 1301 IN, Computer Applications I (Introductory Office 2010) STUDENT INFORMANTION PLAN Spring 2013

Jeff Walker Office location: Science 476C (I have a phone but is preferred) 1 Course Information. 2 Course Description

THE GEORGE WASHINGTON UNIVERSITY Department of Economics. ECON 1012: PRINCIPLES OF MACROECONOMICS Prof. Irene R. Foster

General Chemistry II, CHEM Blinn College Bryan Campus Course Syllabus Fall 2011

WE ARE EXCITED TO HAVE ALL OF OUR FFG KIDS BACK FOR OUR SCHOOL YEAR PROGRAM! WE APPRECIATE YOUR CONTINUED SUPPORT AS WE HEAD INTO OUR 8 TH SEASON!

General Physics I Class Syllabus

GIS 5049: GIS for Non Majors Department of Environmental Science, Policy and Geography University of South Florida St. Petersburg Spring 2011

GEORGE MASON UNIVERSITY COLLEGE OF EDUCATION AND HUMAN DEVELOPMENT. Education Leadership Program Course Syllabus

SPM 5309: SPORT MARKETING Fall 2017 (SEC. 8695; 3 credits)

Visualizing Architecture

Foothill College Summer 2016

Master of Social Work Field Education University of New Hampshire. Policy and Procedure Manual

Introduction to Personality Daily 11:00 11:50am

AS SYLLABUS. 2 nd Year Arabic COURSE DESCRIPTION

COMM370, Social Media Advertising Fall 2017

MAR Environmental Problems & Solutions. Stony Brook University School of Marine & Atmospheric Sciences (SoMAS)

COMP 3601 Social Networking Fall 2016

Claude M. Steele, Executive Vice Chancellor & Provost (campuswide) Academic Calendar and Student Accommodations - Campus Policies and Guidelines

ENGLISH 298: Intensive Writing

University of Texas at Arlington Department of Accounting Fall 2011

ECO 2013-Principles of Macroeconomics

Records and Information Management Spring Semester 2016

UNDERGRADUATE SEMINAR

COURSE DESCRIPTION PREREQUISITE COURSE PURPOSE

This course has been proposed to fulfill the Individuals, Institutions, and Cultures Level 1 pillar.

Biology 10 - Introduction to the Principles of Biology Spring 2017

Preferred method of written communication: elearning Message

Office Hours: Day Time Location TR 12:00pm - 2:00pm Main Campus Carl DeSantis Building 5136

THE UNIVERSITY OF WESTERN ONTARIO. Department of Psychology

Office: Colson 228 Office Hours: By appointment

Spring 2015 Natural Science I: Quarks to Cosmos CORE-UA 209. SYLLABUS and COURSE INFORMATION.

Chemistry Senior Seminar - Spring 2016

RM 2234 Retailing in a Digital Age SPRING 2016, 3 credits, 50% face-to-face (Wed 3pm-4:15pm)

WRITING FOR INTERACTIVE MEDIA

Student Handbook Information, Policies, and Resources Version 1.0, effective 06/01/2016

Phys4051: Methods of Experimental Physics I

FINANCE 3320 Financial Management Syllabus May-Term 2016 *

University of Texas Libraries. Welcome!

MANA 7A97 - STRESS AND WORK. Fall 2016: 6:00-9:00pm Th. 113 Melcher Hall

Graduate Calendar. Graduate Calendar. Fall Semester 2015

CHMB16H3 TECHNIQUES IN ANALYTICAL CHEMISTRY

GEOG 473/573: Intermediate Geographic Information Systems Department of Geography Minnesota State University, Mankato

Computer Architecture CSC

Introduction to Information System

Transcription:

CSCI 330: Introduction to Computer Systems Course Information and Syllabus Semester I, 2017 2018 Lectures G hour: 2:00 2:50 on Mondays, Wednesdays, and Fridays Room Salomon 101 Lecture Notes Text Prerequisite Instructor http://www.cs.brown.edu/courses/cs033/lectures.html A recording of each lecture will be available soon after it is given. Computer Systems: A Programmer s Perspective, 3rd Edition, Bryant and O Hallaron, Prentice Hall 2015 (prices range from $82.00 to $144.38) CSCI 150, 180, or 190. In particular, you should be a competent Java programmer (though we won t be using Java) Tom Doeppner (twd@cs.brown.edu) Office CIT 405, x3-7633 Professor s Office Hours Head TAs UTAs TA Office Hours Time Requirements Goals Mondays and Wednesdays 3-4, Fridays 4-5, by appointment, or just stop by. William Flotte, Alexandra Fratila, Jonathan Lister, Emily Magavern Nicholas Anthony, Andrea Bennett, Jackson Chaiken, Tim Chang, Jared Cohen, Russell Dodd, Michael Gillett, Christopher Harvie, Arohi Kapoor, Caleb Kim, Stephen Leung, Natalie Lindsay, Yuyang Lu, Manav Kohli, Jacob Meltzer, Beatriz Mora, Benjamin Navetta, Lan Nguyen, Silei Ren, Sophie Saskin, Ankita Sharma, Emma Sloan, Misha Sohan, Katie Ta, Charles Tan, Brendan Walsh, Anna White, Amy Winkler, Michael Xu See http://cs.brown.edu/courses/csci0330/hours.html In addition to three hours per week in class, you will spend two hours per week in labs and 10-18 hours per week on projects. The project times will vary less time will be required for earlier assignments than for later ones. The primary goal is for you to understand how a modern computer system works, to the extent that you can utilize this knowledge to construct better programs. We teach you the C language and use it in most assignments because it exposes many aspects of a computer system, such as storage allocation, that are hidden when you use higher-level languages. This helps you understand what these other languages are doing for you. We teach you assembler language and high-level computer architecture so that you can appreciate what the computer is actually doing when it runs your program, and what you might do to write more efficient programs. We teach you the use of debugging tools, in particular gdb,

not only to help you debug your code, but also to help you understand what your programs are doing. The course projects are designed to help you understand concepts such as memory allocation and concurrency in sufficient detail that you can make intelligent decisions involving these concepts in projects you pursue after the course. The lab sessions (2 hours per week) are designed to give you hands-on practice with concepts covered in class, so that you re ready to use them in the projects. The projects are time-consuming. They re intended to pull together the many concepts covered in the class and force you to think through them. Your programs will have rather subtle bugs for which you ll have to use gdb to see what they re doing. You won t simply be applying what you learned in class; you will understand the intricacies of how everything works. Diversity: All are Welcome Clickers Homeworks and Grad Students Grading Our intent is that this course provide a welcoming environment for all students who satisfy the prerequisites. Our TAs have undergone training in diversity and inclusion; all members of the CS community, including faculty and staff, are expected to treat one another in a professional manner. If you feel you have not been treated in a professional manner by any of the course staff, please contact either Prof. Doeppner (the instructor), Prof. Cetintemel (the department chair), or Laura Dobler (the department s coordinator for diversity and inclusion initiatives). We take all complaints about unprofessional behavior seriously. The course will make use of clickers : at each class meeting there will be one or more questions to which you must respond using your clicker. The graduate school requires graduate students taking an undergraduate course to do extra work to get credit for the course. Thus we have weekly homework assignments that are optional for undergraduates but required for graduate students. They go out Friday of each week (other than Thanksgiving week) and are due the following Friday. Each should take about an hour to complete. Collectively they account for 10% of grad student grades. What s described below under Grading will be scaled to account for 90% of grad student grades. While undergraduates are encouraged to do the homeworks, they will not be graded and thus won t count towards your grades. Class participation via clickers is worth 9% of the course grade. You will get an A for answering a question correctly, a B for answering incorrectly, and no credit for not answering. Projects are given letter grades, and thus any curving is done on a per-project basis. The curves will be released when the projects are given back. Labs are given A s if done on time, C s if no more than a week late, and NC s if beyond a week late. The final course grade is the weighted average of the clicker, lab, and project grades. Each of the projects except for the last two (malloc and database) is worth 7.27% of your final grade; malloc and database are each 14.55% of your grade. Each lab is 1% of your final grade. Grade averages are computed using a 4-point 2

scale: an A+ is worth 4.3 points, an A 4 points, an A- 3.7 points, a B+ 3.3 points, etc. For determining your final grade, a weighted course average of 3.5 and higher is an A, 2.5 and higher is a B, and 1.5 and higher is a C. In addition, you must pass all projects to get an A for the course; you must pass all but one 7.27% project to get a B for the course; you must pass all but two 7.27% projects or one 14.55% project to get a C (or S) for the course. While your course grade will adhere to Brown s standard grading system (A, B, C, NC, or S/NC), projects are assigned grades ranging from A+ down to a D-. The latter is worth 0.7 points point on the 4-point scale. Please note that your assignments will be graded by the TAs, most of whom are undergraduates. If you have a question about the grading of an assignment, please bring it up first with the TA who graded it. If your question is not resolved to your satisfaction, then bring it up with Prof. Doeppner. Incomplete Policy Due Dates Late Policy We expect everyone to complete the course on time. However, we certainly understand that there may be factors beyond your control, such as health problems and family crises, that prevent you from finishing the course on time. If you feel you cannot complete the course on time, please discuss with Prof. Doeppner the possibility of being given a grade of Incomplete for the course and setting a schedule for completing the course in the upcoming year. Projects and homeworks must be handed in by 11:59 pm on their due dates. Labs are due during the last lab hours before the next lab is released (NOT at 11:59pm!). The late-day policy described here applies to all late days other than those due to illness and religious holidays. Thus days missed because of job interviews are included in the late-day policy. Everyone is allowed a total of five late days on projects free of charge, but no more than three late days may be applied to any one assignment. Beyond that, you are penalized one grade level (A work goes down to a B, B work goes down to a C, C work goes down to a D, and D work goes down to an NC) for each day it is late. Note that if an assignment is handed in more than six days late (accounting for three free late days and being marked down for further late days), it will be assigned an NC and not given any feedback by TAs. The last project (database) must be turned in by 11:59pm, Dec. 15, regardless of how many late days you have. Your clicker scores will be based on 31 out of the 36 lectures in which clickers are used (clickers are not employed in the first lecture). Thus we will drop the five lectures on which you did most poorly in terms of your clicker responses (for example, because you were not present). No late days are allowed for labs, other than what is mentioned in the grading policy. We will apply late days to assignments in an optimal fashion (with respect to your grade). Note that late penalties are applied after grades have been curved. 3

If you are ill, you may get an extension without using late days. Please get a note from either health services or the office of student life and contact Prof. Doeppner. If you must miss class or a project deadline because of a religious holiday, you may also get an extension without using late days, please contact Prof. Doeppner. Re-Handing in Projects More Information Accommodations Mental Health Coping with Unforeseen Events It might well happen that you ve handed in a project, then it occurs to you that you did a portion of it wrong and you want to hand it in again, perhaps taking advantage of a late day. This is fine for all except for the TA who s already graded your first hand-in and now has to grade your second. If you are going to re-hand in a project, we ask that you either do so before the TAs begin grading (noon on the Saturday after it is due) or that you notify us before then that you intend to hand it in again. We will provide information in the assignment handouts on how you do this. Note that while we will grade such re-handins, they won t necessarily be graded right away. For more in-depth information about the course, refer to the Course Missive and Collaboration Policy linked from the course website. If you feel you have physical, psychological, or learning disabilities that could affect your performance in the course, we urge you to contact SEAS (https://www.brown.edu/campus-life/support/accessibility-services/). We will do whatever we can to support accommodations recommended by SEAS. Being a student can be very stressful. If you feel you are under too much pressure or there are psychological issues that are keeping you from performing well at Brown, we encourage you to contact Brown s Counseling and Psychological Services (CAPS: https://www.brown.edu/campus-life/support/counseling-andpsychological-services/). They provide confidential counseling. If there are events that are upsetting to you, whether political, family-related, weather-related, etc., that affect your ability to do well in class, we are happy to take them into account with respect to our late and incomplete policies. Please feel free to talk to Prof. Doeppner about this. Lectures and Due Dates Date Topic Readings Out Due Sept 6 Sept 8 1. Intro to CSCI 330; Intro to C 2. Intro to C Lab01 Life; Maze; HW 1 4

(grad students only) Sept 11 Sept 13 3. Intro to C 4. Intro to C Sept 15 5. Intro to C HW2 HW1 Sept 18 6. Intro to C Lab02 Tools Sept 19 Data Sept 20 7. Data Representation Chapter 2 Maze Sept 22 8. Data Representation Chapter 2 HW3 HW2 Sept 25 9. Data Representation Chapter 2 Lab03 x86 Part 1 Sept 27 10. x86 Assembler Language Sections 3.1, 3.2 Traps Data Sept 29 11. x86 Assembler Language Sections 3.4, 3.5 HW4 HW3 Oct 2 12. x86 Assembler Language Section 3.6 Lab04 x86 Part 2 Oct 4 13. x86 Assembler Language Section 3.7 Buffer Traps Oct 6 14. x86 Assembler Language Section 3.10 HW5 HW4 Oct 9 Holiday! Oct 11 15. Processor Arch. and Performance Sections 5.1-5.6 Oct 13 16. Processor Arch. and Performance Sections 5.7-5.12 HW6 HW5 Oct 16 17. Memory Hierarchy I Section 6.1-6.2 Lab05 Profiling Oct 17 Performance + Strings Buffer Oct 18 18. Caching Sections 6.4, 6.5 Oct 20 19. Architecture and OS Sections 8.1-8.4 HW7 HW6 5

Oct 23 20. Shells and Files Section 10.1 Lab06 Makefiles Oct 24 Shell Part 1 Performance + Strings Oct 25 21. Files Sections 10.2-10.11 Oct 27 22. Signals Sections 8.5 8.6 HW8 HW7 Oct 30 23. Signals Lab07 Signals Nov 1 24. Memory Hierarchy II Sections 6.3 Shell Part 2 Shell Part 1 Nov 3 25. Linking and Loading Sections 7.1-7.9 HW9 HW8 Nov 6 26. Memory Management Section 9.9 Lab08 Alloc Nov 8 27. Memory Management Section 9.9 Malloc Shell Part 2 Nov 10 28. Virtual Memory Sections 9.1, 9.2, 9.6, 9.8 HW10 HW9 Nov 13 29. Libraries Sections 7.10-7.13 Lab09 VM Nov 15 30. Network Programming Sections 11.1-11.4 Nov 17 31. Network Programming HW11 HW10 Nov 20 Nov 22 Nov 24 Nov 27 32. Concurrent Programming Holiday! Holiday! 33. Concurrent Programming Chapter 12 Lab10 Network Lab 11 Concurrency I Nov 29 34. Concurrent Programming Database Malloc Dec 1 35. Concurrent Programming HW12 HW11 Dec 4 Dec 6 36. Concurrent Programming 37. Concurrent Programming Lab 12 Concurrency II 6

Dec 8 Dec 15 HW12 Database 7