Meets MWF 3:30-4:30 PM |
CS F301-F01 |
Instructor: Dr. Orion Lawlor |
Utterly Optional Textbook: |
Course Website: http://www.cs.uaf.edu/2011/fall/cs301/ ADA Compliance: I will work with the Office of Disability Services (208 WHITAKER BLDG, 474-5655) to provide reasonable accommodation to students with disabilities. |
By the end of the course, you will understand how your code actually executes on a real machine: from electrons on a semiconductor, to registers and binary arithmetic, to machine code and assembly, to C++ source code. Understanding this process is useful for debugging code, and making all your code faster, smaller, and more secure. This course will focus on the middle levels of this chain of abstractions--you'll eventually learn much more about the lower levels (electrons, semiconductors, logic circuits) in EE 341 & 443, and about the higher levels (languages, compilers, OS) in CS 331 & 321. To understand this course, you will have to be comfortable with all the basics of C or C++: variables, loops, arrays, pointers, classes, and functions.
First day of class: 3:30pm Friday, September 2.
|
Pre-Thanksgiving optional lecture:
Wednesday, November 23. |
Academic Help: Google, Rasmuson Library, Academic Advising Center (509 Gruening, 474-6396), Math Lab (Chapman Room 305), English Writing Center (801 Gruening Bldg, 478-5246).
Your work will be evaluated on technical correctness, rationale, and insight. Grades for each assignment and test may be curved upward by scaling. Each homework and the midterm will then be clamped to the range [0%,100%]. Your grade is then computed based on four categories of work:
HW: Homeworks and machine problems, typically one batch per week throughout the semester.
PROJ: Two sizable class projects--big programs written in, or relating to assembly, with a short in-class presentation.
MT: Midterm Exam
FINAL: Final Exam (comprehensive)
The final score is then calculated as:
TOTAL = 30% HW + 20% PROJ + 25% MT + 25% FINAL
This percentage score is transformed into a plus-minus letter grade via these cutoffs: A >= 93%; A- 90%; B+ 87%; B 83%; B- 80%; C+ 77%; C 70%; D+ 67%; D 63%; D- 60%; F. The grades “C-”, “F+”, and “F-” will not be given. “A+” is reserved for truly extraordinary work. Homeworks are due by midnight at the end of the day they are due.
THOU SHALT ASK QUESTIONS IN CLASS WHEN THY PROFESSOR STOPS MAKING SENSE.
THOU SHALT LEARN THE GENERAL PRINCIPLES, BY LEARNING THE CURRENT SPECIFIC IMPLEMENTATIONS.
THOU SHALT COME TO CLASS, EVEN WHEN SLEEPY. BUT THOU SHALT NOT SLEEP IN CLASS.
THOU SHALT TURN IN THY ASSIGNMENTS BEFORE MIDNIGHT ON THE REQUIRED DAY, FOR THOU SHALT RECEIVE A ZERO FOR LATE ASSIGNMENTS.
THOU SHALT NOT START WORK ON THY ASSIGNMENTS 20 MINUTES BEFORE THEY ARE DUE. NOR EVEN 30 MINUTES. START THEM DAYS AHEAD OF TIME OR THOU SHALT BE VEXED!
VERILY, THOU SHALT CLICK “RUN” IN NETRUN ONE THOUSAND TIMES OR MORE; BUT NOT ALL IN ONE NIGHT. TRUE INSIGHT DOES NOT COME FROM THE INFINITE MONKEY THEOREM.
THOU SHALT CITE ALL THY SOURCES. EVEN THOSE FROM THE INTERNET.
THOU SHALT NOT COPY THY NEIGHBOR'S ASSIGNMENTS, NOR HIS TESTS.
ALL THY ASSIGNMENTS AND TESTS SHALL BE THY OWN WORK. ANY CHEATING OR PLAGARISM SHALL INCUR THE WRATH* OF THY PROFESSOR.
THOU SHALT REGULARLY CHECK THE WEBSITE. I MAY POST ASSIGNMENTS THERE AT ANY TIME, FOR I AM THY PROFESSOR.
At my discretion, I may allow late work without penalty when due to circumstances beyond your control. Department policy does not allow tests to be taken early; but in extraordinary circumstances may be taken late. All classes and exams will normally be in the usual classroom at the usual time; in extraordinary circumstances, such as an ice storm or infectious disease outbreak, classes may be held on Blackboard/Elluminate Live.
*The minimum penalty for plagiarism is that entire section of your grade. For example, one copied homework problem will negate your entire homework score. Note that without homework, the highest grade you can even theoretically achieve is a C-! Even substantial reuse of other people's work is fine (and not plagiarism) if it is clearly cited; you'll be graded on what you've added to others' work.
(September) Data representation
Arithmetic Operations
|
(October) Machine Language / Instruction encoding
Assembly & disassembly syntax
Project 1 presentations in class |
(Midterm to Thanksgiving) Subroutines
Memory
Heap memory
Advanced control flow
|
(Thanksgiving to End) Performance and Optimization
Floating point
Project 2 presentations in class |