CS 500 final
For course - CS 500.
Contents
Spring 2023
Canvas Quizzes
Can be retaken during the following 2 hour slot: fill out your availability (all times that would work for you) here - https://www.when2meet.com/?19899056-MiyJ7 and put your cs500xy login as your name.
Final Exam
This will be proctored during our 2 hour final exam slot, Friday May 5 from 10-11:50am. If you are in the face to face section of the course you are required to take this face to face.
Data structures code
- C code from class/assignments for these - arraystack, linkedlist, hashtable, binarytree
- For each, you will be asked to write a function that does something slightly different than we have already done. You should be able to write functions that search through the data structures, and should be familiar with the code we did in class.
- Examples: compute the total in the data structure, print all items that match some parameters, initialize an empty data structure and insert all items that match some parameters.
Basic C code
- Things we have used repeatedly - reading input line by line, scanf'ing input a word at a time, dealing with arrays.
- You will be asked to write some code that does something similar to these.
- Examples: given an array of integers find the largest and smallest, copy all positive floats in an array to a new malloc'ed array, copy all alpha characters from a string to a new string, test an array of strings to see whether they are all digits, read from a file and print each line in reverse order, read words from stdin until "quit" is read, free malloc'ed memory from an array of strings, take some 2d arrays of floats and print out their sum.
Data structures analysis
- Data structures we have studied - unsorted arrays, sorted arrays, singly linked list, doubly linked list, stack, queue, hash table, binary search tree.
- Sorting algorithms we have studied - bubble, insertion, selection, merge, quick, heap.
- For each, you should know what they are good and bad for. You should be able to choose between them given a potential task, and justify your answer.
- Examples: explain the pros and cons of the following two data structures (at least one thing that is better about each); give an analysis of the total running time to perform m operations on the following data structure, assuming half are inserts and half are deletes; choose the best data structure to use in the following situation and justify your answer (e.g., logging data that needs to be saved just in case but is not likely to be used much).
Total length: best students in the class finish in 60-90 minutes, worst students in the class get what you can correct and will not finish everything.
Fall 2022
Final exam
- Canvas quizzes - all taken during our 2 hour final exam slot (in the classroom for those in the face to face section), Wednesday Dec 7 from 10am-noon. If you are in the face to face section and want to take it remotely, you need to ask for permission. If you are in either section and want to take it at a different time, you need to ask for permission. Practice quizzes will be at the bottom here - https://indstate.instructure.com/courses/12565/quizzes
- Previous quizzes: C operators, C keywords, C errors, data structures.
- New since then: graphs, sorting, big O / asymptotics, C standard library, math and bases, miscellaneous math.
- See the practice quizzes here - https://indstate.instructure.com/courses/12565/quizzes. Note that I still need to add practice quizzes for sorting and the C standard library; that is TBD depending on when I get those in.
- You only need to take canvas quizzes that you still need to "pass" (get 80% or 90%, depending on what grade level you are working towards).
- Interview - I will ask you questions based off what you need to complete the grade levels (see bottom of this page). Interview scheduling will be in 15 minute blocks, and you will be able to schedule multiple of them (on different days if you want). Use my regular scheduling link - https://cs.indstate.edu/scheduler
Final letter grade
Note - I will continue to adjust these as I get more grades in.
CS 500 final letter grade
- canvas quiz: stand-alone quiz, mid-term part, or final part
- C programs need a pass rating (2/2 or 1/1 for HW, 80%+ for midterm/final problems), and need a given number of them passed (e.g., need at least 3 loops programs for the C level)
- +/- on letter grade will be determined within each level based on how close to the next level you are
- Items in italics have not had any grades yet, so will be included once there are some graded items. h4, h5 will still be graded again, so it is possible to still get some of those correct. All of the quizzes that are needed by people will be available for the final exam.
C level: can move on to the next course(s)
- canvas quizzes: C operators, C keywords, C errors, data structures
- quizzes minimum: 80%
- C programs: loops (3), conditional logic (3), command line arguments (2), read from stdin/file - lines (1)
B level: you are "ok" to move on
- canvas quizzes: graphs,
sorting, big O asymptotics, C standard library - quizzes minimum: 80%
- C programs: read from stdin/file - ints (1), strings (1); ArrayStack (2), DLList (1), ChainedHashTable (?)
A level:
- canvas quizzes: math and bases, miscellaneous math
- quizzes minimum: 90% (including all the quizzes at the C and B levels)
- C programs: BST (?), sorting algorithm (?)
HW assignments
Last day for counting these - Dec 11.