cmps142_courseOutline

UNIVERSITY OF BELIZE
FACULTY OF SCIENCE AND TECHNOLOGY
DEPARTMENT OF INFORMATION TECHNOLOGY
COURSE OUTLINE FOR PRINCIPLES OF PROGRAMMING I (CMPS 142) 3 CREDITS
SEMESTER 1, 2008
AUGUST - DECEMBER
Instructor:
Farshad Rabbani
Course Title:
Principles of Programming I
Subject Area/Course No:
CMPS142
Prerequisite:
none
Office Phone No.
(501) 822-3680 ext. 305
Email Address:
[email protected]
Office/Conference Hours: Office P1#3 Jaguar Building/ TBA Other times by appointment
Sections/Class Hours:
Section 1 TTH
Section 2 TTH
Section 3 TTH
9:30am
11:00pm
12:30pm
JAG-U2
JAG-U2
JAG-U2
Recommended Textbook:
C++ How to Program, Dietel & Dietel. 5th ed. Prentice Hall: USA
Website:
http://it.ub.edu.bz/~it/
COURSE DESCRIPTION:
This course is intended primarily for people who have not previously studied computer
programming. Emphasis is placed on teaching students how to analyze a problem, figure out
precisely and unambiguously how to solve it, and present this explanation to a computer. Topics
include: programming language syntax and semantics; algorithm design and implementation
using conventional programming techniques; data types and elementary data structures. This
course involves extensive programming activities, using a fourth generation programming
language, such as C or C++.
This course will be taught using the following computer software:
Operating System:
POSSIBLE Programming Languages:
Windows XP, Linux
C++, Java
COURSE OBJECTIVES:
By the end of this course, students should be able to:
1. Understand the grammar, punctuation, and vocabulary of a programming language
2. Understand the rudiments of the environment and the resources available to help them
program including but not limited to editors, basic computer architecture, compilers,
libraries, reference manuals, and on line help.
3. Use basic programming constructs: types (built in types, basic provided types including
strings), values (constants, variables, assignment statements, and expressions), and
control structures (sequential flow, conditional statements, and loops) in the development
of programs.
4. Use good documentation, formatting and naming conventions to ensure program
readability.
5. Analyze a problem from an English description and design a program to solve it, so that
the program is both correct and easy to write, read, modify, and repair.
6. Plan their time, and what sequence of steps to go through, in designing, writing, testing
and debugging a program.
7. Use sound software engineering techniques.
8. Edit, compile, execute and produce both a hard and soft copy of a simple program.
COURSE CONTENT AND SCOPE:
Outline of topics to be addressed in the course
Section I: Introduction to algorithmic structures
a. Basic concepts.
a. Definitions
b. Problem solving steps
c. Ways to represent algorithms.
d. Algorithmic structures
Section II: Introduction to Elements of a Programming Language
a.
b.
c.
d.
Basic concepts (variables, constants, etc.)
Sequential (linear) structure algorithms.
Expressions
Operators
a. Assignment
b. Arithmetic
e. Programs with sequential structure.
Section III: Flow of Execution
a.
b.
c.
d.
Conditional (branch) structure algorithms.
Top-down design strategy (technique)
Boolean expressions.
Operators
a. Relational
b. Logical
e. Conditional statements
f. Programs with conditional structures
Section IV: Control Structures
a.
b.
c.
d.
e.
Iterative algorithm structures
Loops
Conditionals
Arithmetic
Programs with loop statements
Section V: Modules
a. Modular approach to problem solving
b. Function Declaration
c. Function Calls.
d. Parameter passing mechanism
e. Local and Global variables
EVALUATION:
(Subject to change; students will be notified in advance)
Tests (2)
Lab Assignments
Quizzes(2)
Final Exam
35%
20%
10%
35%
No make-up tests will be given. You will be informed of test dates.
is required.
An 80% attendance
GRADING SYSTEM
Description
Letter
Range
Quality
Excellent
Good
A
AB+
B
C+
C
D+
D
F
95–100
90-94
85-89
80-84
75-79
70-74
65-69
60-64
0-59
4.0
3.75
3.5
3.0
2.5
2.0
1.5
1.0
0
Satisfactory
Failure
Methods of Instruction
The course will consist of lectures and lab work. Lab work will be given during normal class
hours if all topics for that particular week have been presented. Otherwise, it becomes the
responsibility of each student to complete the lab assignment outside of class. There cannot be
any collaboration on such work, unless otherwise specified. The lab session can also be used to
complete any unfinished lecturing for a unit, or to answer questions brought up from the previous
lesson.
If I assign any readings, I expect you to have read them (usually 5-10 pages per lecture) before
the lecture that deals with that topic. This way concentration can be placed on answering
questions and clarifying subtle or difficult points. Please read ahead!
Program Standards
Every program must contain, in the first few lines, a comment indicating the name(s) of the
student(s) working on it and which assignment it is. Programs not containing this information,
clearly visible, will get a zero.
Every program must be accompanied by test cases, so I can see how it actually works. Programs
with inadequate or poorly-chosen test cases will lose points. Many points will be lost if a
program is turned in with no test runs.
I realize from past experience that sometimes you get stuck and are unable to get the program to
work if your life depended on it. If this happens, turn in the program together with a detailed
description of how the program fails, what you've tried in your attempts to fix it, and how those
attempts didn't succeed. You won't get full credit, but if I'm convinced that you're working on it
diligently, you'll get partial credit. Note that ``how the program fails'' does not mean saying ``I
got an error message'': you need to tell me which error message you got, when you saw it, and
what you think the error message means. Similarly, if the program fails by producing wrong
answers, you need to tell me when it produces wrong answers (are they all wrong, or just in a few
cases?), how they are wrong (e.g. are all the numbers consistently higher than you expected, are
they the negatives of the correct answers, or are they all over the place with no apparent
pattern?), and your speculations on how such an error might have arisen. I'm requiring all this not
because I'm mean and horrible, but because by the time you've written all this down, you may
have enough information to actually fix the problem, which is much better than turning it in
incomplete.
I also expect you to maintain a log of what kinds of errors you encountered, how you discovered
them, how long it took you to fix them, and what the actual problem was. This log must be
turned in with each homework assignment.
CLASSROOM RULES OF CONDUCT
Once inside the computer lab, neither eating nor drinking are allowed under any circumstances.
If, however, you must eat or drink, quietly excuse yourself from class and return when you have
finished. Cell phones can ONLY be set to vibrate mode or to ring ONCE. Once a call comes in,
you have the option of answering it, but must do so OUTSIDE of the classroom and far enough
to prevent distraction of other students. There is no penalty for coming to class late. However,
you must NOT disturb or distract the class while entering. If I see that you are inconsiderate and
creating a lot of noise, I will ask you to leave. If you are late or absent, it is your responsibility to
find out what information you have missed and what assignments are due. This does NOT mean
coming to me to find out what you have missed or asking for a recap on what was presented
earlier. As soon as class begins, no student is permitted to use the computer unless otherwise
instructed by the lecturer. If you need to see me outside of class, my hours of availability are
posted outside my door. In addition, ALWAYS knock and ONLY when acknowledged do you
enter the office. Please do not contact me at my home for any reason. Confine all
correspondence to email and school time. Once a test has been returned to you, you have exactly
one week from the date received to make queries or raise any concerns regarding your grade etc.
Any concerns voiced after the specified period will not be valid or taken into consideration.
Each student must take all tests. A makeup for a missed test will only be given when the student
has made arrangements for such prior to the time the test is given to the class. I reserve the right
to determine when an absence is to be excused or unexcused.
All programming and homework assignments MUST be turned in at the beginning of class on
the date due. If, for any reason, you cannot attend class on a day an assignment is due, please
notify me in advance or make necessary arrangements for it to get to me. Late homework
assignments will NOT be accepted, and a grade of ZERO will be assigned. Barring tragedy, late
programming assignments will not be accepted. There will be NO make-up quizzes given. I will
NOT debug programs. Debugging is part of the assignment. If you are very confused about some
compiler error messages, you can ask, but read the error message carefully and ask as a last
resort, not a first. I am very unsympathetic toward questions that are asked on the program due
date. You should be done by then.
If the instructor is not available when class begins, students are expected to wait the designated
15 minutes until he arrives.
If you are bothered by anything or would like to discuss any unfavorable situation that is
affecting your learning, please feel free to see me. I will be more than happy to help. If I cannot
assist you, then I will ask the chairman to look into the matter.