Introduction to Algorithms and Programming I Instructor: Dr. C.I. Ezeife
60-140 -02,
Fall 2015 Office:
LT 5105
Classes: M:
7:00 - 9:50pm (ER 1118) Phone: 253-3000 ext. 3012
Labs: 140-55:
M 5:30pm - 6:50pm (WL 305) e-mail: cezeife@cs.uwindsor.ca
140-56:
W 5:30 – 6:50pm (WL 305) Office
hours: M (5:00-5:50pm)
140-57:
W 7:00 - 8:20pm
(WL 305) R (2:00pm-2:50pm)
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.
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 |
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 (Thurs) |
Due Date (Thurs) |
Assn 1 |
Sept. 17, 2015 |
Sept. 24, 2015 |
Quiz #1 |
------------------- (start to prepare) |
Oct. 5, 2015 (taken) (M) |
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, TBA) |
Assn 5 |
Oct. 29, 2015 |
Nov. 12, 2015 |
Quiz #2 |
------------------- (start to prepare) |
Nov. 9, 2015 (taken)(M) |
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_02@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
________________________________________________________________________________________________________________
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!!
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
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 SIS !!! |
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. 5. |
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) & |
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 |
(midterm test is written Oct 30 on a Friday) |
Sequential, Decision Logic. Preparation for Quiz #2 may begin. |
Nov. 2 Lab Ex. 7 |
|
Repetition logic. Preparation for Quiz #2 written Nov. 9 continues. |
Nov. 9 Lab Ex. 8 |
Ch.8 - Arrays (Quiz #2 is written Nov. 9 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.
Note
that no student is allowed to take a course more than two times without
permission from the Dean.
The professors and
teaching assistants will report any suspicion of cheating to the Director of
the
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