WARNING! This wiki is for Fall 2017. See Winter 2018 for more recent course information.

Description

How a computer works to execute sequential code: low level data representation and abstraction, the relationship between C and assembly, computer architecture and pipelining, the memory hierarchy, dynamic memory allocation, and processes.

This class examines the concepts underlying hardware and software components that are common to most computer systems. The main premise of the course is that “what's under the hood” matters since it affects the correctness, performance, and utility of application programs. The key questions that we explore in the course are:

  1. How can a programmer use hardware abstractions to avoid defects in programs?
  2. What is the relationship between the software a programmer writes and what is executed on the underlying architecture? How does that relationship affect program performance? Security?
  3. Why is the memory mountain so critical to modern computing? How does it affect program performance? How should I use it in an application?
  4. How can I use my new understanding of computer systems to improve the performance of any code that I write?

Learning Outcomes

  1. Work fluently in a command-line environment
    • Compile and debug C programs using command line tools
    • Create, start, stop, and kill processes
  2. Represent and manipulate information at a machine-level
    • Convert base 10 numbers to unsigned, two’s-complement, and the IEEE Floating-point standard representations
    • Carry out integer and floating point arithmetic
  3. Represent programs at a machine-level
    • Read and understand machine code
    • Use a runtime stack for local storage, control transfer, and data transfer
    • Illustrate the memory layout of arrays and heterogenous data structures
  4. Explain the mechanics of processor architectures
    • Decode instructions and move them through a sequential micro-architecture
    • Show how pipelining improves performance and identify pipeline hazards
  5. Identify and eliminate performance bottlenecks in code
    • Avoid compiler optimization blockers and use techniques to improve performance
    • Exploit temporal and spatial locality to improve caching in the memory hierarchy
    • Identify common memory bugs

Reference: Computer Science learning outcomes

Prerequisites

You must complete CS 142 with a passing grade before taking CS 224. Please see the program requirements for further details.

Text Book

Grade Composition and Grading Scale

This composition is typical for most sections. See Learningsuite for section specific deviations.

  • Homework (15%)
  • Quizzes (5%)
  • Labs (30%)
  • Midterm 1 (15%)
  • Midterm 2 (15%)
  • Final (20%)

A standard grade scale is used. The instructor reserves the right to alter the grading scale in favor of the students.

Late Policy

Learning activities are Homework and Labs.

A learning activity is late on the first weekday after the posted due date (e.g., Saturday and Sunday do not count). Due dates are published on Learningsuite. There is a 10% penalty for each day late. Each student has a budget of 2 opportunities to automatically move the due date for homework by 1 day; these are called late days. Additionally each student has a budget of 72 opportunities to move the due date of a lab by 1 hour; these are called late hours. Late days and late hours are automatically applied. Late days and hours are intended to accommodate unforeseen situations such as illness, car troubles, family circumstances, unexpected bugs etc. There is no extra credit for not using late days or hours.

Learning assessments are quizzes and Exams.

A learning assessment is late if it is not completed during its scheduled time in class or the testing center. Quizzes are not accepted late. An exam can be completed late with a 25% penalty on the final score. Exceptional situations are handled on a case-by-case basis with the course instructor.

TA Policy

TAs resources are intended to assist and not tutor. The TAs are trained to help students help themselves. As such TAs clarify course concepts, clarify lab activities, direct students to resources for self-help, demonstrate new tools, provide a fresh set of eyes on pernicious bugs, etc.; they are trained to not give answers or solutions

The TAs are further trained to follow the below guidelines to better serve all students in the course.

  • Students are not allowed to work in and around the TA office including the hallway
  • TA time with a single student is dynamic depending on the load but it is no more than 20 minutes in general
  • The minimum time between visits by the same student should be at least 30 minutes to internalize concepts

A primary goal in this class is for each student to continue to learn how to learn, and that is not always as easy or quick as desired, and may feel frustrating more often than not. Trust the process and know that the TAs and instructors are committed to this goal.

Concerns with the TA support policy should be addressed directly with the course instructors.

Academic Honesty

Solutions to all homework and labs are readily found on the Internet. Using them in anyway is considered cheating. Using them also bypasses, and in some cases aborts, learning in the learning activities. The book provides sufficient examples to help learn concepts before attempting learning activities. There is tremendous value in figuring out a solution without first looking at the solution and there is equally tremendous value in convincing yourself that your solution is correct. Students are encouraged to worry less about grades and more about learning to avoid the pitfalls of cheating by using existing solutions.

Peer instruction is known to facilitate and accelerate learning, and it has been shown to foster deeper learning. Students are encouraged to find peers and work with peers to complete course learning activities. Peers generally have more time to help than TAs and are often a tremendous resource. That said, each student should do his or her own work even in a peer setting. Not doing so is considered cheating.

Students should take reasonable precautions to safeguard their individual work. It should not be left unprotected on the lab machines, sent to other students or roommates, posted online, stored in a shared location, left on a whiteboard, archived in a public repository, etc. A student actively providing solutions is complicit in cheating.

Students caught up in cheating are strongly encouraged to meet with the instructor quickly. Never let the shame of cheating keep you from making things right with the instructor with the hope of continuing on in the course. Section specific cheating policies can be found on learningsuite.

Study Habits

Read the book wisely. Make time to read regularly and be prepared for class so you benefit from that time.

Come to class and pay attention. Turn off the phone. Close the laptop. Don't do homework or labs. Come to class to be in class.

Find a group of peers and schedule regular times to do the learning activities together. Working alone is foolish and ineffective. Find a group.

Talk with other students before and after class. Everyone in the room is most likely in the class and facing the same challenges presented by the course. Don't be shy and miss that opportunity to find peers and get help.

Attempt learning activities before the due date and ask questions on those activities in class. The goal of class is to help students learn, and learning is most effective when the mind of all the students are simultaneously focused on the relevant learning activity. It is the perfect time for questions, and those who have prepared by attempting the learning activity are more likely to benefit from questions and provide answers.

Teaching Philosophy

Education is the great conversion process under which abstract knowledge becomes useful and a productive activity.— Gordon B. Hinckley in Standing For Something.

A student's intellect is not fixed at birth; it grows with experience through honest effort. Be patient yet persistent. Expect to spend an extraordinary amount of time on some topics before gaining understanding. Although the process can be frustrating, intellect does grow with effort and experience, and a determined focus to learn is what is needed to be successful. This course is intended to be rewarding; it may or may not be fun along the way.

Trust the course, the instructor, and the CS program. Although some things may not seem important now, they are in place for a reason. Realize that you may not yet be to a point to understand why and what for; that will come with knowledge and experience as you grow. In the meantime, trust the program.

Preventing & Responding to Sexual Misconduct

In accordance with Title IX of the Education Amendments of 1972, Brigham Young University prohibits unlawful sex discrimination against any participant in its education programs or activities. The university also prohibits sexual harassment—including sexual violence—committed by or against students, university employees, and visitors to campus. As outlined in university policy, sexual harassment, dating violence, domestic violence, sexual assault, and stalking are considered forms of “Sexual Misconduct” prohibited by the university.

University policy requires all university employees in a teaching, managerial, or supervisory role to report all incidents of Sexual Misconduct that come to their attention in any way, including but not limited to face-to-face conversations, a written class assignment or paper, class discussion, email, text, or social media post. Incidents of Sexual Misconduct should be reported to the Title IX Coordinator at t9coordinator@byu.edu or (801) 422-8692. Reports may also be submitted through EthicsPoint at https://titleix.byu.edu/report or 1-888-238-1062 (24-hours a day).

BYU offers confidential resources for those affected by Sexual Misconduct, including the university’s Victim Advocate, as well as a number of non-confidential resources and services that may be helpful. Additional information about Title IX, the university’s Sexual Misconduct Policy, reporting requirements, and resources can be found at http://titleix.byu.edu or by contacting the university’s Title IX Coordinator.

University Policies

This course adheres strictly to all university policies. You are advised to review and be familiar with these policies as part of the course.

cs-224/syllabus.txt · Last modified: 2018/01/10 14:06 by egm
Back to top
CC Attribution-Share Alike 4.0 International
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0