CSC 150 2009F ; Accelerated Introduction to Computer Science

Welcome!

Welcome to the web site for the Fall 2009 term of CSC 150, Accelerated Introduction to Computer Science.

This course builds on your programming experience in any programming language, to discuss object-oriented programming, program design, recursion, data structures, program efficiency and more.

CSC 150 is an alternative to CSC 148, if (and only if) you have not and are not taking CSC 108 (or transfer credit equivalent). Both courses end up covering the same programming concepts. (In particular, former CSC 120 students should consider either.)

Unlike CSC 148, this course does not rely on familiarity with object-based programming (commonly learned with Java, OOTuring, Python, and some approaches to C++, C# or VB).

Since there is a wider variety of programming language and paradigm backgrounds among CSC 150 students (e.g. the Arts and Science Calendar mentions Turing and Scheme, as not typically used to teach new programmers via objects) the course gets less benefit from using the same language as CSC 108 (which CSC 148 does), and is freer to use programming languages more suited to covering the CSC 148 concepts right away.

It takes some time to address the diverse audience of CSC 150 and develop a common base, so CSC 150 has three lecture hours per week instead of the two that CSC 148 has. It is only faster paced, to develop the common base and then cover CSC 148 concepts, not harder nor deeper.

Prerequisites

A quick test of enough programming experience: given a description (in a human language) of a way to sort a list/array/sequence/etc of numbers, you can write a function/method/procedure to do it that way. Conversely, given someone's function/method/procedure printout without comments, meaningful variable names, etc, you can trace by hand the exact order the statements are executed in and the values of all variables at each step.

In particular, you do not program by copying examples and filddling with the text until it runs correctly.

You understand a programming language independently of its syntax (textual notation): you can take your code (or someone else's in that programming language) and write out a line by line human description of each smallest step it does, without using any of the programming language's notation.

The Arts and Science Calendar mentions some more concepts:


Prerequisite: MHF4U(advanced functions)/MCV4U(calculus and vectors). Students should thoroughly understand arrays, searching, sorting, functions/procedures/subprograms, arguments and parameters, and modular design.


The high-school math prerequisites are not enforced, but they refer to a certain level of precise abstract thinking that math and CS share.

Choosing CSC 150 as Your First UofT Programming Course to Major in Computer Science

You have various choices from CSC 108, 148 and 150.
(Note that Instructors can waive preprequisite courses, e.g. a CSC 148 Instructor often waives the CSC 108 prerequisite, but exclusions are mandatory and the Faculty of Arts and Science will eventually unenrol students from excluded courses without any refund.)

CSC 108, then CSC 148

You have little or no programming experience. After, take CSC 148 to continue with Computer Science.

If you have some programming experience but don't feel ready for CSC 148/150, there is also a "Compressed" section of CSC 108 this fall, section L0101, with only 2 lectures per week (MW 10) instead of 3: it covers exactly the same material of CSC 108, with the same assignments and exam, but with each lecture 50% faster paced so you are less bored.

CSC 148 only

You have passed CSC 108 (or have transfer credit equivalent), or have developed strong programming skills without those courses including some object-oriented programming skill in Python or Java or C++ or C# or ....

CSC 150 only, in the Fall term

You have strong programming skills, but little or no object-oriented experience.

You haven't and aren't taking CSC 108, 148, nor have a transfer credit for one of them.
From the Arts and Science Calendar: "Exclusion: CSC107H1, CSC108H1, 139H1, CSC148H1, 149H1; you may not take this course after taking more than two CSC courses at the 200-level or higher".
So students with a CSC 108 transfer credit have to take CSC 148, and may have to do some preparation and catch up before and during CSC 148.

Though recommended, taking CSC 165 or 240 while taking CSC 150 is not required.

Once again: CSC 150 is meant to be a combination of the concepts from some of CSC 108 and all of CSC 148, adapted to a certain diverse audience. So it requires an accelerated pace to complete in the same time as CSC 148. Your options here are based on background, not interest and ability. This is different than the relationship between, and options for, CSC 165, 236 and 240.

To get a better feel for these courses you are welcome to attend any of their lectures (space-permitting) during the first week before the course add deadline. Feel free to talk to the various instructors about which course to choose, or consult the CS Undergraduate Office.

In addition, if you enrol in CSC 148 or 150 you have until October 9 Friday to decide to switch from CSC 148/150 to CSC 108. If you decide to switch, see your College for details and contact the CSC 108 instructor to find out how your missed CSC 108 work will be handled (your marks in CSC 148/150 will then not be used).

Contact me if you are unsure of which choice is right for you.

Enrolment

The Faculty of Arts and Science, through ROSI (Repository of Student Information) and your College Registrar, handle all enrolment scheduling and procedures (and override anything I as an Instructor might say about it). According to them:

Last day to add this course: September 15 Tuesday.
Last day to drop this course: November 3 Tuesday.

Last day to drop down to CSC 108 (through your college): October 9 Friday
— according to the Registration Handbook and Timetable, not the Course Calendar which has the wrong date; I asked Arts and Science, but don't let this make you think my word overrides anything else about enrolment procedures they say :)#.

Marking Scheme

Assignments: 4 x 10% = 40%.
Due (postponed to) Monday October 5; Wed Oct 21, Nov 11, Dec 2 @ 6PM.
Midterm Tests: 2 x 10% = 20% ; Also, to pass this course you must achieve a combined average of at least 35% on the tests.
Wed Oct 7 and Nov 18, 10:10–11:00.
Possibly in a special room, to be announced.
Final Exam: 40% ; Also, to pass the course you must achieve a mark of at least 35% on the exam.
In Exam period Dec 9–18, at specific time and location arranged and announced by the Faculty of Arts and Science; 3 hours.

Related UofT Sites

Computer Science Undergraduate Office (UGO):

The Undergraduate Office in the Department of Computer Science is your first stop for all matters relating to Computer Science at UofT. Our Student Counsellors are knowledgeable and enjoy helping students. You don't need an appointment — just drop in.

Computer Science Student Union (CSSU): get involved with your fellow CS Undergraduate students.

Writing Help: writing is an important component of Computer Science.
A good program, proof or specification is a complete and precise essay in an extended language.