Difference between revisions of "CSC231 Schedule Spring 2017"

From dftwiki3
Jump to: navigation, search
( )
 
(158 intermediate revisions by the same user not shown)
Line 6: Line 6:
 
[[CSC231_Schedule_2017#Links_and_Resources | Links &amp; Resources]]</center><br />
 
[[CSC231_Schedule_2017#Links_and_Resources | Links &amp; Resources]]</center><br />
 
<br />
 
<br />
 
+
[[CSC231_Schedule_Fall_2017 | You probably want to be on the CSC231, '''Fall 2017''' page...]]
 +
<onlydft>
 
<br />
 
<br />
 
====&nbsp;====
 
====&nbsp;====
Line 17: Line 18:
 
|}
 
|}
 
<br />
 
<br />
{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
 
|width="60%"| '''Topics''': Introduction
 
|width="60%"| '''Topics''': Introduction
Line 62: Line 63:
 
|}
 
|}
 
<br />
 
<br />
{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
{| class="mw-collapsible" style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
 
|width="60%"| '''Topics''': Emacs, assembly, hexdump
 
|width="60%"| '''Topics''': Emacs, assembly, hexdump
Line 100: Line 101:
 
|}
 
|}
 
<br />
 
<br />
{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
{| class="mw-collapsible" style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
 
|width="60%"| '''Topics''': Registers (eax, ax, al).  The ADD Instruction
 
|width="60%"| '''Topics''': Registers (eax, ax, al).  The ADD Instruction
Line 119: Line 120:
  
 
|
 
|
* '''Homework #1''' will be released on Monday 2/6 at 11:00 a.m.  You will find it on Moodle and you will have until 2/13/17 11:55 p.m. to submit it.
+
* '''Homework #1''' will be released on Monday 2/6 at 11:00 a.m.  You will find it on Moodle and you will have until 2/13/17 11:55 p.m. to submit it. [[CSC231 Homework Solutions 2017| Solution program]]
 
|
 
|
 
* Read [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH04/CH04-3.html#HEADING3-79 Chapter 4 Section 3] on the '''Mov''' Instruction.
 
* Read [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH04/CH04-3.html#HEADING3-79 Chapter 4 Section 3] on the '''Mov''' Instruction.
Line 135: Line 136:
 
|}
 
|}
 
<br />
 
<br />
{| class="mw-collapsible mw-collapsed" style="width:100%" border="1"
+
{| class="mw-collapsible" style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
 
|width="60%"| '''Topics''':  SUB, DW, DD, DB, Binary, Hex, Decimal conversion.
 
|width="60%"| '''Topics''':  SUB, DW, DD, DB, Binary, Hex, Decimal conversion.
Line 163: Line 164:
 
|
 
|
 
* [[CSC231_Homework_2_2017| '''Homework #2''']] is released on Monday 2/13 at 11:00 a.m. It contains a programming assignment, and a quiz to be answered on '''Moodle'''.  The due date is Monday 2/20/17 11:55 p.m.
 
* [[CSC231_Homework_2_2017| '''Homework #2''']] is released on Monday 2/13 at 11:00 a.m. It contains a programming assignment, and a quiz to be answered on '''Moodle'''.  The due date is Monday 2/20/17 11:55 p.m.
 +
*  [[CSC231 Homework Solutions 2017| Solution program(s)]]
 
|
 
|
 
* Read [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH01/CH01-1.html#HEADING1-30  Chapter 1] in the Art of Assembly reference by Randy Hyde, Sections '''1.0''' to '''1.4'''.
 
* Read [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH01/CH01-1.html#HEADING1-30  Chapter 1] in the Art of Assembly reference by Randy Hyde, Sections '''1.0''' to '''1.4'''.
Line 177: Line 179:
 
|}
 
|}
 
<br />
 
<br />
{| class="mw-collapsible " style="width:100%" border="1"
+
{| class="mw-collapsible" style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
 
|width="60%"| '''Topics''': Conversion binary, hex, decimal.
 
|width="60%"| '''Topics''': Conversion binary, hex, decimal.
Line 196: Line 198:
 
|
 
|
 
* '''Homework #3''' is released on Monday 2/20 at 11:00 a.m. It contains several quizzes to be answered on Moodle.. The due date is Monday 2/27/17 11:55 p.m.
 
* '''Homework #3''' is released on Monday 2/20 at 11:00 a.m. It contains several quizzes to be answered on Moodle.. The due date is Monday 2/27/17 11:55 p.m.
 +
*  [[CSC231 Homework Solutions 2017| Solution program]]
 
|
 
|
 
* Section 6.5.1.2 in [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH06/CH06-2.html#HEADING2-117 Hall's Art of Assembly]
 
* Section 6.5.1.2 in [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH06/CH06-2.html#HEADING2-117 Hall's Art of Assembly]
Line 213: Line 216:
 
|}
 
|}
 
<br />
 
<br />
{| class="mw-collapsible " style="width:100%" border="1"
+
{| class="mw-collapsible" style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
 
|width="60%"| '''Topics''':  Logical instructions, Logic Design, Signed Numbers
 
|width="60%"| '''Topics''':  Logical instructions, Logic Design, Signed Numbers
Line 229: Line 232:
 
::* [[Media:CSC231_Week6_slides.pdf| slides]] (pdf)
 
::* [[Media:CSC231_Week6_slides.pdf| slides]] (pdf)
 
* '''Friday''':
 
* '''Friday''':
::*  Linux: More advanced redirections, permissions, for-loops, ping
+
::*  [[CSC231_Bash_Tutorial_5|Linux Lab]]: Nasm as a tool, more advanced redirections, for-loops
  
 
|
 
|
* [[CSC231 Homework 4 2017 | Homework 4]]
+
* [[CSC231 Homework 4 2017 |''' Homework 4''']], due March 6 at 11:55 p.m.
 +
*  [[CSC231 Homework Solutions 2017| Solution program]]
 
|
 
|
*  
+
* Read [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH01/CH01-2.html#HEADING2-49 Section 1.5] on Logical Operations on Bits
 +
* Read [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH01/CH01-2.html#HEADING2-96 Sections 1.7 and 1.8] on signed numbers.
 
|}
 
|}
 
<br />
 
<br />
Line 247: Line 252:
 
|}
 
|}
 
<br />
 
<br />
{| class="mw-collapsible " style="width:100%" border="1"
+
{| class="mw-collapsible" style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''':   
+
|width="60%"| '''Topics''':  2's Complement, Midterm
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
Line 255: Line 260:
 
|
 
|
 
* '''Mon'''
 
* '''Mon'''
* '''Wed''': <font color="magenta">'''MIDTERM EXAM'''</font>: on paper, in class, closed books, closed notes, closed computers.
+
::* [[CSC231_Sample_Midterm_Questions| Sample midterm questions from previous years]]
 +
::* Exercises on 2's Complement Numbers
 +
::* LOOP instruction
 +
::* [[Media:CSC231_Week7_2017.pdf | slides]] (pdf)
 +
* '''Wed''': <font color="magenta">'''MIDTERM EXAM'''</font>: on paper, in class, closed books, closed notes, closed computers. - ([[Media:CSC231Midterm2017Solutions.pdf|solutions]])
 
::*  
 
::*  
 
* '''Friday''':
 
* '''Friday''':
::* Linux: Filters
+
::* No class
 
|
 
|
*  
+
* No homework assignment given out this week
 
|
 
|
 
*  
 
*  
Line 278: Line 287:
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 8'''  Mar 21, 23
+
|width="45%"|'''Week 8'''  Mar 20, 22, 24
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 286: Line 295:
 
{| class="mw-collapsible " style="width:100%" border="1"
 
{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''':   
+
|width="60%"| '''Topics''':  Loops and Addressing Modes
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
Line 292: Line 301:
 
|
 
|
 
* '''Mon/Wed'''
 
* '''Mon/Wed'''
::*  
+
::* The Loop instruction
 +
::* Indirect Addressing Modes
 +
::* Working with arrays
 +
::* [[Media:CSC231_Week8_2017.pdf | slides]] (pdf)
 +
::* '''Miderm exams''' will be returned.  The grading was done as follows: 11 problems worth 10 points each were graded and generated a number between 0 and 110, which was translated into a letter grade.  This letter grade was then transformed into another number using Moodle's number-letter translation table.  This number is the one entered in Moodle.  ([[Media:CSC231Midterm2017Solutions.pdf|Solutions to Midterm Problems]])
 
* '''Friday''':
 
* '''Friday''':
::*  Linux: Grep and ''Regular Expressions''
+
::*  [[CSC231 Bash Tutorial 6| Linux Lab: Bash scripting]]
  
 
|
 
|
*  
+
* No homework this week
 
|
 
|
*  
+
* [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH06/CH06-5.html#HEADING5-294 The Loop Instruction (Section 6.9.6)]
 +
* [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH04/CH04-2.html#HEADING2-35 The Register Indirect addressing mode (Section 4.6.2.2)]
 +
*  [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH04/CH04-2.html#HEADING2-35 Other Addressing modes (up to Section 4.6.2.5)]
 
|}
 
|}
 
<br />
 
<br />
 +
 
====&nbsp;====
 
====&nbsp;====
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 9'''  Mar 28, 30
+
|width="45%"|'''Week 9'''  Mar 27, 29, 31
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 313: Line 329:
 
{| class="mw-collapsible " style="width:100%" border="1"
 
{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''':   
+
|width="60%"| '''Topics''':  Loops, arrays, game of life, conditional jumps
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
Line 319: Line 335:
 
|
 
|
 
* '''Mon/Wed'''
 
* '''Mon/Wed'''
::*  
+
::* Working with arrays: [https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life Exploring Conway's Game of Life] (see video links in the slides)
 +
::* Jumps
 +
::* Flags register
 +
::* Conditional Jumps
 +
::* [[Media:CSC231_Week9_2017.pdf | slides (pdf)]]
 +
::* [[CSC231 Developing the Game of Life in Assembly| Game of Life programs developed in class]]
 
* '''Friday''':
 
* '''Friday''':
::*  Linux: Piping and Redirection.  Redirecting to/from stdout and stderr
+
::*  [[CSC231_Bash_Tutorial_7 | Linux Lab: If Statements]]
 
|
 
|
*  
+
* [[CSC231 Homework 5 2017| Homework 5]] (due 4/3/2017)
 +
*  [[CSC231 Homework Solutions 2017| Solution program]]
 
|
 
|
*  
+
* [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH06/CH06-5.html#HEADING5-3 Unconditional Jump]
 +
* [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH06/CH06-1.html#HEADING1-27 The Flags Register]
 +
* [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH06/CH06-5.html#HEADING5-226 Conditional Jumps]
 +
* [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH06/CH06-2.html#HEADING2-244 CMP instruction]
 
|}
 
|}
 
<br />
 
<br />
 +
 
====&nbsp;====
 
====&nbsp;====
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 10'''  Apr 4, 6
+
|width="45%"|'''Week 10'''  Apr 3, 5, 7
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 339: Line 365:
 
{| class="mw-collapsible " style="width:100%" border="1"
 
{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''':   
+
|width="60%"| '''Topics''':  Conditional Jumps
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
Line 345: Line 371:
 
|
 
|
 
* '''Mon/Wed'''
 
* '''Mon/Wed'''
::*  
+
::* Finish [[CSC231_Bash_Tutorial_7| the Linux Lab on if-statements]].
 +
::* Conditional Tests
 +
::* [[CSC231_DDD_Short_Tutorial|A quick introduction to the '''ddd''' debugger]]
 +
::* [[Media:CSC231_Week10_2017.pdf | slides (pdf)]]
 
* '''Friday''':
 
* '''Friday''':
::*  Linux: Process Management
+
::*  [[Media:CSC231_IntroToC_2017.pdf|Linux Lab: Introduction to C]]
 
|
 
|
*  
+
* [[CSC231 Homework 6 2017 | Homework 6]] (due 4/10/17 at 11:55 p.m.)
 +
*  [[CSC231 Homework Solutions 2017| Solution program]]
 
|
 
|
*  
+
* [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH06/CH06-5.html#HEADING5-226 Conditional Jump instructions]
 +
 
 
|}
 
|}
 
<br />
 
<br />
 +
 
====&nbsp;====
 
====&nbsp;====
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 11'''  Apr 11, 13
+
|width="45%"|'''Week 11'''  Apr 10, 12, 14
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 365: Line 397:
 
{| class="mw-collapsible " style="width:100%" border="1"
 
{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''':   
+
|width="60%"| '''Topics''':  Function, Stack, Push, Pop
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
Line 371: Line 403:
 
|
 
|
 
* '''Mon/Wed'''
 
* '''Mon/Wed'''
::*  
+
::* Functions, The STACK, ESP, EBP, Push, Pop
 +
::*  [[Media:CSC231_Week11_2017.pdf | slides (pdf)]]
 
* '''Friday''':
 
* '''Friday''':
::*  Linux: Scripting I
+
::*  [[Media:CSC231_IntroToC_2017.pdf|Linux Lab: Introduction to C, Part 2]]
 
 
 
|
 
|
*  
+
* [[CSC231 Homework 7 2017 | Homework 7 (due 4/17/17)]]
 +
*  [[CSC231 Homework Solutions 2017| Solution program]]
 
|
 
|
*  
+
* [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH11/CH11-1.html#HEADING1-0 Functions].  Functions are also called ''procedures'' when dealing with assembly.  You'll find this term used in Randy Hyde's documentation.  Also, Hydes uses the '''proc''' and '''endp''' directives to define functions, which is fine.  We won't in this class.  Functions work just as well without!
 
|}
 
|}
 
<br />
 
<br />
 +
 
====&nbsp;====
 
====&nbsp;====
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 12'''  Apr 18, 20
+
|width="45%"|'''Week 12'''  Apr 17, 19, 21
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 392: Line 426:
 
{| class="mw-collapsible " style="width:100%" border="1"
 
{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''':   
+
|width="60%"| '''Topics''':  Recursion, fact
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
Line 398: Line 432:
 
|
 
|
 
* '''Mon/Wed'''
 
* '''Mon/Wed'''
::*  
+
::* Passing by reference
 +
::* Local variables
 +
::* Recursion
 +
::* Example1:  [[CSC231 Factorial.asm| Computing factorials]]
 +
::* [[Media:CSC231_Week12_2017.pdf| slides (pdf)]]
 
* '''Friday''':
 
* '''Friday''':
::* Linux: Scripting 2.  Variables.
+
::* [[Media:CSC231_IntroToC_2017.pdf|Linux Lab: Introduction to C, Part 3]]
 
|
 
|
*  
+
* [[CSC231 Homework 8 2017| Homework #8]] (due 4/24/17)
 +
* [[CSC231 Homework Solutions 2017| Solution program]]
 
|
 
|
*  
+
* [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH11/CH11-7.html#HEADING7-86 Recursion chapter] in Randy Hall's Art of Assembly.  Hall uses 16-bit registers (ax, bx, bp, etc...) but the reasoning is the same as for 32-bit registers.
 
|}
 
|}
 
<br />
 
<br />
Line 411: Line 450:
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 13'''  Apr 25, 27
+
|width="45%"|'''Week 13'''  Apr 24, 26, 28
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 425: Line 464:
 
|
 
|
 
* '''Mon/Wed'''
 
* '''Mon/Wed'''
::*  
+
::* Recursion Example 2:  [[CSC231_Towers_of_Hanoi | Towers of Hanoi ]]
 +
::* [[Stack overflow in Java| Stack overflow in Java; an example]]
 +
::* Floating Point Numbers
 +
::* [[GenerateNaN.java| Generating NaNs in Java]]
 +
::* [[Media:CSC231_Week13_2017.pdf| slides (pdf)]]
 
* '''Friday''':
 
* '''Friday''':
::* Linux: Linux tips & tricks 1
+
::* [[Media:CSC231_IntroToC_2017.pdf|Linux Lab: Introduction to C, Part 4]]
 
|
 
|
*  
+
* [[CSC231 Optional Homework 9 2017 | Homework 9 (Optional)]]
 +
<!-- [[CSC231 Homework Solutions 2017| Solution program]] -->
 
|
 
|
*  
+
* [[CSC231_An_Introduction_to_Fixed-_and_Floating-Point_Numbers| Introduction to Floating-Point Numbers]]
 
|}
 
|}
 
<br />
 
<br />
 +
 
====&nbsp;====
 
====&nbsp;====
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 14'''  May 2, 4
+
|width="45%"|'''Week 14'''  May 1, 3
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 445: Line 490:
 
{| class="mw-collapsible " style="width:100%" border="1"
 
{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''':   
+
|width="60%"| '''Topics''':  Floating-Point Numbers
|width="15%"| '''Lab/Hw'''
+
|width="15%"| '''Exam'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''Mon/Wed'''
+
* '''Mon'''
::*  
+
::* Floating Point Numbers
* '''Friday''':
+
::* Recap
::*  Linux: Linux tips & tricks 2
+
::* [[Media:CSC231_Week14_2017.pdf| slides (pdf)]]
 +
* '''Wednesday''':
 +
::* [[Media:CSC231_Week14_2017.pdf| slides (pdf)]]
 +
::* [[CSC231 Final Exam 2017| '''Final exam''']]. Take home, open books, open Web, open computers.  Due last day of exams.
 
|
 
|
*  
+
* [[CSC231 Final Exam 2017| '''Final exam''']]
 
|
 
|
*  
+
* [[CSC231_An_Introduction_to_Fixed-_and_Floating-Point_Numbers| Introduction to Floating-Point Numbers]]
 +
 
 
|}
 
|}
 
<br />
 
<br />
=Links_and_Resources=
+
 
 +
=Links and Resources=
 
<br />
 
<br />
 
==Pipelines, Branch Prediction, Hyper-Threading==
 
==Pipelines, Branch Prediction, Hyper-Threading==
Line 472: Line 522:
 
<br />
 
<br />
 
<br />
 
<br />
 +
</onlydft>
 
<br />
 
<br />
 
<br />
 
<br />

Latest revision as of 19:02, 21 September 2017