From 3de5c6fc03d4b0d558085fa5fc6577f611d70e6e Mon Sep 17 00:00:00 2001 From: Aaron Bloomfield Date: Fri, 17 Aug 2018 00:15:08 -0400 Subject: [PATCH] Copying files from markfloryan/pdr over to make the pull request merge nice and clean --- README.html | 104 ++++++++- readme-old.md => README.md | 17 +- readme-old.html | 107 --------- readme.html | 18 -- readme.md | 11 - slides/index.html | 52 +++-- uva/index.html | 433 +------------------------------------ 7 files changed, 150 insertions(+), 592 deletions(-) rename readme-old.md => README.md (89%) delete mode 100644 readme-old.html delete mode 100644 readme.html delete mode 100644 readme.md diff --git a/README.html b/README.html index dbb1a5150..5186d3cbe 100644 --- a/README.html +++ b/README.html @@ -1,8 +1,102 @@ - - + + - -redirect page + + + + Program and Data Representation + + -

You really want to be here

+ +

Program and Data Representation

+

Introduction | Repository contents | Contributing to this repository | Course description | Markdown | Source code | Canvas notes | License

+

Introduction

+

This repository contains the materials for the course entitled "CS 2150: Program and Data Representation" in the Computer Science Department at the University of Virginia. It contains all of the slides, labs, exams, etc., used throughout the course. The course description is below. The github repository for this course is at https://github.com/markfloryan/pdr.

+

Students currently in the course should view the uva/index.html (md) file in the cloned repository (i.e., don't try to view it on github.com); current students may also want to view the daily announcements. Note that many of the course materials are modified right before they are needed -- for example, this repository will be updated right before the semester starts.

+

Students who were previously in the course may want to view the current version, or you can view the version from your semester. All semester versions are tagged with an end-of-semester tag of the form "year-semester". For example, the spring 2014 semester was tagged as 2014-spring. To obtain a specific tag, you can enter git checkout tags/2014-spring in an already cloned repository.

+

The primary author of this repository is Mark Floryan (mrf8t@cs.virginia.edu). This repository originally developed (and has been adapted from) a similar one by Aaron Bloomfield (aaron@virginia.edu. Many students and faculty have worked on this course material over the years.

+

Repository Contents

+

Note that the links below will not work correctly if you are viewing this online at github.com -- you will need to clone (download) the repository first

+ +

Contributing to this Repository

+

Updates to the repository are restricted to approved individuals only, to prevent anybody from messing with the slides right before a lecture. However, others can still contribute to this repository -- to do so, take the following steps:

+
    +
  1. Create a github account, if you do not have one
  2. +
  3. Fork this repository: you can click on the "Fork" link in the upper right, or just click here
  4. +
  5. Clone your forked repository on to your local machine
  6. +
  7. Make any changes you want to your forked version, then commit and push your changes back to your forked repository
  8. +
  9. Create a pull request, following the instructions here
  10. +
+

At that point, I will receive a notice that a change has been submitted, and I'll look at it and hopefully accept it into the main repository.

+

When you want to bring in the updates from the main pdr github repository into your forked repository, you will need to follow the instructions here.

+

Course Description

+

This course is a second-year course for computer science majors. It is the primary data structures course in the University of Virginia's computer science curriculum. Unlike many other data structure courses at other institutions, it is intended as the third course in sequence, meaning that students are expected to have taken two semesters of Java (or equivalent, although some of the examples are specifically from Java). The course focuses on how programs and data are represented from the high level down to the low level. For programs, we examine (from high to low): abstract data types, Java code, C++ code, C code, assembly (x86) code, and a customized machine language. For data, we examine (also from high to low): abstract data types, objects, primitive types, and how numbers are encoded (both floats (IEEE 754) and integers (two's complement)). About two-thirds of this course is programming using C++. The remainder of this course uses other languages, including (in decreasing order): x86 assembly, IBCM (a machine language), C, Objective C, and shell scripting.

+

The ABET course objects are as follows:

+ +

Markdown

+

The majority of the content in this repository was created using Markdown. Unfortunately, the only standardized Markdown is very old (2004), and has limited support for many HTML features, such as tables. In the past, there were custom utilities (which can still be found in the utils (md) directory) were used. However, pandoc is now used (which is installed via the "pandoc" package on Ubuntu). Typing make in the root repo directory will call pandoc on all the markdown files.

+

For all the Markdown files in this repository, both the original (.md) file and the HTML version (.html) are added to the repository, so that people who do not have Markdown installed can still view the contents of this repository.

+

Note that Github supports an enhanced version of Markdown, called Github Flavored Markdown, or GFM. This mostly pertains to this README file. In an effort to ensure compatibility with other Markdown programs (such as the one described here and what reveal.js uses), GFM specific features are generally avoided. One example is the use of anchors in this document -- the HTML tags are included instead of using GFM's version.

+

Source code

+

All source code is formatted via astyle and then highlighted via source-highlight. Both the original file (foo.cpp) and the highlighted version (foo.cpp.html) are included in the repository. All links to source code will like to the .html, with a "(src)" after it to link to the original source code.

+ +

Canvas notes

+

Some of the slides allow pen-based markup of the slides. To add a canvas to a slide (to allow drawing with a mouse or a stylus), you must do a few things:

+
    +
  1. The slide can NOT be Markdown, it must be all pure HTML

  2. +
  3. Include the js/canvas.js and css/dhtmlwindow.js scripts, as well as the dhtmlwindow.css CSS file (the two dhtmlwindow.* files are for the calibration feature):

  4. +
+
<script type="text/javascript" src="js/dhtmlwindow.js"></script>
+<script type="text/javascript" src="js/canvas.js"></script>
+<link rel="stylesheet" href="css/dhtmlwindow.css" type="text/css">
+
    +
  1. Add an onload="canvasinit()" to the <body> tag: <body onload="canvasinit()">

  2. +
  3. Add the following immediately after the <body> tag (this is for the calibration feature):

  4. +
+
<div id="dhtmlwindowholder"><span style="display:none"></span></div>
+
    +
  1. Add the following code at the end of the .html file (just before the three script tags):
  2. +
+
<div id="calibratediv" style="display:none">
+  <div id="calibratecanvasdiv">
+    <canvas id="calibratecanvas" width="300" height="300">Your
+            browser does not support the canvas tag</canvas>
+   </div>
+   <p style="text-align:center">Click the center of the target<br><a href="#" 
+       onClick="calibratewin.close(); return false">Close window</a></p>
+</div>
+
    +
  1. Then, on each slide that you want a canvas on, you add the following:
  2. +
+
<script type="text/javascript">insertCanvas();</script>
+

A few other notes:

+ +

License

+

The material in this repository is released under a Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA).

+

Copyright (c) 2017-2018 by Mark Floryan Copyright (c) 2013-2017 by Aaron Bloomfield.

+

Some parts of this repository are taken, with permission, from other sources. The full details are in the License (md) file. In particular, some parts of this repository that were obtained elsewhere can not be used for commercial purposes.

+ diff --git a/readme-old.md b/README.md similarity index 89% rename from readme-old.md rename to README.md index d38456c8c..c45bd6b16 100644 --- a/readme-old.md +++ b/README.md @@ -6,13 +6,13 @@ Program and Data Representation Introduction --------------------------------------- -This repository contains the materials for the course entitled "CS 2150: Program and Data Representation" in the [Computer Science Department](http://www.cs.virginia.edu) at the [University of Virginia](http://www.virginia.edu). It contains all of the slides, labs, exams, etc., used throughout the course. The course description is [below](#description). The github repository for this course is at [https://github.com/aaronbloomfield/pdr](https://github.com/aaronbloomfield/pdr). +This repository contains the materials for the course entitled "CS 2150: Program and Data Representation" in the [Computer Science Department](http://www.cs.virginia.edu) at the [University of Virginia](http://www.virginia.edu). It contains all of the slides, labs, exams, etc., used throughout the course. The course description is [below](#description). The github repository for this course is at [https://github.com/markfloryan/pdr](https://github.com/markfloryan/pdr). Students *currently* in the course should view the [uva/index.html](uva/index.html) ([md](uva/index.md)) file in the **cloned** repository (i.e., don't try to view it on github.com); current students may also want to view the [daily announcements](uva/daily-announcements.html#/). Note that many of the course materials are modified right before they are needed -- for example, this repository will be updated right before the semester starts. -Students who were previously in the course may want to view the current version, or you can view the version from your semester. All semester versions are tagged with an end-of-semester tag of the form "year-semester". For example, the spring 2014 semester was tagged as `2014-spring`. To obtain a specific tag, you can enter `git checkout tags/2014-spring` in an already cloned repository. +Students who were previously in the course may want to view the current version, or you can view the version from your semester. All semester versions are tagged with an end-of-semester tag of the form "year-semester". For example, the spring 2014 semester was tagged as `2014-spring`. To obtain a specific tag, you can enter `git checkout tags/2014-spring` in an already cloned repository. -The primary author is [Aaron Bloomfield](http://www.cs.virginia.edu/~asb) ([aaron@virginia.edu](), [\@bloomfieldaaron](http://twitter.com/bloomfieldaaron)). The spring 2016 semester was be the 20th consecutive semester I have taught the course, and the 7th semester using this github repo. +The primary author of this repository is [Mark Floryan](http://www.cs.virginia.edu/~mrf8t) ([mrf8t@cs.virginia.edu]()). This repository originally developed (and has been adapted from) a similar one by [Aaron Bloomfield](http://www.cs.virginia.edu/~asb) ([aaron@virginia.edu](). Many students and faculty have worked on this course material over the years. Repository Contents @@ -30,7 +30,7 @@ repository first** - [labs](labs/index.html) ([md](labs/index.md)): the labs are the main assignments in the course, and each lab is split into pre-lab, in-lab, and post-lab parts. There are 11 full labs, with a partial 12th lab that is an optional component of the course. The labs are written using [markdown](http://daringfireball.net/projects/markdown/), and the rendered HTML version of each lab is also committed to this repository. - [slides](slides/index.html) ([md](slides/index.md)): Contains the slides used in the course. The slides use [reveal.js](https://github.com/hakimel/reveal.js/), an HTML presentation framework. - [tutorials](tutorials/index.html) ([md](tutorials/index.md)): the tutorials that are used as part of the lab assignments, these are primarily Linux tutorials. -- [utils](utils/index.html) ([md](tutorials/index.md)): various utilities for this repository +- [utils](utils/index.html) ([md](utils/index.md)): various utilities for this repository Contributing to this Repository ---------------------------------------------------------- @@ -38,7 +38,7 @@ repository first** Updates to the repository are restricted to approved individuals only, to prevent anybody from messing with the slides right before a lecture. However, others can still contribute to this repository -- to do so, take the following steps: 1. Create a github account, if you do not have one -2. Fork this repository: you can click on the "Fork" link in the upper right, or just click [here](https://github.com/aaronbloomfield/pdr/fork) +2. Fork this repository: you can click on the "Fork" link in the upper right, or just click [here](https://github.com/markfloryan/pdr/fork) 3. Clone your forked repository on to your local machine 4. Make any changes you want to your forked version, then commit and push your changes back to your forked repository 5. Create a pull request, following the instructions [here](https://help.github.com/articles/creating-a-pull-request) @@ -75,7 +75,7 @@ Note that Github supports an enhanced version of Markdown, called [Github Flavor Source code ------------------------------------ -All source code is formatted via [astyle](http://astyle.sourceforge.net/) and then highlighted via [source-highlight](http://www.gnu.org/software/src-highlite/source-highlight.html). Both the original file (foo.cpp) and the highlighted version (foo.cpp.html) are included in the repository. All links to source code will like to the .html, with a "([src](readme-old.md))" after it to link to the original source code. +All source code is formatted via [astyle](http://astyle.sourceforge.net/) and then highlighted via [source-highlight](http://www.gnu.org/software/src-highlite/source-highlight.html). Both the original file (foo.cpp) and the highlighted version (foo.cpp.html) are included in the repository. All links to source code will like to the .html, with a "([src](README.md))" after it to link to the original source code. - astyle options: `-A2 -s4 -S` - source-highlight options: `-d` @@ -134,6 +134,7 @@ A few other notes: The material in this repository is released under a [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/) (CC BY-SA). -Copyright (c) 2013-2015 by Aaron Bloomfield. +Copyright (c) 2017-2018 by Mark Floryan +Copyright (c) 2013-2017 by Aaron Bloomfield. -Some parts of this repository are taken, with permission, from other sources. The full details are in the [License](LICENSE.html) ([md](LICENSE.md)) file. In particular, some parts of this repository that were obtained elsewhere can not be used for commercial purposes. +Some parts of this repository are taken, with permission, from other sources. The full details are in the [License](LICENSE.html) ([md](LICENSE.md)) file. In particular, some parts of this repository that were obtained elsewhere can not be used for commercial purposes. \ No newline at end of file diff --git a/readme-old.html b/readme-old.html deleted file mode 100644 index 50ef41a22..000000000 --- a/readme-old.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - Program and Data Representation - - - - -

Program and Data Representation

-

Introduction | Repository contents | Contributing to this repository | Course description | Markdown | Source code | Canvas notes | License

-

Introduction

-

This repository contains the materials for the course entitled "CS 2150: Program and Data Representation" in the Computer Science Department at the University of Virginia. It contains all of the slides, labs, exams, etc., used throughout the course. The course description is below. The github repository for this course is at https://github.com/aaronbloomfield/pdr.

-

Students currently in the course should view the uva/index.html (md) file in the cloned repository (i.e., don't try to view it on github.com); current students may also want to view the daily announcements. Note that many of the course materials are modified right before they are needed -- for example, this repository will be updated right before the semester starts.

-

Students who were previously in the course may want to view the current version, or you can view the version from your semester. All semester versions are tagged with an end-of-semester tag of the form "year-semester". For example, the spring 2014 semester was tagged as 2014-spring. To obtain a specific tag, you can enter git checkout tags/2014-spring in an already cloned repository.

-

The primary author is Aaron Bloomfield (, @bloomfieldaaron). The spring 2016 semester was be the 20th consecutive semester I have taught the course, and the 7th semester using this github repo.

-

Repository Contents

-

Note that the links below will not work correctly if you are viewing this online at github.com -- you will need to clone (download) the repository first

-
    -
  • book (md): the beginnings of a textbook to be used for this course. It is written using LaTeX.
  • -
  • docs (md): a series of useful documents that are not labs or tutorials.
  • -
  • uva (md): the materials that are specific to CS 2150 as taught at the University of Virginia, such as daily announcements, due dates, etc.
  • -
  • exams (md): past exams for the course; there are two midterms and a final for each semester.
  • -
  • ibcm (md): the files necessary for the IBCM module on machine language, which is taught about two thirds of the way into the course.
  • -
  • labs (md): the labs are the main assignments in the course, and each lab is split into pre-lab, in-lab, and post-lab parts. There are 11 full labs, with a partial 12th lab that is an optional component of the course. The labs are written using markdown, and the rendered HTML version of each lab is also committed to this repository.
  • -
  • slides (md): Contains the slides used in the course. The slides use reveal.js, an HTML presentation framework.
  • -
  • tutorials (md): the tutorials that are used as part of the lab assignments, these are primarily Linux tutorials.
  • -
  • utils (md): various utilities for this repository
  • -
-

Contributing to this Repository

-

Updates to the repository are restricted to approved individuals only, to prevent anybody from messing with the slides right before a lecture. However, others can still contribute to this repository -- to do so, take the following steps:

-
    -
  1. Create a github account, if you do not have one
  2. -
  3. Fork this repository: you can click on the "Fork" link in the upper right, or just click here
  4. -
  5. Clone your forked repository on to your local machine
  6. -
  7. Make any changes you want to your forked version, then commit and push your changes back to your forked repository
  8. -
  9. Create a pull request, following the instructions here
  10. -
-

At that point, I will receive a notice that a change has been submitted, and I'll look at it and hopefully accept it into the main repository.

-

When you want to bring in the updates from the main pdr github repository into your forked repository, you will need to follow the instructions here.

-

Course Description

-

This course is a second-year course for computer science majors. It is the primary data structures course in the University of Virginia's computer science curriculum. Unlike many other data structure courses at other institutions, it is intended as the third course in sequence, meaning that students are expected to have taken two semesters of Java (or equivalent, although some of the examples are specifically from Java). The course focuses on how programs and data are represented from the high level down to the low level. For programs, we examine (from high to low): abstract data types, Java code, C++ code, C code, assembly (x86) code, and a customized machine language. For data, we examine (also from high to low): abstract data types, objects, primitive types, and how numbers are encoded (both floats (IEEE 754) and integers (two's complement)). About two-thirds of this course is programming using C++. The remainder of this course uses other languages, including (in decreasing order): x86 assembly, IBCM (a machine language), C, Objective C, and shell scripting.

-

The ABET course objects are as follows:

-
    -
  • Understand program representation from the high-level programming language perspective down to the underlying machine level representation, including: number representation, operations, conditionals, and control structures
  • -
  • Be able to implement basic and advanced abstract data types in C++ including: linked lists, stacks, queues, hash tables, trees, and graphs
  • -
  • Be able to evaluate asymptotic time and space complexity analysis of programs and data structure implementations using Big-O, Big-Omega, and Big-Theta notation and assess the suitability of a data structure for a particular problem
  • -
  • Understand the basic program execution model and the underlying computer hardware and software (fetch-execute cycle, memory hierarchy, operating system, compiler)
  • -
  • Be able to implement basic program control and data structures in an assembly language (loops, conditionals, subroutines and parameter passing modes, arrays)
  • -
-

Markdown

-

The majority of the content in this repository was created using Markdown. Unfortunately, the only standardized Markdown is very old (2004), and has limited support for many HTML features, such as tables. In the past, there were custom utilities (which can still be found in the utils (md) directory) were used. However, pandoc is now used (which is installed via the "pandoc" package on Ubuntu). Typing make in the root repo directory will call pandoc on all the markdown files.

-

For all the Markdown files in this repository, both the original (.md) file and the HTML version (.html) are added to the repository, so that people who do not have Markdown installed can still view the contents of this repository.

-

Note that Github supports an enhanced version of Markdown, called Github Flavored Markdown, or GFM. This mostly pertains to this README file. In an effort to ensure compatibility with other Markdown programs (such as the one described here and what reveal.js uses), GFM specific features are generally avoided. One example is the use of anchors in this document -- the HTML tags are included instead of using GFM's version.

-

Source code

-

All source code is formatted via astyle and then highlighted via source-highlight. Both the original file (foo.cpp) and the highlighted version (foo.cpp.html) are included in the repository. All links to source code will like to the .html, with a "(src)" after it to link to the original source code.

-
    -
  • astyle options: -A2 -s4 -S
  • -
  • source-highlight options: -d
  • -
-

Canvas notes

-

Some of the slides allow pen-based markup of the slides. To add a canvas to a slide (to allow drawing with a mouse or a stylus), you must do a few things:

-
    -
  1. The slide can NOT be Markdown, it must be all pure HTML

  2. -
  3. Include the js/canvas.js and css/dhtmlwindow.js scripts, as well as the dhtmlwindow.css CSS file (the two dhtmlwindow.* files are for the calibration feature):

  4. -
-
<script type="text/javascript" src="js/dhtmlwindow.js"></script>
-<script type="text/javascript" src="js/canvas.js"></script>
-<link rel="stylesheet" href="css/dhtmlwindow.css" type="text/css">
-
    -
  1. Add an onload="canvasinit()" to the <body> tag: <body onload="canvasinit()">

  2. -
  3. Add the following immediately after the <body> tag (this is for the calibration feature):

  4. -
-
<div id="dhtmlwindowholder"><span style="display:none"></span></div>
-
    -
  1. Add the following code at the end of the .html file (just before the three script tags):
  2. -
-
<div id="calibratediv" style="display:none">
-  <div id="calibratecanvasdiv">
-    <canvas id="calibratecanvas" width="300" height="300">Your
-            browser does not support the canvas tag</canvas>
-   </div>
-   <p style="text-align:center">Click the center of the target<br><a href="#" 
-       onClick="calibratewin.close(); return false">Close window</a></p>
-</div>
-
    -
  1. Then, on each slide that you want a canvas on, you add the following:
  2. -
-
<script type="text/javascript">insertCanvas();</script>
-

A few other notes:

-
    -
  • The canvas is larger than the slide itself, and the amount, in number of pixels, is the canvas_border variable in the canvas.js file
  • -
  • To add colors, add them to the colors array in the canvas.js file; more color names can be found here
  • -
-

License

-

The material in this repository is released under a Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA).

-

Copyright (c) 2013-2015 by Aaron Bloomfield.

-

Some parts of this repository are taken, with permission, from other sources. The full details are in the License (md) file. In particular, some parts of this repository that were obtained elsewhere can not be used for commercial purposes.

- - diff --git a/readme.html b/readme.html deleted file mode 100644 index 01b6f5546..000000000 --- a/readme.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - Program and Data Representation - - - - -

Program and Data Representation

-

This is the OLD repository for the course CS 2150, Program and Data Representation, taught at the University of Virginia. I (Aaron Bloomfield) taught this class for 20 consecutive semesters, from the fall of 2007 to the spring of 2017; the last 7 of these semesters have their content in this repository.

-

The current repository for the course is markfloryan/pdr. This repository (aaronbloomfield/pdr) is no longer being updated.

-

If you want to see the final contents of the repo when I last taught this course (spring 2017), you can view them here (md). Again, the current iteration of this course can be found at markfloryan/pdr.

-

If you want to view a previous version of this repository, then you can view a tag from that semester. All tags are of the form 2014-spring. You can view the contents of a tag online (at a URL such as https://github.com/markfloryan/pdr/tree/2016-fall) or checkout a specific tag on the command line via a command such as git checkout tags/2016-fall.

- - diff --git a/readme.md b/readme.md deleted file mode 100644 index c7304f358..000000000 --- a/readme.md +++ /dev/null @@ -1,11 +0,0 @@ -Program and Data Representation -=============================== - -This is the **OLD** repository for the course CS 2150, Program and Data Representation, taught at the University of Virginia. I ([Aaron Bloomfield](http://www.cs.virginia.edu/~asb)) taught this class for 20 consecutive semesters, from the fall of 2007 to the spring of 2017; the last 7 of these semesters have their content in this repository. - -The current repository for the course is [markfloryan/pdr](https://github.com/markfloryan/pdr). This repository ([aaronbloomfield/pdr](https://github.com/aaronbloomfield/pdr)) is no longer being updated. - -If you want to see the final contents of the repo when I last taught this course (spring 2017), you can view them [here](readme-old.html) ([md](readme-old.md)). Again, the current iteration of this course can be found at [markfloryan/pdr](https://github.com/markfloryan/pdr). - -If you want to view a previous version of this repository, then you can view a tag from that semester. All tags are of the form `2014-spring`. You can view the contents of a tag online (at a URL such as [https://github.com/markfloryan/pdr/tree/2016-fall](https://github.com/markfloryan/pdr/tree/2016-fall)) or checkout a specific tag on the command line via a command such as `git checkout tags/2016-fall`. - diff --git a/slides/index.html b/slides/index.html index 82e64495f..90661cd0f 100644 --- a/slides/index.html +++ b/slides/index.html @@ -10,12 +10,13 @@

Program and Data Representation: Slides

-

Go up to the main README file (md)

-

Course Introduction (CS 2150 specific)

+

Go up to the main README file (md)

+

Course Introduction (version from Reiss's lectures (PDF)) (CS 2150 specific)

-

Slide set 1: C++

+

Slide set 1: C++ (version from Reiss's lectures (PDF))

-

Slide set 2: Lists

+

Slide set 2: Lists (version from Reiss's lectures (PDF))

-

Slide set 3: Numbers

+

Slide set 3: Numbers (version from Reiss's lectures (PDF))

-

Slide set 4: Arrays & Big-Oh

+

Slide set 4: Arrays & Big-Oh (version from Reiss's lectures: part 1 part 2)

-

Slide set 5: Trees

+

Slide set 5: Trees (version from Reiss's lectures (PDF))

-

Slide set 6: Hashes

+

Slide set 6: Hashes (version from Reiss's lectures (PDF))

-

Slide set 7: IBCM (machine language)

+

Slide set 7: IBCM (machine language) (version from Reiss's lectures (PDF))

Slide set 8: assembly language: in 32 bit and 64 bit flavors

-

Slide set 9: Advanced C++

+

Slide set 9: Advanced C++ (version from Reiss's lectures (PDF))

-

Slide set 10: Heaps and Huffman coding

+

Slide set 10: Heaps and Huffman coding (version from Reiss's lectures (PDF))

-

Slide set 11: Graphs

-

Slide set 12: Memory

+

Slide set 11: Graphs (version from Reiss's lectures (PDF))

+ +

Slide set 12: Memory (version from Reiss's lectures (PDF))

Slide set 13: Esoteric Programming Languages

Course Conclusion (CS 2150 specific)

+ diff --git a/uva/index.html b/uva/index.html index 1faf332b4..51b7812fd 100644 --- a/uva/index.html +++ b/uva/index.html @@ -10,8 +10,8 @@

Program and Data Representation: CS 2150 Specific Content

-

Spring 2017

-

Go up to the main README file (md)

+

Fall 2017

+

Go up to the main README file (md)

Much of the rest of this git repo is meant to be generic to anybody who has a class such as this one. But this page contains details specific to the CS 2150 version of the course at the University of Virginia.


@@ -22,9 +22,9 @@
  • These tools are: support requests, lab submission, regrades, gradebook, lab extensions, and the office hours queue
  • The announcements, which are posted to the CS 2150 twitter feed: @UVaCS2150
  • -
  • The CS 2150 Google calendar
  • +
  • The CS 2150 Google calendar
  • Grading guidelines, which are available in the Collab wiki (here is the direct link, although Collab login is required)
  • -
  • Email list archive, which is a Collab tool (here is the direct link, although Collab login is required)
  • +
  • Email list archive, which is a Collab tool (here is the direct link, although Collab login is required)
  • Piazza; Collab can log you in directly; the Collab tool link is here (again, Collab login required)
  • The parts of this course that are in this repo are:

    @@ -33,10 +33,9 @@
  • Course introduction slide set
  • Course syllabus (md): the course syllabus
  • Lab due dates (md): When the various lab parts are due
  • -
  • UNIX honor pledge, which needs to be signed by all the students in the course (it is created from a .tex file)
  • +
  • UNIX honor pledge, which needs to be signed by all the students in the course (it is created from a .tex file)
  • Generic review session slide set, which is really just a blank set of slides
  • Frivolous regrade policy (md) for exams
  • -
  • Course grade explanations (md)

  • Labs and Tutorials

    @@ -57,429 +56,9 @@

    Labs and Tutorials


    -

    Semester Schedule

    -

    The links in the right-most column link directly to the lecture recording on Collab, and you have to be logged into Collab first before the link will work. Some plugins (such as NoScript) will block that link from working.

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NumDateDay of weekLab & Tutorial (on Tue)Planned topicLecture 1 progress
    1Jan 18Wednesdayno lab this weekCourse introductioncourse intro, slides 1 to 5.4 (recording)
    2Jan 20FridayCourse introduction, 01: C++course intro, slides 6.1 to 7.2; C++, slides 1 to 4.15 (recording)
    3Jan 23MondayLab 1: Intro to C++ (md) / Tutorial 1: Intro to UNIX (md)01: C++C++, slides 5.1 to 7.9 (recording)
    4Jan 25Wednesday01: C++C++, slides 8.1 to 9.17 (recording)
    5Jan 27Friday01: C++C++, slides 9.17 to 10.14 (recording)
    6Jan 30MondayLab 2: Linked lists (md) / Tutorial 2: LLDB (md) OR Tutorial 2: GDB (md) (see lab 2 for which one to pick)01: C++C++, slides 10.15 to 12.10 (recording)
    7Feb 1Wednesday01: C++, 02: ListsC++, slides 12.11 to 13.14 (end); lists, slides 1 to 4.6 (recording)
    8Feb 3Friday02: Listslists, slides 5.1 to 7.2 (recording)
    9Feb 6MondayLab 3: Stacks (md) / Tutorial 3: More UNIX, part 1, introduction and sections 1-402: Lists, 03: Numberslists, slides 7.1 to 9.4 (end); numbers, slides 1 to 5.7 (recording)
    10Feb 8Wednesday03: Numbersnumbers, slides 5.7 to 8.9 (recording)
    11Feb 10Friday03: Numbersnumbers, slides 9.1 to 9.17 (recording)
    12Feb 13MondayLab 4: Numbers (md) / Tutorial 4: More UNIX, part 2, sections 5-803: Numbersnumbers, slides 9.17 to 9.35 (end) (recording)
    13Feb 15Wednesday04: Arrays & big-Oharrays & big-Oh, slides 1 to 5.6 (recording)
    14Feb 17Friday04: Arrays & big-Oharrays & big-Oh, slides 5.6 to 5.26 (recording)
    Feb 19SundayMidterm 1 review session
    15Feb 20MondayMidterm 1 instead during Tuesday's lab04: Arrays & big-Oh, 05: Treesarrays & big-Oh, slides 5.26 to 6.8 (end); trees, slides 1 to 4.16 (recording)
    16Feb 22Wednesday05: Treestrees, slides 5.1 to 7.10 (recording)
    17Feb 24Friday05: Treestrees, slides 7.10 to 8.5 (recording)
    18Feb 27MondayLab 5: Trees (md) / Tutorial 5: make (md)05: Treestrees, slides 8.3 to 8.12; hashes, slides 1 to 5.11 (recording)
    19Mar 1Wednesday05: Treeshashes, slides 5.11 to 7.4 (recording)
    20Mar 3Friday05: Trees, 06: Hasheshashes, slides 7.4 to 8.7 (end) (recording)
    Mar 6Monday(spring break)(spring break)
    Mar 8Wednesday(spring break)(spring break)
    Mar 10Friday(spring break)(spring break)
    21Mar 13MondayLab 6: Hashes (md) / Tutorial 6: Shell scripting, part 1,(part of this link; the specific sections are mentioned on the,tutorials page)06: HashesIBCM, slides 1 to 5.11 (recording)
    22Mar 15Wednesday06: HashesIBCM, slides 5.11 to 6.6 (recording)
    23Mar 17Friday06: Hashes, 07: IBCM (machine language)IBCM, slides 6.6 to 7.10 (end) (recording)
    24Mar 20MondayLab 7: IBCM (md) / Tutorial 7: Shell scripting, part 2,(remainder of here, as described on the tutorials page)07: IBCM (machine language)assembly, slides 1 to 5.3 (recording)
    25Mar 22Wednesday07: IBCM (machine language)assembly, slides 5.3 to 6.6 (recording)
    26Mar 24Friday08: Assembly (assembly language)assembly, slides 6.6 to 8.11 (recording)
    27Mar 27MondayLab 8: assembly, part 1 (md) / Tutorial 8: see the,information on the tutorials page,(md)08: Assembly (assembly language)assembly, slides 8.11 to 10.9 (recording)
    28Mar 29Wednesday08: Assembly (assembly language)assembly, slides 10.5 to 10.31 (recording)
    29Mar 31Friday08: Assembly (assembly language)assembly, slides 10.31 to 10.33 (end); 05: Trees, slides 9.1 to 10.10 (recording)
    Apr 2SundayMidterm 2 review session
    30Apr 3MondayMidterm 2 instead during Tuesday's lab08: Assembly, 09: Advanced C++advanced C++, slides 1 to 5.9 (recording)
    31Apr 5Wednesday09: Advanced C++advanced C++, slides 6.1 to 6.22 (recording)
    32Apr 7Friday09: Advanced C++, 10: Heaps and Huffman codingadvanced C++, slides 7.1 to 8.12 (end) (recording)
    33Apr 10MondayLab 9: assembly, part 2 (md) / Tutorial 9: C (md)10: Heaps and Huffman codingheaps & Huffman coding, slides 1 to 6.7 (recording)
    34Apr 12Wednesday10: Heaps and Huffman codingheaps & Huffman coding, slides 6.8 to 8.4 (recording)
    35Apr 14Friday10: Heaps and Huffman codingheaps & Huffman coding, slides 8.4 to 8.31 (recording)
    36Apr 17MondayLab 10: Huffman coding (md) / (no tutorial)10: Heaps and Huffman coding, 11: Graphsheaps & Huffman coding, slides 9.1 to 9.9 (end); graphs, slides 1 to 5.3 (recording)
    37Apr 19Wednesday11: Graphsgraphs, slides 5.3 to 6.9 (recording)
    38Apr 21Friday11: Graphsgraphs, slides 6.9 to 7.6 (recording)
    39Apr 24MondayLab 11: Graphs (md)11: Graphsgraphs, slides 8.1 to 9.11 (recording)
    40Apr 26Wednesday12: Memorygraphs, slides 9.10 to 9.15 (end); memory, slides 1 to 4.9 (recording)
    41Apr 28Friday12: Memorymemory, slides 4.9 to 5.19 (end) (recording)
    42May 1MondayLab 12: Objective C (md)13: Esoteric PLs, Course conclusionesoteric PLs, slides 1 to 6.13 (end); course conclusion, slides 1 to 12 (end) (recording)
    May 4WednesdayFinal exam review session
    May 6SaturdayFinal exam from 7:00 p.m. - 10:00 p.m. in CHM 402Final exam from 7:00 p.m. - 10:00 p.m. in CHM 402
    -

    Recording notes

    -

    None yet!

    -

    Grading Concerns

      -
    • Both exam 1 and exam 2 will have a 10 percentage point curve. Rather than modify the exam grades themselves, the end-of-the-semester cut-offs for the various letter grades will be lowerd by an equivalent amount
    • -
    • See the Grading Explanations, Spring 2017 (md) for details
    • +
    • None yet!