UNIVERSITY OF WINDSOR

Introduction to Algorithms and Programming I         Instructor: Dr. C.I. Ezeife

60-140 -01, Fall 2015                                                  Office: LT  5105

Classes: T, R: 11:30 - 12:50pm (TC 102)                Phone: 253-3000 ext. 3012

Labs:   140-51: W  2:30pm - 3:50pm (WL 305)         e-mail: cezeife@cs.uwindsor.ca

            140-52: W   4:00 - 5:20pm  (WL 305)            Office hours: M (2:00-2:50pm)

            140-53: T    1:00 -  2:20pm (WL 305)                       T (1:00pm-1:50pm)

            140-54: W   10:00  - 11:20am (WL 305)        Special Extra Help: when necessary

GA/TA Consulting hours: * check web site for most updated consulting times

M to F, 10:00–11:20am, 1:00-2:20 (Java Lab) 

M to W, 2:30 – 5:20pm (Java Lab)

Course web page:    through blackboard: http://blackboard.uwindsor.ca, course notes: www.uwindsor.ca/courses,   or
     directly through: http://cezeife.myweb.cs.uwindsor.ca/courses/60-140/index.html, https://cezeife.myweb.cs.uwindsor.ca or          http://cezeife.myweb.cs.uwindsor.ca,   

 

REQUIRED TEXT:

C.I. Ezeife, “Problem Solving and Programs with C", a book published by Nelson Thomson Learning Ltd., August 2010, 3rd edition (used to teach C programming to 1st year class), isbn 0-17-633082-8. Included in the book are lab manuals and test samples. Book is available at the University Book Store. Lecture slides are available through course web site.

 

Reference Text:

Dietel & Dietel, “C How to Program”, 7th edition, Pearson Prentice Hall, 2012.

 

COURSE CONTENT & OBJECTIVE

Effective and efficient programming of the computers requires (1) sound problem solving skills and (2) proficiency in a computer programming language.  Once the needed problem solving skill is developed, it is applied uniformly across all programming languages.  Proficiency in a computer programming language requires learning the syntax (grammar rules) of the language in order to write programs in the language.  The objective of this course is to learn these two components of programming by teaching concepts that develop the ability to identify, understand and define solutions to a wide variety of problems using the high level programming language C.  Topics include:

·         Computer Systems overview -Machine Architecture (Data storage, manipulation)

·         Software Systems - Operating Systems, Compilers & Programming languages

·         Introduction to C programming language

·         Problem Solving steps including Coding/Implementation stage

·         Concepts of Variables, Constants, Simple Data Types; Algorithm/Program Structures

·         Use of Structure Charts, Functions, Parameters and Flowcharts in Problem Solving

·         Program Logic (flow) Structures

Ž    Sequential logic, Decision and Repetition(Loops)

·         Advanced Data Types: Arrays, File, Use of String Data.

·         Simple Search Technique.  Any other

 

LEARNING OUTCOMES

Students who successfully complete this course will be able to:

§ Define and implement C program solutions to problems involving use of sequential logic, decision logic and repetition logic control structures, simple standard input and output using C library functions, simple output formatting, simple and array data structures, simple array algorithms including search, functions with different parameter-passing mechanisms, and variables with different scope.

§ Use tools for top-down design approach to problem solving, such as structure chart, flow-chart, test and verification and tracing.

§ Prepare and create algorithmic and C program solutions to a wide variety of problems.

§ Demonstrate interaction with computers and work with standard UNIX operating system within a laboratory environment and demonstrate general programming skills within a laboratory environment.

§ Prepare programming assignments following professional principles of protection of intellectual property

§ Learn good programming style including program documentation.

NOTE: By successfully completing this course, students would have progressed through much of the training needed to undertake higher level C (e.g., 60-141) and Java (e.g., 60-212) programming courses.   

COURSE EVALUATION

Work

Mark (out of 100%)

Assignments (6)

10%

2 Quizzes

15%

Lab Exercises and Attendance

 5%

Lab Examination

 5%

Class Participation

 5%

Midterm Test

15%

Final Examination

45%

 

CONVERSION OF MARKS (% marking scheme used for Fall 2015)

Only raw % scores are assigned in course work and meaning of scores in transcripts are:

% Score

Grade

% Score

Grade

Comments

90-100

A+

63-66.99

C

In computing a student's average, grades from 0% to 22% are calculated as 22%. Grades from 23% to40% calculated as 40%. Grades from 40% to 49% are calculated as is into the student’s average. All grades are recorded in the transcript as is.  All grades below 50% are considered failures. (see mark/grades descriptor page of calendar www.uwindsor.ca/calendar for details).

 

The University of Windsor uses a percentage marking and grading scale

85-89.99

A

60-62.99

C-

80-84.99

A-

57-59.99

D+

77-79.99

B+

53-56.99

D

73-76.99

B

50-52.99

D-

70-72.99

B-

0-49.99

F

67-69.99

C+

 

 

 

ASSIGNMENT & EXAMINATION SCHEDULE

Assignments

Handed Out (Thursdays)

Due Date (Thurs)

    Assn  1

Sept. 17, 2015

Sept. 24, 2015

   Quiz #1

------------------- (start to prepare)

Oct. 8, 2015 (taken)

   Assn   2

Oct. 1, 2015

Oct. 8, 2015

   Assn   3

Oct.  8, 2015

Oct. 22, 2015

   Assn    4

Oct.  22, 2015

Oct. 29, 2015

Midterm  Test

------------------- (prepare)

Oct 30, 2015(Fri,7:00 pm, TC 100)

   Assn    5

Oct. 29, 2015

Nov. 12, 2015

   Quiz  #2

------------------- (start to prepare)

Nov. 12, 2015 (taken)

Lab Exams in labs

held during the week of  ->

November 16, 2015

   Assn    6

Nov. 12, 2015

Nov 19, 2015

Final Examination

Fri., Dec. 18, 2015 (7:00pm)

Fri., Dec. 18, 2015 (7:00pm)

 

IMPORTANT DATES

Tues., Sept. 8, 2015  ………         Classes begin

Mon., Sept. 21, 2015 …………        Final day for registration revisions

Mon., Oct. 12, 2015  ………         Thanksgiving day, No classes/labs

Sat-Sun,Oct 10-18, 2015………      Reading Week, No classes/labs

Mon., Nov. 16, 2015     …………    Last day for voluntary withdrawal from courses

                                                                Last day to receive partial refund for withdrawal from courses.

Mon., Dec. 7, 2015     …………       Last day of classes

Thurs.-Mon., Dec. 10 -21 ………     Fall term examinations

Wed-Sun, Dec.23-Jan.3 ……..          Dec. holiday recess, University closed.

Thurs., Jan. 7, 2016           ………     University offices reopen for Winter term.

 

ASSIGNMENTS AND COURSE WORK

1.       There will be 6 individual assignments, 2 quizzes and weekly group laboratory exercises (including one individual lab exam), 1 term test and a final examination.

2.       Completed individual assignments must be handed in five minutes before the beginning of class (inside the class room or electronically) on the day on which they are due. Note that only assignments currently due (not old assignments) are retrieved from online assignment submission site.

3.       For section 1, all assignments not handed in electronically (by sending mail to cs140_01@cs.uwindsor.ca ), must be placed in the approved Computer Science Manila envelope (9 x 12 inch) available at the Bookstore - keep three of them for this course).  Envelopes should be clearly marked on the outside with student’s name, student number, course lecture section, course lab section and instructor’s name.

4.       Late assignments will not normally be accepted. Assignments submitted late assignment to the online site are not accepted.

5.       No make-up tests will be given for missed tests.  If a test is missed for medical reasons (valid Student Medical Certificate completed by a physician shown), the weight of the student’s final examination is increased by the weight of the missed test.

6.       Final examination must be taken to obtain a final score in the course. If a final exam is missed for valid medical or emergency reason (proof needed), student is allowed to write a makeup final exam in the first week of the following January in the new year, for all students who missed final exam.

7.       After final examination marks and all course marks are converted into a final exam score, only students who completed all course work may be rounded up to the next grade level if their total mark falls short less than 1%. Thus, there are other prices for completing all course work other than learning the materials and the necessary skills to handle higher level courses and be prepared for jobs.

8.       The following confidentiality agreement and statement of honesty will need to be signed by students for all handed-in course work to discourage and prevent academic dishonesty and cheating. Note that if two assignments are found to be a copy of each other, a mark of 0 will be assigned to both assignments.

CONFIDENTIALITY AGREEMENT & STATEMENT OF HONESTY

I confirm that I will keep the content of this assignment/examination confidential. 

I confirm that I have not received any unauthorized assistance in preparing for or doing this assignment/examination.   I confirm knowing that a mark of 0 may be assigned for copied work. 

 ________________________________________                                            ________________________________________

Student Signature                                                                                Student Name (please print)

________________________________________                                             ________________________________________

Student I.D. Number                                                                                           Date

________________________________________________________________________________________________________________

Preparation for lectures (VERY IMPORTANT)

Attendance at all lectures and tutorials is highly recommended.  Students should read the course text and notes ahead of lectures.  A detailed schedule suggesting topic of each week’s lectures is given later.  Lectures are not substitutes for student reading.  Students who do not read ahead may find themselves lost in the lectures. The level of difficulty in the course material sharply increases starting from chapter 4 of course book. If you keep up with reading ahead and attending all lectures, YOU WILL GET IT!!

Individual Assignments

Students should attempt to complete individual assignments by the suggested completion dates.  This will help you prepare for materials to be covered in subsequent lectures, and for tests. 

 

Group Lab. Exercises

Students will be assigned to groups of 2 to 3 students in the first lab. At every lab, each group makes a five minute presentation of their solutions to lab exercises to either the GA or the Prof. The group lab exercises are given in the course book (pp. 260 - 285). The presentation should indicate clearly each group member’s contribution.  Each week, on a rotational basis, one member of the group acts as the group leader who coordinates the meeting of the group members and presents the group’s answers to the lab exercises for that week.  Poor handling of the group leadership may lead to loss of marks by the leader.  Members are expected to cooperate with the group leader.  Labs are for practicing and learning programming concepts discussed in the class by working with small groups of students and being guided by GA/Prof.  Thus, students get the mark for attending the lab when they have shown their implementation of the lab exercises that week in the lab.

 

Time Required for Course Work:

Students should set aside a total of about 10 hours weekly for work related to this course.  This enables them devote 1 and ½ hours to lecture material preparation, 3 hours to attending lectures, 1 hour for lab material preparation, 1 and ½ hours for attending lab, and 2 to 3 hours for completing individual assignment.

 

Course Web Page

Answers for individual assignments, lab exercises and tests will be made available on the web page so that students can revise concepts that were misunderstood, and assess their own progress. Students’ marks are also posted on this page and students should keep track of their marks and report any discrepancies.

 

Computing Resources Available for Course Work

Computing laboratories will be available from the second week of the semester onwards.  The CS laboratories are located on the third floor of Lambton Tower and Erie Hall (called Java lab (ER 3150) and X-lab). The Leddy library, general  IT services laboratories at the basement of the Computer Centre, next to the CAW Student Centre are also available to students. Students can also connect to campus machines (arc1.uwindsor.ca and bravo.cs.uwindsor.ca) from their home PCs or laptop through internet connections.

 

Student Evaluation of Teaching (SET)

Note that SET forms will be completed by students during the last two weeks of classes.

 

60-140  TENTATIVE SCHEDULE (FALL 2015)

Week of

Concepts

Lab

Sept. 8/14

No Lab

Ch.1&2:Computer systems overview, introduction to C, problem solving steps + course outline

NO LAB

Activate your user account through www.uwindsor.ca/userid      !!!

Sept. 21

Lab. Ex. 1

Ch.2 & 3-Problem steps, algorithm/C program instructions and structure

Introduction to Group members & TA, Computer Systems overview, C programming intro.

Sept. 28

Lab Ex. 2

Ch.3 - algorithm/C program instructions and structure

problem steps, Variables, Data types, Operators, Functions & Problems and programs. Start to prepare for Quiz #1.

Oct 5

Lab Ex. 3

Ch.4-Programming Structure-Top-down design, functions, parameters, flowcharts

 

Understanding Top-down program design concepts. Continue to prepare for Quiz #1 written Oct. 8.

Oct. 12

 

**Thanksgiving Day/Reading Week (No Labs)

Ch.4 – Functions and  parameters continue

 

**Thanksgiving Day/Reading week (No Labs)

Start to prepare for midterm test.

Top-down program design continues, use of call-by-value and call-by-reference parameters. Structure and flowcharts, functions and parameters. 

Oct. 19

Lab Ex. 4

(Midterm Test practice) & Ch. 4: Finish functions.

Top-down program design continues, use of call-by-value and call-by-reference parameters. Structure and flowcharts, functions and parameters. 

Prepare for midterm test written Friday, Oct. 30.

Oct. 26

Lab Ex. 5

Ch. 5/6 - Sequential program logic. Decision program logic

(midterm test is written Oct 30 on a Friday)

Sequential, Decision Logic.  Preparation for Quiz #2 may begin.

 

Nov. 2

Lab Ex. 7

Ch. 7- Repetition program logic

 

Repetition logic. Preparation for Quiz #2 written Nov. 12 continues.

Nov. 9

Lab Ex. 8

Ch.8 - Arrays

(Quiz  #2 is written Nov. 12 during one class)

Use of Arrays and  in functions

Nov. 16

Lab Exam

Ch.8 – Arrays and  Searching Technique

Laboratory Examination (in your lab room). See Lab 10 in book for a template lab exam.

Nov. 23

Non-mandatory lab

Ch.8  continues & others

Final Examination revisions. The GAs are in the lab and may hold lab as office hours or tutorials to answer individual student questions. Lab marks and totals completed and shown to students by this lab.

Students are informed that all schedules presented in this document are only tentative and subject to possible revisions in the course of the term.  Any changes will be announced in class and/or on the web page.

 

PENALTIES AND DISCIPLINARY ACTION FOR DEFICIENT TERM WORK

1.       Laboratory attendance is compulsory. 

2.       While collaboration with lab team members is encouraged for lab exercises and concepts discussed in class, students are expected to develop individual problem solving abilities and hand in assignments done individually by themselves.  In other words, cheating is not allowed in this course.

 

Other Important Policies

Note that no student is allowed to take a course more than two times without permission from the Dean.

Policy on cheating

The professors and teaching assistants will report any suspicion of cheating to the Director of the School of Computer Science.  If sufficient evidence is available, the Director will begin a formal process according to the University Senate Bylaws.  The instructor will not negotiate with students who are accused of cheating but will pass all information to the Director of the School of Computer Science. The following behaviors will be regarded as cheating (together with other acts that would normally be regarded as cheating in the broad sense of the term):

1) Copying assignments,  2) Allowing another student to copy an assignment from you and present it as their own work, 3) Copying from another student during a test or exam,  4) Referring to notes, textbooks, etc. during a test or exam, 5) Talking during a test or an exam,  6) Not sitting at the pre-assigned seat during a test or exam, 7) Communicating with another student in any way during a test or exam, 8) Having access to the exam/test paper prior to the exam/test, 9) Asking a teaching assistant for the answer to a question during an exam/test, 10) Presenting another’s work as your own, 11) Modifying answers after they have been marked, 12) Any other behavior which attempts unfairly to give you an advantage over other students in the grade-assessment process, 13) Refusing to obey the instructions of the officer in charge of an examination.

Several University of Windsor students have been caught cheating during the last few years.  In most cases the evidence was sufficient to invoke a disciplinary process which resulted in various forms of punishment including letters of censure, loss of marks, failing grades, and expulsions.  Do not cheat, if you are caught and found guilty, you could be thrown out of the university and will have to explain why when looking for a job.