Lecture and Lab Schedule

Lectures: Friday, 14:30-16:30, in LAS-C
Lab 1: Tuesday, 15:00-17:00, in LAS-1006
Lab 2: Tuesday, 17:00-19:00, in LAS-1006
Lab 3: Tuesday, 15:00-17:00, in LAS-1004
Note: NO LAB on January 7, or February 18.

Prerequisites

General prerequisites;
LE/EECS 1021 3.00 or LE/EECS 1022 3.00 or LE/EECS1030 3.00.
Recommended prerequisite: LE/EECS2030 3.00

Instructor

Uyen Trang (UT) Nguyen
Office: LAS-2024 (Lassonde Building)
Phone: (416) 736-2100 ext. 33274
Email: utn @ eecs . yorku . ca
Home page
Office hours before April 3:

  • Tuesday, 10:11-11:00 (except reading week)
  • Thursday, 15:00-16:00 (except reading week)
  • By appointment in special cases

Teaching Assistants

Maryam Keyvanara
Telemachos (Tile) Pechlivanoglou
Feng Wei
TA office hours (except reading week):

  • Monday, 13:00-14:00, LAS-2057 (Tile)
  • Friday, 13:00-14:00, LAS-2002A (Maryam)

Course Description

This course introduces software tools that are used for building applications and in the software development process. It covers ANSI-C (stdio, pointers, memory management, overview of ANSI-C libraries), shell programming including filters and pipes (shell redirection, grep, sort & uniq, tr, sed, awk, pipes in C), version control systems and the "make" mechanism, and debugging and testing. All of the above are applied in practical programming assignments and/or small-group projects. By the end of the course, students are expected to be able to:

  • use the basic functionality of the Unix shell, such as standard commands and utilities, input/output redirection, and pipes;
  • develop and test shell scripts of significant size;
  • develop and test programs written in the C programming language;
  • describe the memory management model of the C programming language;
  • use test, debug and profiling tools to check the correctness of programs.

Textbook

The C Programming Language (2nd edition)
by Brian Kernighan and Dennis Ritchie
Prentice Hall Software Series

References

100 Useful Unix Commands by Oliver
Sh - the Bourne Shell by Bruce Barnett

Grading Scheme

  • 10% - Weekly labs
  • 10% - Assignments (2)
  • 30% - Lab tests (2)
  • 20% - Midterm test
  • 30% - Final exam

Conversion from numeric to letter grade is applied to the overall mark only, in accordance with the following departmental standard:

F

E

D

D+

C

C+

B

B+

A

A+

<40

>=40

>=50

>=55

>=60

>=65

>=70

>=75

>=80

>=90

Test and Exam Policy

  • You are allowed to miss a test/exam only under extraordinary circumstances.
  • If the reason is illness, your doctor must complete the Attending Physician's Statement form. Only this form, completely and properly filled, will be accepted.
  • There is NO make up test, except for the second lab test. The weight of the first lab test, if missed, will be transferred to the second lab test. The weight of the midterm test, if missed, will be transferred to the final exam. Students who did not write the second lab test or the final exam will write the deferred lab test or exam in late April or May.
  • In this course, all assignments, tests and exam are individual work. We use MOSS (Measure Of Software Similarity) to detect software plagiarism. Plagiarism and cheating will be dealt with according to York University Senate Policy on Academic Honesty.

Academic Honesty Guidelines

"Academic honesty is essentially giving credit where credit is due. And not misrepresenting what you have done and what work you have produced. When a piece of work is submitted by a student it is expected that all unquoted and uncited ideas and text are original to the student. Uncited and unquoted text, diagrams, etc., which are not original to the student, and which the student presents as their own work is considered academically dishonest." - Department of Electrical Engineering and Computer Science Academic Honesty Guidelines

For more information about Academic Honesty Guidelines, check the above link.

Useful Suggestions

  • When sending emails to the instructor or TAs, please indicate "EECS 2031" in the subject line (e.g., "EECS 2031 - Lecture notes unreadable"), or they may be deleted by mistake as spam. Include your name and student ID in the email.
  • For questions related to course materials, it is best to ask during lectures or office hours. Email is not an effective or time-efficient way to explain course materials.
  • Attend the lectures! The lecture notes give only outlines of the lectures. Details and additional information will be explained and discussed in class.
  • Read the lecture notes and textbook before and again right after each lecture.
  • Work on the posted lab exercises before coming to the scheduled lab sessions.
  • Program and run the code segments in the textbook.
  • Ask questions! Come to office hours.

Important Dates

  • January 6: Winter classes start. NO LAB this week.
  • January 10: First lecture of EECS2031
  • February 11: Lab test 1
  • February 15-21: Reading week
  • March 6: Midterm test
  • March 13: Last date to drop winter courses without receiving a grade
  • March 31: Lab test 2
  • April 3: Last lecture of EECS2031
  • April 5: Winter classes end
  • April 7-25: Winter exams