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.
© Copyright 2026 Paperzz