Instructor: Odelia Schwartz (odelia at cs dot miami dot edu)
TA: Brian Manolovitz (bmm157 at miami dot edu)
CSC401 is the practicum associated with CSC317.
CSC317 is a course on algorithmic thinking. The CSC317 mainline in the course does not require programming. Students can further enroll in the Practicum (CSC401), for experience coding algorithms, and for the experience of using dynamic HTML and Javascript to create imaginative animations of the algorithms presented in the course. The Practicum is a one-credit course; its format is self study and there are no formal lectures assigned. We are available to meet in person for any questions. We will also point you to relevant references, and include some example code alongside the assignments that will help you get started. Unlike the main course which has a problem set assigned every week, the Practicum will include a smaller set of programming assignments.
Preliminaries: We will send email by the end of the second week of class to
students who have signed up for the Practicum. You will then:
- Set up your account, using the instructions that were sent to you by email.
First, arrange your index.html (in your public_html directory) to make a home page for the practicum that will link to the projects.
- NOTE: You can view your web page at http://web.cs.miami.edu/home/ID
(use the ID we gave you via email).
Please create a directory project1 from your public_html directory. Then from your index.html file in your public_html directory, make a link to project1.
For instance, you can use the following type of html code:
<a href="project1/index.html" target="_blank">Project1</a>
-
For learning about DHTML, CSS, and Javascript, see references below.
Projects:
-
Project 1: Preliminaries of Javascript and HTML: Due September 26, 2019.
(a). Look at Enter Name.
Make a webpage like Enter Name using Javascript, except that the user can interactively
choose from several different greetings of your choice (e.g., by selecting
from a list of options).
(b). Look at Number Build.
Make a webpage like Number Build using Javascript, except that if a user marks the
numbers summing to the year that University of Miami was founded, then the program displays
a photo of the campus (of your choice).
Place the files under public_html in your home directory.
-
Project 2: Due October 24 2019.
Do an algorithm animation of Randomize-In-Place (see pseudocode in CLRS book, Chapter 5, p 126). The algorithm should display the pseudocode and line by line highlighting through the code, along with the resulting array. Test your algorithm to see that it works as you expect it to. For an example of a algorithm animation (which is different than the above assignment, but shows a full example of implementing an animation of another algorithm we learned in class), see Partition Algorithm Animation: (http://www.cs.miami.edu/~burt/learning/Csc517.101/workbook/partition.html). Feel free to modify the style of your animation to your liking.
-
Project 3: Posted Oct 27, 2019; Due Dec 3, 2019.
Implement a double hashing animation.
See linear probing example:
http://www.cs.miami.edu/home/burt/learning/Csc517.101/workbook/hashing_linear.html
Make the table size 16. Set the first hash function as: key mod 16; and the second hash function as: 2 (key mod 4) + 1. Try to illustrate the collisions and skips to new slots in the table.
Recall: In double hashing, the slot is determined by (H1 + i H2) mod 16, in which H1 is the first hash function and H2 is the second hash function. Here i multiplies H2, and initially i is set to 0; then if there is a collision we set i to 1; then if there is still a collision we set i to 2; and so on.
Some references:
Annotated DHTML
Annotated DHTML as source
Five Easy Pieces (including HTML, CSS, and Javascript examples)
Web Commerce course
|