User Tools

Site Tools


syllabus

Syllabus

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.

Instructor & TAs

Instructor
    • Office: LAS 3016
    • Office hours: Mondays and Thursdays, 9:00 - 10:00
    • Email: wildes@cse.yorku.ca
Teaching Assistant
  • Brandon Haworth
    • Office: LAS 2027
    • Office hours: Tuesdays and Thursdays, 17:00 - 17:45
    • Email: brandon@cse.yorku.ca

In order to ensure timely responses to e-mails, please include CSE1020 in the e-mail subject line and include your CSE account number and student number in the body of the e-mail. E-mails lacking such information are unlikely to receive timely or useful response.

Textbook

H. Roumani. Java by Abstraction: A Client-View Approach. Third edition. Pearson Addison Wesley, Toronto. 2010.

The textbook is available in the York University Book Store in York Lanes.

A copy of the textbook also is on reserve at the Steacie Science Library.

Course Components

Lectures

Lectures consist of presentation and discussion of the course material. Material presented during the lectures can be accessed by clicking on Schedule on the sidebar.

Readings

Readings will be assigned from the textbook and are associated with material covered in lectures. Readings for each week of the course can be found by clicking on Schedule on the sidebar. Students are encouraged to read the textbook chapter associated with each lecture prior to attending the lecture.

Labs

Lab sessions will be used for several purposes including getting you started, running lab tests and providing help on eChecks. To see the exact schedule, click on Schedule on the sidebar.

eChecks

The eCheck exercises can be found at the end of each chapter in your textbook. Certain eChecks will be assigned and are associated with labs, as indicated in the Schedule sidebar. eChecks assigned in association with a Tuesday lab will be due no latter than the following Monday. However, it is recommended that you complete as many of these exercises as possible to enhance your understanding of the course material. You will receive instant feedback regarding whether your solution passed all tests.

To learn how to submit eChecks electronically, do the initial self-paced labs of the textbook consulting the <a href="http://www.cse.yorku.ca/course_archive/2012-13/S/1020/GuidedTourV3.pdf">Guided Tour</a>. The URL of the eCheck server (which you need in order to submit electronically from home) can be found in the guided tour.

Students are expected to adhere to the coding style that is given in Appendix C of the textbook.

Lab Tests

There are two lab tests in this course. They are both open book, which means that you are allowed to have the textbook with you, but nothing else. For dates and times of these tests, click on Schedule on the sidebar.

Midterm Written Test

There is one written test that will take place during normal lecture time. It is closed book. See the Schedule sidebar for the date and time.

Final Exam

The final exam is a written test. It is closed book. Scheduling for the final exam will be determined by the registrar's office later in the term.

Grading

The weight distribution of the course components is as follows:

  • 10% : eChecks (1% for each of 10 assigned eChecks)
  • 20% : Lab test #1
  • 20% : Lab test #2
  • 20% : Midterm written test
  • 30% : Final written exam

Each piece of work will be assigned a numeric grade. A final numeric grade will be acomputed using the weighting given above. The final letter grade will be determined form the numeric score using the standard Computer Science and Engineering mapping.

syllabus.txt · Last modified: 2013/05/06 18:07 by wildes