CSCA48: Course Webpage

Overview

Welcome to CSCA48! This is an Introduction to Computer Science II at UTSC. This course builds on the skills covered in CSCA08 (Introduction to Computer Science I) to help you learn fundamental topics in Computer Science.

The primary keys to success in this course are:

Here is the course information sheet, which contains the course policies.

Contact Information

Instructors: Anna Bretscher Brian Harrington
Email: bretscher [at] utsc.utoronto.ca brian [dot] harrington [at] utsc.utoronto.ca
Office: IC493 IC342

Announcements

2015-05-15: Office Hours Change & Review Session
The office hours for this week have changed, and we have posted details for a review session, check the link on the navigation bar for more details

2015-04-14: Pre-exam office hours
Anna will be holding pre-exam office hours on Wednesday and Friday from 12-1:30pm
Brian will be holding pre-exam office hours on Wednesday and Friday from 1:30-3:00pm

2015-04-03: Ex11 deadline moved and copy method added
Since people are probably too busy finishing off their A2, we've extended the deadline for ex11 until Sunday, just to take some of the pressure off. Also, as someone posted out on the forum, since the container will be mutable, if we pass it as a parameter into our recursive calls, it will be changed if those calls return False and we have to move on to the next option. So we will add a copy() method, which returns an exact copy of the container that you can use for your various recursive calls.

2015-04-03: Mis-named classes
Several people have very minor mistakes in their A1 submission that repeat many times, such as misnaming a class. But since it occurs in many places, they can't just replace using the special re-mark request form. You may want to try out the following code:

class multiset():
   def __init__(self):
     print("Hey... I didn't crash!")

MultiSet = multiset #aliasing the correct term to point to my mis-named class

my_ms = MultiSet()

2015-03-30: regex_match clarification
I think I may have accidentally posted incorrect information on Piazza, so I want to make a post to clarify: in A2 for regex_match, the string is a string that you are testing against a tree... so a call to regex_match might look something like this:

>>> regex_match(DotTree(StarTree(Leaf('1')), Leaf('0')), '111110')
True

2015-03-30: Special Remark Requests
All special remark requests (details in pinned Piazza post) for A1 are due by April 5th

2015-03-30: CR/NCR confusion for CMS students
I have posted a note in Piazza trying to clarify some of the confusion around the dean's messages regarding CR/NCR options for this term with respect to the strike. The short version is that you cannot CR/NCR any course that will be a program requirement for any CS/Math/Stats program.

2015-03-30: Ex11 clarification on container class
To make everyone's life easier for ex11, I just wanted to simplify how the container class will work. The only code in your ex11 file should be your banana_game function and the statement from container import *

Our container class and exceptions will be inside a file called container.py, and the class will be called Container.

2015-03-28: Previous Exam, Exam review and Tutorial Schedule
The TAs are back, and ready to roll. So we will be going back to our previous tutorial/practical schedule as of Monday. I have posted last year's final exam in the "Tests" section, and the final tutorial will spend much of the time going over this. There will also be a quiz in said tutorial (in fact 2... you'll see when you get there).

2015-03-26: Welcome Back TAs
It appears that the TAs have agreed to binding arbitration, so we will have our TAs back (and we won't have to go with our plan of exam grading via rock-paper-scissors). We will stick with the special office hours for tomorrow (March 27th), but starting on Monday we will go back to our regular schedule of tutorials/practicals.

2015-03-25: Leaf class added to regextree.py
For A2, I have updated regextree.py to include a Leaf class, which really should've been there in the first place.

2015-03-23: Strike continues, so do special office hours
As you've probably heard, the CUPE members voted not to ratify the agreement, and thus remain on strike. We will continue with the special office hours as posted, and this week's quiz will be take-home once again. Just a reminder that the special office hours can be very helpful, and are meant to replace the practical sessions (as well as the tutorials to some extent). Please take advantage of them.

2015-03-22: Waiting on a strike update: Monday Tutorials
It's 11:30, and still no word on the strike. So if you have a Monday tutorial, my advice would be to assume it will be on until you hear otherwise (hopefully we'll know by morning). There will be a quiz in this week's tutorials if they're held, so you should plan on attending. If the vote is a no and the strike continues, we will continue with our schedule of special office hours.

2015-03-16: Take home quizzes
Starting this week, we will be posting quizzes as "take home quizzes", available on the Assignments/Exercises page. These quizzes can be dropped off in the drop-box on the 4th floor of the IC building, or submitted to MarkUs in PDF format by 4:00pm Mondays. These quizzes will take the place of the in-tutorial quizzes.

2015-03-09: Moved office hours today
Due to a departmental meeting at 3:00pm today, Brian's office hours will be from 1-3pm instead of 2-4 as usual

2015-03-05: Due Date for A1 Changed
Due to a technical glitch, (and not at all because Anna and Brian are big softies), the due date and time for A1 have changed to 11:55pm on Sunday evening.

2015-03-03: Change of schedule during the strike
Until further notice Tutorials and Practicals have been cancelled. In lieu of those sessions, we will be holding special "extra" office hours spread throughout the week. These sessions are not mandatory, but instead run much like the practical sessions, they are drop in, for getting help on either exercises or course material. Please check the schedule (linked under "Special Office Hours") on the menu. (The schedule is still being finalized, so check back regularly).

2015-03-01: Information Regarding the Strike
First off, I'd like to apologize to everyone for the confusion surrounding the strike and its implications for the course. Since the strike was averted on Friday only to be re-introduced on Saturday there is a lot of mixed messaging about what will happen, and until we can get the entire department in a room together on Monday morning, things will continue to be confused (and most likely beyond then as well).

Here's what we can tell you (all information here pertains to CSCA48 only, please do not assume that the same rules will follow for your other courses):

We will try to keep you updated as regularly as possible, and we will be making an extra effort to be available for office hours and on Piazza. Please keep checking the course page and Piazza regularly for updated information.

2015-02-27: Ex6 Extension
We have decided to extend the ex6 deadline until Sunday because... reasons. You will still see your Friday automarker run in your repo.

2015-02-23: Makeup Midterm
The makeup midterm for those who could not attend the midterm for medical reasons will be held on Friday February 27th from 3-5pm in IC200. Please bring your illness verification form with you to the midterm.

2015-02-20: Ex6 Updated
I have just updated the handout for exercise 6, a few clarifications, and in particular, the names of the links were updated. Please make sure your code conforms to the new version of the handout.

2015-02-19: Midterm Marks - Replacement with Final Exam Mark
The midterm marks are now available on MarkUs. Any student whose final exam mark exceeds their midterm mark will automatically have their final exam mark replace their midterm mark.

2015-02-07: Small typo in Ex5
There was a small typo in Ex5. In the hard version of subsequence, you should be returning the list of indices of s2 you need to delete in order to make s1, not the other way around. (Since this one isn't being marked, it doesn't really matter, but this way makes more sense in terms of compatibility with the easy version).

2015-01-31: Ex3 Extension
Markus was asking for the wrong file name when the exercise was first posted. So some people could have submitted before and not noticed the change. Therefore in the interest of fairness, we will be extending the deadline for Ex3 until Sunday at 4:00pm.

2015-01-28: Brian Missing Office Hours Today
I've just had to go pick my daughter up from school (flu bug). So I will be unable to attend today's office hours. I will be available by e-mail. My apologies for any inconvenience.

2015-01-24: Ex3 renaming of functions
The use of the names sum and max for functions in ex3 is causing some confusion because there are built-in functions with the same names. So I have updated the handout, and we will instead use the names rsum and rmax. You should not be using the built in functions in your own code.

2015-01-21: Ex1 extension
Due to technical difficulties with some students being unable to log into MarkUs. We have extended the deadline for Exercise 1 submissions to this Friday. (So Ex1 and Ex2 will be due at the same time). Everyone should be able to log into MarkUs now.

2015-01-18: Typo in EX2 handout
There was a minor typo in the handout for EX2. (called the exception classes by the wrong name). Please make sure you download the updated version.