You are on page 1of 5

AMERICAN UNIVERSITY OF SCIENCE & TECHNOLOGY

FACULTY OF ARTS AND SCIENCES

CSI 205: Computer Programming I


Section A
Fall Term 2019-2020

INSTRUCTOR Saeed Raheel, Ph.D.


sraheel@aust.edu.lb

LECTURE HOURS TTH 11:00 am – 12:15 pm

OFFICE HOURS TTH 01:15 pm –02:00 pm

Otherwise by appointment
Room: Block A, 5th Floor
Conference Room

COURSE DESCRIPTION
This course introduces the basic principles of algorithmic problem solving and programming
using C++. Topics covered include: use of methods of top down design, stepwise refinement
and procedural abstraction, basic control structures, data types, and input/output, introduction
to the software development process: design, implementation, testing and documentation.

COURSE OBJECTIVES
This is a sophomore level course and a first computer programming course. The students will
be introduced to the software development process: design, implementation, testing and
documentation. The student will acquire basic principles of algorithmic problem solving, and
the skill to write programs in the C++ programming language. The student will also know
control structures, functions, arrays, pointers, strings, and introduction to object orientation.
This course includes weekly laboratory sessions.

LEARNING OUTCOMES
Upon successful completion of the course, the student will be able to:
1. Use the logic in programming to write programs that solve real-life problems
2. Describe the concept of variables, their data types, and memory allocation.
3. Employ the structured approach in programming (selection/branching and
looping/repetition).
4. Use built-in functions from the C++ libraries.
CSI 205-Section A: Computer Programming I Saeed Raheel, Ph.D.

5. Create user-defined functions and employ them to write modular programs.


6. Use single and multi-dimensional arrays.
7. Write well-structured programs using the C++ programming language.
8. Master the syntax of the C++ programming language.

COURSE PREREQUISITES CSI 201: Introduction to Computing


PREREQUISITES BY TOPICS
The student should have a basic mathematics background and computer skills. Knowledge of
the machine hardware and software is also essential.

COURSE CREDITS 3 Credit Hours

INSTRUCTION TECHNIQUE
Lectures will be used predominantly. These will be supported by problem sets and practical
projects as well as laboratory sessions.

REQUIRED TEXTS
▪ Dietel H.M. and Deitel P.J. C++ How to Program. Ninth Edition. Upper Saddle River,
NJ.: Pearson / Prentice Hall, 2014.

REFERENCES
▪ Hubbard J. Programming with C++. International Edition. McGraw-Hill.

OTHER REQUIREMENTS
▪ Microsoft Visual C++® (Microsoft Corporation, Redmond, WA, USA). 2010 Express
Edition or later.

GRADE DISTRIBUTION
This course involves a number of didactic activities, ranging from lectures, homework,
projects, and quizzes, to the midterm and final exams. All of these attributes of the course are
intended to help the student in developing his/her understanding of the material covered in CSI
205 and in providing the department and the course instructor with information on how the
student is doing. Consequently, all of these activities are considered to be vital and will be
taken into consideration while assigning grades at the end of the term. When the student is
being assigned a course grade, it is imperative that this grade accurately reflects the student’s
level of achievement and his/her mastery of the material covered in CSI 205. An approximate
breakdown of the weighting that will be used in making this assessment is as follows:
Lab Work (LW) 20%
Class Attendance (ATT) 05%
Homework (HW) 05%
Class Participation (CP) 05%
Project (PRJ) 10%
Class Quizzes (CQ) 05%
Class Exams (CE) 30%
Exam 1 (EX1) 15%
Exam 2 (EX2) 15%
Exam 3 (EX3) 15%
Final Exam (FIN) 20%

-2-
CSI 205-Section A: Computer Programming I Saeed Raheel, Ph.D.

The following scale will be used to assign course letter grades:

90 – 100 A
80 – 89 B
70 – 79 C
60 – 69 D
BELOW 60 F

Note: Three out of the four class exams will be counted towards the final course grade based
on the highest grades attained. No make-up exams are allowed. Late assignments will be dealt
with according to the distributed course rules and regulations, which are governed by the
Department of Computer Science. However, students have to realize that in the event that a
make-up exam is granted, it would be unjust that the grantee becomes privileged over his/her
fellow colleagues in terms of extra-time to prepare for the exam and in developing an idea
about the contents of the exam. Accordingly, the make-up exam will carry an increased level
of difficulty of at least 20% from the regular exam.
ATTENDANCE
For legitimate reasons only, a student is allowed to absent him/herself for a maximum of 4
contact hours from the course lectures sessions. However, any absence of more than two
sessions will be counted toward the 5% evaluation of the course grade. Absences beyond the
specified maximum limit will result in an automatic AW in the course and possibly other
disciplinary measures. Should the student be absent from a lecture during which a problem set
or a laboratory assignment is due, it is the duty of the student to make certain that the
homework assignment is handed in on time. Failure to do so will incur a penalty on that
assignment’s grade.
Note: 5 points will be deducted from the class attendance grade for every non excused absence.

ACADEMIC INTEGRITY
The student should get familiar with the Course Rules and Regulations of the Department of
Computer Science at AUST. These are compiled and distributed to the student at the beginning
of every academic term. In particular, the student should be aware that plagiarism, abuse of
laboratory facilities, and other sorts of academic dishonesty are not tolerated and can result in
unsympathetic penalties.

The Department of Computer Science (CSI) fully acknowledges the potential significance of
students studying together. In this sense, the CSI Department does not have any reservation to
this kind of collaboration, as long as all contestants are involved in all facets of the work, and
not with each individual contributing to a fraction of the assignment. Specifically, when a
student submits an assignment with his/her name on it, the CSI Department takes it for granted
that the details presented in the assignment are entirely the student’s own work, and that this
student has substantially participated in the creation of this work. If a portion of the work has
been conceived by collaborative work, that section should be highlighted and the names of the
students involved in this collaboration should be listed next to that section.

All projects and problem sets are expected to be handed in at the beginning of the lecture of
the due date. Late project/problem sets are permissible if the solution is not published yet, but
will be penalized. If a project or problem set is not submitted at the beginning of the lecture of
the due date, it will automatically be considered as late. In accordance, the project/assignment
will lose 25% of its merit. However, the student has the right to hold on to it and submit it at
the beginning of the very next lecture. If this situation is repeated, another 25% of the total

-3-
CSI 205-Section A: Computer Programming I Saeed Raheel, Ph.D.

merit of the project/assignment will be deducted until the project/assignment loses all of its
merit.

PROBLEM SETS
For most part of the course, problem sets will be assigned on a weekly basis. A detailed
description of the problem set assignment timetable is compiled at the end of this handout.

SOME INTERESTING LINKS


http://www.deitel.com
http://www.prenhall.com/deitel
http://www.cprogramming.com/
http://www.cs.wustl.edu/~schmidt/C++/
http://cplus.about.com/od/beginnerctutorial/l/blcplustut.htm

COURSE OUTLINE BY TOPIC


The day-to-day topics to be covered in the table below may be adjusted as the subject proceeds, but
all examination dates are fixed, and problem set due dates are unlikely to change.

Week Session Topic Day Date (DD/MM/YYYY)


▪ Ch. 1 Introduction to Computers and C++ 1
- What is a Computer
- Computer Organization
- Operating Systems
1 - Programming Languages T 08/10/2019
- Programming Life Cycle
1 - Structures Programming and Object-Oriented Programming
- Compiler Phases
Basics of C++ Environment
Ch. 2 First Program in C++
Adding two integers
2 Memory Concepts
TH 10/10/2019
Arithmetic
- Data Types
- Examples: Input / Output and Arithmetic
3 - Decision Making: Equality and Relational Operators
T 15/10/2019
- Examples
2 ▪ Ch. 4 Control Statements: Part 1 3-
Algorithms and Pseudocode
4 Control Structures TH 17/10/2019
if selection structure
if/else selection structure
nested if/else
5 while repetition structure T 22/10/2019
Counter-Controlled repetition
3
Sentinel-Controlled repetition
6 Nested control structures TH 24/10/2019
The assignment operators and increment and decrement operators
7 EXAM I T 29/10/2019
Ch. 5 Control Statements: Part 2
for repetition structure
4
8 Nested for TH 31/10/2019
switch multiple-selection structure
Menus in C++ using switch
- do/while repetition structure
9 break and continue statements
T 05/11/2019
5
10 Logical operators TH 07/11/2019

-4-
CSI 205-Section A: Computer Programming I Saeed Raheel, Ph.D.

Week Session Topic Day Date (DD/MM/YYYY)


Confusing the equality and the assignment operators
▪ Ch. 6 Functions and an Introduction to Recursion
11 Introduction T 12/11/2019
6 Math functions
12 Function definition and function prototype TH 14/11/2019
Header Files
13 Examples about functions
T 19/11/2019
7
14 EXAM II TH 21/11/2019
15 Random number generation T 26/11/2019
8-9
16 Recursion TH 28/11/2019
17 Arguments and reference parameters T 03/12/2019
▪ Ch. 7 Arrays and Vectors
- Array Concept
18 - Array declaration TH 05/12/2019
9-11
Passing arrays to functions
19 Array of Characters T 10/12/2019
20 Examples using arrays TH 12/12/2019
21 Examples using arrays T 17/12/2019
11
22 EXAM III TH 19/12/2019
23 Sorting arrays TH 02/01/2020
24 Searching arrays T 07/01/2020
12-15
26 Multidimensional arrays TH 09/01/2020
27 Multidimensional arrays T 14/01/2020
28 String Manipulation TH 16/01/2020
29 T 21/01/2020
16
30
Project Presentations TH 23/01/2020
M 27/01/2020
FINAL EXAMS T 04/02/2020

PROBLEM SETS
Problem sets will be assigned in class.

PROJECTS
Projects will be assigned in class.

DISCLAIMER: Changes may be performed to the above syllabus without any prior notification.
Copyright © 2019-2020 American University of Science & Technology - Department of Computer Science. All rights reserved.

-5-

You might also like