Resources for COMP251
Lectures
- Lecture 1: CodeParadoxes.java, SheepTracker.java
- Lecture 2:
- Lecture 3: unsigned.c, ascii.c
- Lecture 4: SignedIntExperiments.java, my explanation of the textbook's table 2.2 (page 63)
- Lecture 5: FloatingPointExperiments.java
- Lecture 6: TruthTable.java, logic
gate applet (from the website for Computer
Science: An Overview, by J. Glenn Brookshear)
- Lecture 7:
- Lecture 8:
- An explanation of the instability
of the SR flip-flop. Also note that, in my
opinion, the first paragraph of page 134 in the
text book (the discussion of instability of the SR
flip-flop) is potentially misleading: an SR
flip-flop without a clock is perfectly stable when
S=R=1, and results in Q = Qbar =
0. It is only when we have a clock that S=R=1
becomes a problem, because immediately after the
clock cycle, the inputs S, R are killed and the
resulting state depends on which one happens to
die off first, resulting in either Q=0 or Q=1.
Please see the linked document above for a more
detailed explanation. The difference between the
first two links below should also make this
distinction clear.
-
More circuits by Ken Bigelow:
- Please note the error on slide 50 of the
textbook authors' PowerPoint slides for chapter 3.
A corrected version is now available from the PowerPoint slides
link.
- circuit puzzles
- Lecture 9: WordSizeExperiment.java
- Lecture 10: You'll need the MARIE simulator from the textbook's student resource page. Steps to create and run an assembly language program:
- run MarieSim.jar
- in simulator: File | Edit
- in editor: Type program
- in editor: File | Save [saves text file as *.mas]
- in editor: Assemble | Assemble current file [creates machine language file as *.mex]
- [optional] in editor: Assemble | Show assembly listing
- in simulator: File | Load [load the .mex file]
- in simulator: Run | Run (you can experiment with single stepping)
- Lecture 11: Counter.java, zip file of assembly language demos
- Lecture 12: Assembly code examples
- Lecture 13: StackDemo.java, IA32 instruction set reference, variables.c, subroutine.c, loop.c
- Lecture 14: endian.c
- Lecture 15:
- Mult.java
- Command line for disassembling a java file:
javap -c ClassName
- Command line for dumping literal contents of a file in numeric format, eight bytes per line, with decimal addresses and values:
od -w8 -Ad -t d1 filename
- Lecture 16: CacheTimer.java, cool results from CacheTimer.java
- Lecture 17: caching-worksheet.pdf
- Lecture 18: vm-worksheet.pdf
- Lecture 19: Amdahl.java
- Lecture 20: DiskSpeed.java
Projects
Exams
- Midterm Exam 1: The exam covers Lectures 1-8.
Technically, any material covered in any lecture
or any assigned reading is eligible to be
examined. However, in practice, the vast majority
of questions
will be similar to either a homework question, one
of the puzzle questions from the puzzle sheets in
lectures 7 and 8, or this example
question. Therefore, the best method of
preparation is to ensure you can effortlessly and
correctly complete all homework questions, puzzle
questions, and the example question. Note that
homework solutions are provided outside the
instructor's office. It is highly advisable to
show your working in all exam answers, as partial
credit for incorrect answers can only be given if
your working demonstrates a correct understanding
of the concepts being examined. This exam is open
book, meaning you can bring and use any printed or
handwritten materials. However, no electronic
devices of any kind whatsoever may be used.
- Midterm Exam 2: The exam covers Lectures 9-15.
Technically, any material covered in any lecture
or any assigned reading is eligible to be
examined. However, in practice, the vast majority
of questions
will be similar to one of the homework
questions. Therefore, the best method of
preparation is to ensure you can effortlessly and
correctly complete all homework questions. Note
that homework solutions are provided outside the
instructor's office. It is highly advisable to
show your working in all exam answers, as partial
credit for incorrect answers can only be given if
your working demonstrates a correct understanding
of the concepts being examined. This exam is open
book, meaning you can bring and use any printed or
handwritten materials. However, no electronic
devices of any kind whatsoever may be used.
- Final Exam:
- The exam covers Lectures
1-20.
Technically, any material covered in any lecture
or any assigned reading is eligible to be
examined. However, in practice, the vast majority
of questions will be similar to one of the
homework
questions, one of the in-class exam questions, or
one of the worksheets available on this
webpage. (Pay special attention to the caching and
virtual memory worksheets from lecturers and 17
and 18, which were not covered by the previous
exams.) Therefore, the best method of
preparation is to ensure you can effortlessly and
correctly complete all homework questions,
previous exam questions, and worksheets. Note
that homework solutions are provided outside the
instructor's office. It is highly advisable to
show your working in all exam answers, as partial
credit for incorrect answers can only be given if
your working demonstrates a correct understanding
of the concepts being examined.
- This exam is open
book, meaning you can bring and use any printed or
handwritten materials. However, no electronic
devices of any kind whatsoever may be used.
- The final exam will take
place on Saturday,
December 13 at 9 a.m., in Tome 117 (not our
usual classroom, Tome 231). The exam will be
proctored by Professor Jennifer Froelich.
Professor Froelich is not able to answer
content-specific questions. If you have a
question about, or suspect an error in, the exam,
make a clear note of it on your exam paper,
clearly stating any additional assumptions you
have made, and complete the question to the best
of your ability.
Last updated: