Sie sind auf Seite 1von 9

CSCI 2021: Machine Architecture and Organization https://www-users.cs.umn.edu/~kauffman/2021/syllabus.

html

Last Updated: 2019-01-20 Sun 21:58

CSCI 2021: Machine Architecture and Organization

University of Minnesota

4 credits, Spring 2019


Table of Contents
1. Basic Information
1.1. Catalog Description
1.2. Prerequisites
1.3. Course Goals
1.4. Instructor
1.5. Teaching Assistants
1.6. Lectures and Discussion/Lab
1.7. Course Materials
1.8. Communication
2. Coursework
2.1. Lectures
2.2. Textbook Readings
2.3. Discussion/Lab Sections
2.4. Assignments
2.5. Exams
3. Grading Policies
3.1. Graded Components
3.2. Final Grade Determination
3.3. Lab Exercises Grading
3.4. Assignment Grading
3.5. Late Assignment Submission
3.6. Exam Policies and Grading
3.7. Grading Disputes
3.8. Bonus Credit
4. Academic Integrity
4.1. Thou Shalt Not
4.2. Penalties
4.3. Fair Collaboration
5. General Policies

1 Basic Information
1.1 Catalog Description

Introduction to hardware/software components of computer system. Data representation, boolean algebra, machine-
level programs, instruction set architecture, processor organization, memory hierarchy, virtual memory, compiling,
linking. Programming in C.

1.2 Prerequisites

Grade of C or better in CSCI 1913 or 1933 or instructor consent.

It is presumed that students will have the equivalent of 1 year of college-level programming in some high-level language

1 of 9 1/22/2019, 8:38 PM
CSCI 2021: Machine Architecture and Organization https://www-users.cs.umn.edu/~kauffman/2021/syllabus.html

such as Python or Java prior to taking this course. The C programming language will be introduced but not at an
introductory level so prior programming experience is a must.

1.3 Course Goals

Students that complete CSCI 2021 will posses the following characteristics.

Basic proficiency at C programming including pointers and addressing, dynamic memory allocation and
management, basic file I/O operations. Ability to edit, compile, run, and debug C programs.
Knowledge of running programs in physical memory including the stack, heap, global, and text areas of memory
and how each area behaves. Basic understanding of security risks associated with programming errors related
to memory such as buffer overflows.
Understanding of the essential elements of assembly languages executed by CPUs, specifically familiarity with
the x86 / x86-64 assembly language
Knowledge of the correspondence between high-level program constructs and assembly instructions which are
executed by the CPU.
Ability to use a symbolic debugger to step through both C programs and assembly programs to aid in debugging
programs.
Basic understanding of how data is encoded in binary including signed and unsigned integers, floating point
numbers, character data, and machine instructions
Knowledge of computer memory systems, particularly the memory hierarchy of registers, caches, main memory,
and permanent storage. Basic understanding of caching techniques and efficient virtual memory address
translation to physical addresses.
Basic knowledge of computer architecture including the implementation of instructions with Boolean logic
gates, processor pipe-lining for efficiency, and out of order instruction execution.

1.4 Instructor

Name Chris Kauffman

Sections 001 and 010

Email kauffman@umn.edu

Office Keller 6-198

Phone 612-626-7510

1.5 Teaching Assistants

Name Role Email  

Abhishek Ramesh GTA rames060@umn.edu 50%

Prableen Kaur GTA kaur0016@umn.edu 25%

Bowen Yu GTA bowen-yu@umn.edu 25%

Jonathan Brenner UTA brenn563@umn.edu  

Michael Butterfield UTA butte061@umn.edu  

Min Choi UTA choix698@umn.edu  

Hannah DuBois UTA duboi131@umn.edu  

Luke Gehring UTA gehri076@umn.edu  

Terrance Gray UTA grayx501@umn.edu  

Sarah Kollman UTA kollm050@umn.edu  

2 of 9 1/22/2019, 8:38 PM
CSCI 2021: Machine Architecture and Organization https://www-users.cs.umn.edu/~kauffman/2021/syllabus.html

Name Role Email  

Alec Lorimer UTA lorim007@umn.edu  

Daniel Luick UTA luick009@umn.edu  

Sam Matenaer UTA maten009@umn.edu  

Emma Yoho UTA yohox014@umn.edu  

1.6 Lectures and Discussion/Lab

Meeting Day/Time Location

Lecture 001 M,W,F 12:20 PM - 01:10 PM 10 10 Church Street SE Room 100

Laboratory 002 T 06:50 PM - 07:40 PM Keller Hall 1-250

Laboratory 003 T 07:55 PM - 08:45 PM Keller Hall 1-250

Laboratory 004 W 08:00 AM - 08:50 AM Keller Hall 1-250

Laboratory 005 W 09:05 AM - 09:55 AM Keller Hall 1-250

Laboratory 006 W 10:10 AM - 11:00 AM Keller Hall 1-250

Laboratory 007 W 11:15 AM - 12:05 PM Keller Hall 1-250

Lecture 010 M,W,F 03:35 PM - 04:25 PM Bruininks Hall Room 220

Laboratory 012 W 12:20 PM - 01:10 PM Keller Hall 1-250

Laboratory 013 W 01:25 PM - 02:15 PM Keller Hall 1-250

Laboratory 014 W 02:30 PM - 03:20 PM Keller Hall 1-250

Laboratory 015 W 10:10 AM - 11:00 AM Lind Hall 40

1.7 Course Materials

Textbook

Computer Systems: A Programmer's Perspective, Third Edition by R. Bryant, D. O'Hallaron, Pearson, 2016
(Required) This is our main course text and covers a wide range of computer architecture issues. The textbook
website is here: http://csapp.cs.cmu.edu/
C Programming Language Second Edition by Brian Kernighan and Dennis M. Ritchie, Prentice Hall 1988
(Optional) This is the classic reference to the C programming language. It is aimed at folks with a good
understanding of computing systems and is thus not the easiest introduction to the language for beginners. The
tutorials below supplement this somewhat.

Additional online resources associated with C programming and architecture will be posted in the course materials.

Video Tutorials

The following Video Programming Tutorials are available via Lynda.com for free via licensing at the UMN. They are not
required but can serve as an additional resource on C programming for those that want explanation than what is
provided in lecture and lab meetings.

Note: All of these tutorials favor IDEs (integrated development environments) rather than the command line tools we
will use.

3 of 9 1/22/2019, 8:38 PM
CSCI 2021: Machine Architecture and Organization https://www-users.cs.umn.edu/~kauffman/2021/syllabus.html

Beginner Topics
Learning C (uses CodeBlocks rather than command line)
C Essential Training (uses Eclipse rather than command line)
Intermediate Topics
Advanced C Programming (uses CodeBlocks rather than command line)

Computing

It is assumed you will have access to a computer with the ability to edit, compile, and run Unix programs. Some
university labs provide this ability; the first week of the course will cover how to set up your personal environment as
well. If you have difficulty accessing a suitable environment, contact the course staff.

You will need to create a CSE Labs account for use on assignments and during Discussion. Accounts can be created
here: https://wwws.cs.umn.edu/account-management/

1.8 Communication

Canvas is used for project submission and to post grades. The course Canvas is available here:
https://canvas.umn.edu/courses/97686
Piazza is the central site for our announcements and discussion board. The announcements and discussion
board are part of the required reading for the course.
Sign up for our piazza site here: http://piazza.com/umn/spring2019/csci2021
All instructors and TAs can view all material on Piazza
Do not e-mail course staff about programming problems; use the discussion board.
Use public posts on Piazza to discuss programming project requirements, labs, and other material related
to the course.
When prompted by a TA, use private posts on Piazza to share portions of your code pertaining to your
questions. Don't share your project code in public posts.
Refer to the Piazza main page for etiquette on what should be posted publicly versus privately.
Email course staff only for logistical issues such as meeting outside of office hours, missing lab/lecture,
grading disputes, medical situations, etc.
Office Hours will be posted on the course Canvas and Piazza sites. Office hours for all staff are open to all
students in any section of the course governed by this syllabus.

2 Coursework
2.1 Lectures

During lectures we will discuss concepts and instructors will provide demos relevant to other course work. In addition
to attending the regular meeting times, you are strongly encouraged to visit the professor and teaching assistant(s)
during office hours to further your understanding of the material: we are here to help you learn.

2.2 Textbook Readings

Readings from the textbook relevant to each lecture are listed in the schedule. You will increase your understanding of
lectures by reading associated textbook sections ahead of time, though this is not assumed. We may provide additional
reading material to supplement the textbook which will be posted on the course web page.

2.3 Discussion/Lab Sections

Discussion sections meet once per week and attendance is required. In each meeting, the lab leader will guide students
through exercises to reinforce course concepts. These exercises are required and worth a small portion of the overall
grade for the course. Students are encouraged to freely collaborate on lab exercises which are usually due a few days
after the lab meets.

2.4 Assignments

Students will receive a number of homework assignments during the semester. These will be a combination of

4 of 9 1/22/2019, 8:38 PM
CSCI 2021: Machine Architecture and Organization https://www-users.cs.umn.edu/~kauffman/2021/syllabus.html

programming, analysis, debugging, and problem solving. Unless otherwise stated, assignments will require individual
work with no collaboration allowed. Pay careful attention to the guidelines for each assignment. Assignments are
usually large and require a significant amount of work to complete.

2.5 Exams

There will be a series of midterm exams during the semester. Exams take place during the regularly scheduled lecture
period and are worth a significant portion of the overall course grade. There will also be a comprehensive final exam at
the end of the semester. Refer to the schedule for dates of the exams.

3 Grading Policies
3.1 Graded Components

Final grades will be determined by scores obtained on the components below according to their associated weight.

Component Weight Policy

Collaborative Lab Exercises (14) 10% Drop two lowest scores

Individual Assignments (5-6) 20% No drops

Midterm Exams (3 x 15%) 45% No drops

Final Exam 25% Comprehensive

3.2 Final Grade Determination

Final grades will be assigned without rounding according to the following criteria.

Percent Grade Percent Grade Percent Grade Percent Grade

>= 93 A 87-89 B+ 78-79 C+ 65-69 D+

90-92 A- 83-86 B 73-77 C 60-64 D

    80-82 B- 70-72 C- <60 F

If circumstances require it, the grading scale may be adjusted, generally in the students' favor.

3.3 Lab Exercises Grading

No late submissions for Lab Exercises will be accepted. Missing the deadline results in 0 credit. The two lowest scores
on Lab Exercises will be dropped in final grade calculations

Attendance at the first lab meeting is mandatory. Attendance at the remaining labs is encouraged but optional.

In order to receive full credit for completing Lab Exercises, students must fulfill two requirements.

Check-off 30%: Demonstrate to a TA that a student understands answers to questions. This must be done in
person in groups of one or two. Check-offs can happen during the lab period of during a TA office hour.
Submit 70%: Submit required files according to the lab instruction. This can be done at any time and from
anywhere with a network connection. Submitting does not require attending lab. All students must submit files
even if they were checked off in a group during lab.

Students may collaborate with other students in our section(s) of the course to complete exercises and are
encouraged to do so. Submitting identical code for exercises is acceptable so long as you adhere to the PRIME
DIRECTIVE.

5 of 9 1/22/2019, 8:38 PM
CSCI 2021: Machine Architecture and Organization https://www-users.cs.umn.edu/~kauffman/2021/syllabus.html

3.4 Assignment Grading

Rules for collaboration on assignments are indicated in the assignment specification and usually involve NO
collaboration with other students. Utilize the discussion board and office hours of course staff if you have questions
about the projects.

Assignment grading will include the following elements for grading.

1. Manual Inspection: Assignments will include a checklist of features of completely correct answers. These
usually comprise things that cannot be easily checked automatically such as showing the process to reach an
answer, inclusion of key elements of an answer, or style aspects of computer code. These features will be
checked by graders and assigned credit based on level of compliance.
2. Automatic Testing: Some assignments may have automatic tests provided which check for correctly functioning
programs or answers. In most cases, these automatic checks will be publicly available for use while working on
the assignment.

3.5 Late Assignment Submission

Late submission of assignments is governed by the following.

No assignment will be accepted more than 48 hours after a deadline


On-time assignments receive no penalties
Assignments submitted 1-24 hours late are capped at 75%
Assignments submitted 25-48 hours late are capped at 50%
Students can use a maximum of 3 Day-Late Tokens over the entire semester
On submitting late, up to two tokens are automatically charged to the student which will "buy back" a higher max
score.
Token charges happen automatically and require no communication:
Submitting 1 day late will automatically charge 1 token
Submitting 2 days late will automatically charge 2 tokens unless only 1 token remains
Each unused token is worth 0.25% bonus credit overall in the course so submitting on time confers benefit at the
end of the course
To avoid penalties and losing tokens, submit on time.
The table below gives examples of when an assignment is submitted, whether penalties apply, how tokens are
charged, and their effects on assignment scores

    Pre- #Used #Used Post-      

    Token Tokens Tokens Token Raw Penalized  

Ex# Submitted Max Before After Max Score Score Comments

1 On-time 100% 0 0 100% 93 93 On-time means:

2 On-time 100% 0 0 100% 68 68 1. No tokens lost

3 On-time 100% 0 0 100% 46 46 2. No penalties

4 1-24 hours late 75% 0 1 100% 93 93 1 token used, max 100%

5 1-24 hours late 75% 3 3 75% 93 75 No tokens remain, max 75%

6 1-24 hours late 75% 2 3 100% 68 68 1 token used, max 100%, no benefit

7 1-24 hours late 75% 3 3 75% 68 68 No tokens remain, max 75%

8 25-48 hours late 50% 0 2 100% 93 93 2 tokens used, max 100%

9 25-48 hours late 50% 2 3 75% 93 75 1 token used, max 75%

10 25-48 hours late 50% 3 3 50% 93 50 No tokens, max 50%

6 of 9 1/22/2019, 8:38 PM
CSCI 2021: Machine Architecture and Organization https://www-users.cs.umn.edu/~kauffman/2021/syllabus.html

    Pre- #Used #Used Post-      

    Token Tokens Tokens Token Raw Penalized  

Ex# Submitted Max Before After Max Score Score Comments

11 25-48 hours late 50% 1 3 100% 68 68 2 tokens used, max 100%

12 25-48 hours late 50% 2 3 75% 68 68 1 token used, max 75%

13 25-48 hours late 50% 3 3 50% 68 50 No tokens, max 50%

14 >48 hours late 0% 0 0 0% 93 0 Not accepted or graded

15 >48 hours late 0% 1 1 0% 68 0 Not accepted or graded

16 >48 hours late 0% 3 3 0% 46 0 Not accepted or graded

3.6 Exam Policies and Grading

Your U-CARD is required for all exams. You may be asked to show ID on handing your exam in to verify your
identity.
Missing an exam results in a zero score and make-up exams will be considered only in situations involving
death, near death, and documented dangerous diseases. Proof of such circumstances will be required for a
make-up to be considered.
Open Resource Exams: Unless otherwise specified, exams will be open resource: notes, textbook, editor,
compiler, and any code the student finds useful is allowed to be used. No communication is allowed during the
exam (no email/texting/chat), no Internet searches are allowed, and no unauthorized web sites may be visited. If
in doubt, ask about specifics before or during the exam.

3.7 Grading Disputes

Disputes should be raised respectfully either in person or via e-mail. If it is not possible to reach a resolution, the
professor may be contacted by the grader to resolve the dispute. Assignment grading feedback will always include the
grader who should be contacted first.

Assignments: Contact your grader


Lab work: Contact your grader
Exams: We will use an online system to report exam grades. This system includes a mechanism to request a
regrade of individual problems which will notify the grader responsible. Disputes should include rationale as to
why an answer should not have received specific deductions.

If contact has not been initiated 1 week after a grade is posted, the chance to contest the grade is forfeited.

3.8 Bonus Credit

Bonus credit will be awarded based on participation in class discussions in lecture. Students may elect to sit in the first
few rows of the room ("hot seats") and answer questions. Reasonable effort on answering questions in class will
garner class participation credit. Participation points may also earned for involvement in the class discussion board
such as giving suggestions to students with questions (but not revealing answers wholesale). The highest point winner
at the end of the semester will receive a 3% bonus to their overall score in the course. All other students will receive a
bonus proportional to the highest point winner. For example, someone tied with the highest point scorer will also
receive a 3% bonus while someone with half the participation points will receive a 1.5% bonus.

A small amount of bonus credit also available for unused Day Late Tokens at the end of each semester.

4 Academic Integrity
PRIME DIRECTIVE: Be able to explain your own work including homework answers, program code, and exam
solutions. The work you submit should be the product of your own effort and reflect your personal understanding.

7 of 9 1/22/2019, 8:38 PM
CSCI 2021: Machine Architecture and Organization https://www-users.cs.umn.edu/~kauffman/2021/syllabus.html

Nearly all cheating in programming can be averted by adhering to the PRIME DIRECTIVE. Students may be asked at any
time to explain code or exam solutions they submit. Inability to do so will be construed as evidence of misconduct.
More specific guidelines are given below.

4.1 Thou Shalt Not

Unless otherwise specified, all assessments in this course are individual efforts involving no unfair collaboration. For
the purposes of this course, the following actions constitute scholastic misconduct (cheating) and will be reported.

Directly copying someone else's solution to an assessment problem, including student solutions from a previous
semester
Directly copying an answer from some outside source such as the Internet or friend for a homework problem.
Making use of an Instructor Solution manual to complete problems.
Submitting someone else's work as your own.
Paying someone for a solutions to assignments.
Posting solutions to any web site including public posts to our course web site.
Collaborating or copying the work of others during an exam.
Taking another student's code with or without their consent.
Aiding or abetting any of the above.
Witnessing any of the above and failing to report it to an instructor immediately.

Refer to the following links for additional information.

UMN Student Conduct Code


Computer Science Department policies on scholastic dishonesty
Office of Community Standards

4.2 Penalties

Any instance of misconduct that is detected will be referred to the honor board and will likely result in failing the
course. Be advised that the teaching team will be employing electronic means to detect plagiarism. This is extremely
easy with computer code so keep your nose clean.

4.3 Fair Collaboration

The purpose of this course is to learn about programming and learning from one another is a great help. To that end,
the following actions will NOT be considered cheating in this course.

Collaboration on Discussion/Lab Exercises is allowed and encouraged. These are a great opportunity to help one
another on work that counts towards your final grade. Just make sure that you understand any solutions you
submit as per the PRIME DIRECTIVE.
Discussing assignments/projects at a high level with other course students is fair so long as no code is shared.
Take great care at the point of directly showing your work to others as your answers are subsequently out of
your own control.
Asking public questions on the course discussion board so long as limited information about your own solution
is included. To convey details of your solution, use private posts.
Asking any course staff member questions in person or online is acceptable and encouraged. Staff members
may initiate small group discussions in which collaboration is fine.
If you are unsure whether a given collaboration is fair or not, stop the activity and clear it with your instructor.

At all times keep the PRIME DIRECTIVE in mind when studying with another student. The above collaborations should
be limited to getting someone over a hurdle, not carrying them across the finish line.

5 General Policies
General university policies which apply to our course are listed here: https://policy.umn.edu/education
/syllabusrequirements-appa

Summaries of those policies are below.

8 of 9 1/22/2019, 8:38 PM
CSCI 2021: Machine Architecture and Organization https://www-users.cs.umn.edu/~kauffman/2021/syllabus.html

Students are expected to maintain a high level of civility for all participants in and out of class meetings. This includes
respecting participants of all genders, ethnicities, and social backgrounds. Harassment of any type will not be tolerated
and failure to behave in a respectful manner will be reported to the University.

Observance of religious events will be accommodated for students of any faith. All possible accommodations will be
made for students with disabilities. Please contact the Disability Resource Center and the instructor for further
information.

Author: Chris Kauffman (kauffman@umn.edu)


Date: 2019-01-20 Sun 21:58

9 of 9 1/22/2019, 8:38 PM

Das könnte Ihnen auch gefallen