York University

CSE 1020: Introduction to COSC I

Fall 2011

Department of Computer Science and Engineering

Home

Online Forum

Weekly Calendar

Course Syllabus

Course Policies

Assessment

Important Links

Lectures

Test and Lab Solutions

Practice Questions

TA Hours



York University

Course Syllabus

Lectures of Section A

Time:   Wednesdays, 19:00-22:00
Location:   Curtis Lecture Hall H
Instructor:   Burton Ma
Office Hours:   Thursdays, 4:30-6:00PM in CSEB1012J, and 6:00-7:30PM in the Section A labs

Labs for Section A

Lab 01:  Thursdays, 18:00-19:30 in CSEB 1002, 1004 and 1006
Lab 02:  Thursdays, 16:30-18:00 in CSEB 1004 CURRENTLY NOT USED

Lectures of Section E

Time:   Mondays, Wednesdays and Fridays, 10:30-11:30
Location:   Curtis Lecture Hall E
Instructor:   Burton Ma
Office Hours:   Mondays, 2:00-4:30PM in CSEB 1012J and Wednesdays in the Section E labs

Labs for Section E

Lab 01:  Wednesdays, 14:30-16:00 in CSEB 1002 and 1006
Lab 02:  Wednesdays, 17:00-18:30 in CSEB 1002 and 1006

Students should attend the labs for which they are registered (to avoid having insufficient computers for students to write the tests).

Description

Many processes can be viewed as a sequence of interactions between a client who requests a service and an implementer who provides it. The concerns of these two parties, albeit complementary, are completely separate because one deals with the "what" while the other deals with the "how". It is widely recognized that separating these concerns leads to reliable, scalable, and maintainable software. Based on this, CSE1020 deals exclusively with the client who needs to be able to look for services; read their API (Application Programming Interface) specifications; create programs that use them; and determine if they are operating correctly relative to their specifications. Topics include delegation and contracts, encapsulation and APIs, aggregation and the collections framework, and inheritance and polymorphism. The course emphasizes the software development process and introduces elements of UML (Unified Modelling Language) and software engineering.

The course uses the Java programming language throughout. Its assessment is based on a combination of programming tests and written tests. The two components have approximately equal weights and are intended to measure the student's understanding of theoretical concepts and ability to build applications.

This course is an introduction to the discipline; it is not a survey course. As such the emphasis is on the development of a theoretical conceptual foundation and the acquisition of the intellectual and practical skills required for further courses in computer science. The course is intended for prospective computer science and computer engineering majors, i.e. those with a well-developed interest in computing as an academic field of study and with strong mathematical, analytical and language abilities; it is not intended for those who seek a quick exposure to applications or programming (for this purpose any of CSE1520, CSE1530 or CSE1540 would be more appropriate).

The work for this course includes a substantial number of exercises that require problem analysis, program preparation, testing, analysis of results, and documentation and submission of written reports. The course is demanding in terms of time, and requires the student to put in many hours of work per week outside of lectures.

Students will benefit if they have prior practical experience with programming as well as using a computer. Students who wish to take a one-course exposure to the practical aspects of computing should consider enrolling in CSE1520 and CSE1530 instead.

Prerequisites

One of the following three requirements must be met:
  • (New high school curriculum): Two 4U Math courses including MHF4U (Advanced Functions), with no grade below 65%.
  • Completion of 6.0 credits from York University MATH courses (not including AK/MATH1710 or courses with second digit 5) with a grade average of 5.0 (C+) or better over these credits;
  • Completion of AK/MATH1710, or 6.0 credits from York University mathematics courses whose second digit is 5, with an average grade not below 7.0 (B+).
Strongly Recommended: Previous programming experience; for example, a high school programming course or CSE1530.
Course Credit Exclusion: AP/ITEC1620.

Required Textbook

Hamzeh Roumani. Java By Abstraction: A Client-View Approach. Third edition, 2010. Pearson Learning Solutions.

A copy of the textbook is on reserve at the Stacie Science Library. Students can also use the second or first edition. Errata for the second and first edition can be found here and here, respectively.

Evaluation

tests:   TBA
programming test:   TBA
final exam:   TBA

The tests all consist of ... The final exam consists of ...

Students may view their grades using the ePost system. All grades distributed via ePost are unoffical and are subject to review by the Department of Computer Science and Engineering. A student's final grade will be expressed as a letter grade. Conversion from numeric to letter grade is applied to the overall mark only, using the following departmental standard:

 F   E   D   D+   C   C+   B   B+   A   A+ 
 <40   ≥40   ≥50   ≥55   ≥60   ≥65   ≥70   ≥75   ≥80   ≥90 

Click here for further details on the University's grading schemes.