Problem-based Introduction to Computer Science, Section 02
The main course webpage is at  
http://www.cs.rit.edu/~vcss241/.
Instructor: Ivona Bezakova (email)
Section meets: Tu/Th/Fr 2-3:50pm, room 70-3435
Tutoring/mentoring center: open almost all the time - check the schedule on their door
Office hours: Mo 10-12pm, Th 3-3:45pm, and Fr 3-4pm, office 70-3645
I will use this webpage for announcements and material specific to our section.
Please check the main webpage (see link above) for syllabus, schedule, etc.
Materials:
- Week 1: slides and square.py (the Python code for drawing squares).
- Week 2: slides, the implementations of the problems Hypnotized and Circle can be found
here (we were playing with the Hypnotized code, we called it spiral - I posted several of the versions
we wrote in class).
- Week 3: slides, the implementations of the fruitful functions problems and the Tree problem
can be found here. I hoped to have more time for the Koch snowflake than we did as it is a beautiful problem.
I strongly recommend you to: a) read the notes before the lab, b) download the code and play with it, c) ask the SI a lot of questions during
the SI session.
- Week 4: slides, the implementations (from class) of the reverse function, and the functions
for hiding information can be found here. Try: implement the length function on your own,
play with the other implementations, create your own filtering function to use for filtering text (I included one more
example function, called myLittleFncA, for illustration that any function can be passed as the function parameter).
- Week 6: slides, the implementations (from class) of the shift encryption and the greedy change function
can be found here. Think: a) Does the greedy change algorithm work for any coin values? b) How many steps does the
greedy change algorithm need?
- Week 7: slides, the implementations (from class) of the Insertion Sort and the Binary Search
can be found here. (I tried to reconstruct the notes from the board and from the powerpoint after it crashed so the slides should be complete.)
- Week 8: slides, the implementations (from class) of the search and traversal
can be found here.
- Week 9: slides, the depth-first search implementation from class can be found here.
- Week 10: slides, please check also the final exam information that will appear below soon.
Midterm information::
- Pen and paper: Tuesday, Oct 6, 2-3:50pm, in class
- Practice
- reading and writing pseudo code (more detailed, e.g. like in weeks 2 and 3),
- drawing stack trace diagrams - see the example from class, do not forget to include: input parameters for every frame,
the return of the flow control (i.e. which frame gets control after a frame finishes its execution), and
produce the screen output as you are going through the stack trace diagram,
- test cases, including concrete values to test with, and
- reading Python code.
- Read through the posted lecture notes,
assigned readings in the book, materials posted on this site, the homework and lab assignments, and
your notes from class.
- Go through the homework and lab problems on your own, do the same with the problems from the SI sessions.
- There's plenty of available help: instructor's office hours, the SI (Paul), the SLIs (Jason and Glenn), other SLIs in the tutoring center.
- This portion of the exam is closed books and notes.
- You can expect roughly one problem from every week, and a problem with multiple choice answers, mostly about Python syntax.
One or two problems will be lab-like, i.e. you'll be given a problem (simpler than in the labs) and you'll be asked
to provide pseudo code, stack frame diagram, the output, and test cases.
Some problems will ask you to read a pseudo code and draw the output, possibly including the stack trace diagram.
At most one problem will be about strings, of similar difficulty as the length and reverse problems.
- Computers: Thursday, Oct 8, the Thursday-lab group takes the test 2-2:50pm, the Friday-lab group
takes the test 3-3:50pm.
- In the first task, you'll be given a pseudo code and you'll be asked to implement it.
The second task will specify a minor modification to the code that you will implement without having a pseudo code.
- This part of the exam is open book and lecture notes - feel free to bring the book and printouts of
the lecture notes (not the Python code), and you'll be allowed to access the Turtle manual page as well.
- Submission is through MyCourses so make sure that you a) submit on time, and b) get an e-mail receipt of the submission.
- The second group (that takes the exam at 3pm) is not allowed to walk along the corridor next to ICL5 and ICL6.
- The first group needs to stay until the end to avoid meeting the second group
(bring something to do in case you plan to finish early).
- You may work on your own laptops. The only software allowed to be actively open is (a) Python IDLE, and (b) a web browser
with the lecture notes, Turtle manual website, MyCourses at the time of the submission and a brief skim through
your e-mailbox to make sure that the submission was recorded properly.
Final exam information::
- Final exam takes place on Tuesday, Nov 17, 2:45-4:45pm, in 70-3435
- Format will be similar to the written portion of the midterm exam.
- Specific topics include:
- functions, with and without parameters, with return values
- recursion, single recursive call, multiple recursive calls
- strings and reading from a textfile, operations on strings
- lists, operations on lists
- loops: for and while
- searching (linear, binary), sorting (insert, bubble)
- trees: search and traversal
- graphs: adjacency lists, depth-first search
- time complexity
- The exam will contain some multiple-choice questions, some questions that ask you to trace a code
(stack frame diagrams), some lab-like problems where you will need to develop the pseudo code and test cases,
and possibly some pseudo code problems where you will be asked to find an error with the pseudo code.
- Sample problems: check the slides from week 10 and Paul's review materials.
- Please recall that the exam cannot be made up except for real emergencies in which case a
proof (e.g. a doctor's note) will be required. The only exception to this rule is if you are suffering from H1N1
and do not have a doctor's note: notify the instructor immediately by e-mail, definitely *before* the exam.
- Good luck with your exams.