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.
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 (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
________________________________________________________________________________________________________________
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 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) & |
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. 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.
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