**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.

- 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.

- Practice
- 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 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.