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