Syllabus for CPSC 213 101 102 2020W Introduction to Computer Systems PDF

Title Syllabus for CPSC 213 101 102 2020W Introduction to Computer Systems
Course Introduction To Computer Systems
Institution The University of British Columbia
Pages 6
File Size 161 KB
File Type PDF
Total Downloads 349
Total Views 479

Summary

Course SyllabusDescriptionThe primary goal of 213 is to help you develop a model of computation that is rooted in what really happens when a program executes.In the first half of the course you will implement a simple instruction set in a hardware simulator and then examine how features of C are imp...


Description

Course Syllabus Description The primary goal of 213 is to help you develop a model of computation that is rooted in what really happens when a program executes. In the first half of the course you will implement a simple instruction set in a hardware simulator and then examine how features of C are implemented in this instruction set. We will refer back to Java when considering memory management and polymorphism and to Dr Racket when considering functions as parameters. You will also develop an ability to read and understand small assembly-language programs. In the second half of the course, devices, asynchrony and thus asynchronous programming are introduced. Asynchrony is used to motivate threads and threads to motivate synchronization. You will see both how these abstractions are implemented and how they are used. You will see the connection between thread switch and procedure call. You will be introduced to the notion of atomicity and see why atomic memory-exchange operations are needed to implement synchronization. You will also examine the difference between busy and blocking waiting and solve a set of problems using monitors and condition variables and semaphores in C.

Topics Numbers and Memory Static Scalars and Arrays Instance Variables and Dynamic Allocation Static Control Flow Procedures and Stack Dynamic Control Flow I/O Devices and Asynchronous Programming Virtual Processors (Threads) Synchronization

Contacts Use Piazza to contact the course staff when your issue is related to course content, including questions about material presented in class, questions about assignments, or logistical questions. Given that your question may be answered by any of the course staff, as well as other students if your question is public, you should expect faster turnout there as compared to email.

All administrative questions should be directed to our course coordinator at [email protected] (mailto:[email protected],) . You can contact Mike at [email protected] (mailto:[email protected]) or Kemi at [email protected]. (mailto:[email protected])

See the Contacts page.

Textbook The primary textbook for the course is the 213 Companion. Additional material is found in the book: Computer Systems: A programmer's Perspective (3rd edition), by Randal Bryant and David O'Hallaron. See the Textbook and References page.

Weekly Schedule The complete schedule is shown in your Canvas Calendar and on the Schedule page. Every week except for the first, last, and midterm week (i.e., Oct 19-23) your schedule will be like this. LECTURE for the week covers material that you work on in the following week in assignments, labs, and quizzes. Most of the material for the following will be covered by Thursday and will be completed by Tuesday of the following week. Attend lecture and participate in iClicker questions for 5% participation marks. LAB QUESTION in your 1-hour lab section each week are problems that you work on with your lab group of 6-10 students and your designated TA. Participate in the lab for 5% participation marks. ASSIGNMENTS are released every Saturday at midnight and due the following Monday at 11:59 pm. An automatic no-penalty, 8-hour grace period is applied so you get full credit if you submit your solution by 7:59 am on Sunday. QUIZZES are released every Friday at midnight and due the following Wednesday at 11:59 pm. You have 6 days to take the 30-minute, PrarieLearn quiz (once). RETAKE QUIZZES are released on Thursday when the corresponding quiz closes and are due the following Tuesday at 11:59 pm. You have 6 more days for the retake. So for example, for our second full week of the term (Sep 21 - 25), it will look like this. Sat, Sep 19, midnight: Assignment 2 released Group lab question in your schedule 1-hour lab this week

Fri, Sep 25, midnight: Quiz 1 released Mon, Sep 28, 11:59 pm: Assignment 1 due Wed, Sep 30, 11:59 pm, Quiz 1 due Thu, Oct 1, midnight, Retake Quiz 1 released Tue, Oct 6, 11:59 pm, Retake Quiz 1 due

Assessment Your grade in the course will be based on the following components: 5% 5% 12%

Class Participation — full marks for 80% participation on in-class iClicker questions Lab Participation — full marks for 80% participation in 1-hour group labs Assignments (11) — best 8 of first 9 plus assignments 10 and 11

30% 19%

Quizzes (10) — first attempt can be improved by up to 70% by second attempt (details below) Midterm — improved by your Final Exam (details below)

29%

Final Exam

To pass the course you must achieve a mark of at least 50% on the unweighted average of the midterm and final exams (note that it is not required to achieve a 50% on either of them individually). Lecture Participation Approximately half of these marks will be for answering iClicker questions in 80% of lectures, regardless of your answer. The other half will be based on getting the correct answer in 80% of the breakout iClicker questions that you work on with your breakout group. Lab Participation Be sure that you attend the lab and work with your group and the TA on the solution. Full marks for active participation, regardless of whether you figure out any part of the answer yourself. Quizzes There is a 30-minute quiz every week that assesses the same learning goals as the assignment you complete that week. There are multiple versions of each quiz question and you get two chances at each quiz. The second attempt is due six days after the first. Your mark on each quiz is the maximum of your first attempt and 70% of your second attempt plus 30% of your first. So, for example, if you get 70% on your first attempt and 100% on your second attempt, your mark would be 91%. Midterm You can improve your midterm grade with your final. The way this works is that every learning goal assessed on the midterm is assessed again on the final. If you do better on the final-exam question for a learning goal, then your midterm mark for the same goal will be improved to 80% of your final mark.

So, for example, if Midterm Question 3 and Final Question 2 both assess the same learning goal(s), and you get 70% on Midterm Question 3 and 95% on Final Question 2, your midterm mark for Question 3 will be improved to 76% (i.e., 95% x 80%).

After this Course You Will ... Be a better and full-stack programmer. have a deeper understanding of the features of a programming language; understand the execution of your program at various levels of abstraction; be able to more easily learn new programming languages; be able to evaluate design tradeoffs in considering languages most appropriate for solving a given problem. Appreciate that system design is a complex set of tradeoffs: a system will not have exactly one optimal answer, there are often many sub-optional answers. Experience with tradeoffs prepares you to deal with tradeoffs in design in real world programming scenarios. Develop distinctions between static and dynamic components of programs and systems and be able to describe their implications. Utilize synchronization primitives to control interaction in various situations including among processes, threads, and networked communication. Understand how computer systems work.

Course Learning Outcomes 1. Using a hardware based model of execution, reason about the limitations, vulnerabilities and idiosyncrasies of the behaviour of a particular program, specifically concerning performance, bugs and security vulnerabilities. 2. Using a hardware based model of data, reason about how programs access data using different types of variables, including the implicit and explicit use of memory references. 3. Translate a statement from a high-level programming language into assembly language; from a large block of assembly language, identify groups of instructions that correspond to high level language features and then write an equivalent high level programming language expression. 4. Identify and correct memory management bugs, particularly in languages with explicit deallocation, and use best practices to write code that is less likely to incur such issues. 5. Compare and contrast how Java and C are translated into a language the CPU understands; identify common features that are implemented in significantly different ways in either language (for instance, memory management, and the duality of subtype polymorphism in Java and function pointers in C). In doing so, explain the tradeoffs associated with each. 6. Reason about the execution of concurrent programs, incl. real time interrupts, and use both asynchronous programming and threads to write concurrent and/or parallel programs. Explain the

tradeoffs associated with each. 7. Solve problems using monitors, condition variables and semaphores.

Course Rules and Academic Integrity — READ THIS CAREFULLY Assignments are individual work. You must not share any portion of your assignment with anyone. You must not consult online or other resources that include any portion of a solution to an assignment. You must not use a tutor to help you with the assignment. All work that you submit via handin (or by any other means) is assumed to be your own work unless you explicitly indicate otherwise. Quizzes are individual work. You must not consult any resource other than the permitted resource listed here (e.g., online or another person) while taking a quiz. Permitted resource: a page (slides, companion, or your notes) describing the instructions in the ISA. Lecture iClicker answers attributed to you must have have been entered by you while you were "attending" the lecture. You must not ask anther student to answer for you. Video recordings are provided for registered students only. You must not re-distribute recordings to anyone in any form. Violation of these course rules constitutes academic misconduct. Other examples of misconduct and a more detailed description can be found on the Academic Conduct page.

Statement of Values and Policies UBC provides resources to support student learning and to maintain healthy lifestyles but recognizes that sometimes crises arise and so there are additional resources to access including those for survivors of sexual violence. UBC values respect for the person and ideas of all members of the academic community. Harassment and discrimination are not tolerated nor is suppression of academic freedom. UBC provides appropriate accommodation for students with disabilities and for religious, spiritual and cultural observances. UBC values academic honesty and students are expected to acknowledge the ideas generated by others and to uphold the highest academic standards in all of their actions. Details of the policies and how to access support are available here (http://senate.ubc.ca/policies-resourcessupport-student-success) .

During this pandemic, the shift to online learning has greatly altered teaching and studying at UBC, including changes to health and safety considerations. Keep in mind that some UBC courses might cover topics that are censored or considered illegal by non-Canadian governments. This may include, but is not limited to, human rights, representative government, defamation, obscenity, gender or sexuality, and historical or current geopolitical controversies. If you are a student living abroad, you will

be subject to the laws of your local jurisdiction, and your local authorities might limit your access to course material or take punitive action against you. UBC is strongly committed to academic freedom, but has no control over foreign authorities (please visit http://www.calendar.ubc.ca/vancouver/index.cfm?tree=3,33,86,0 (http://www.calendar.ubc.ca/vancouver/index.cfm?tree=3,33,86,0) for an articulation of the values of the University conveyed in the Senate Statement on Academic Freedom). Thus, we recognize that students will have legitimate reason to exercise caution in studying certain subjects. If you have concerns regarding your personal situation, consider postponing taking a course with manifest risks, until you are back on campus or reach out to your academic advisor to find substitute courses. For further information and support, please visit: http://academic.ubc.ca/support-resources/freedom-expression. (http://academic.ubc.ca/support-resources/freedom-expression)...


Similar Free PDFs