Sunteți pe pagina 1din 6

39487212.

doc
Page 1 of 6

COS120 Software Development Using C++


AUBG, COS dept, Fall semester 2010
Assoc. Prof. Stoyan Bonev, PhD

Syllabus
Course Objectives: This course is intended as the entry point to the
COmputer Science /COS/ major program and, as such, provides an introduction to the
fundamental principles of imperative programming (using C/C++ as implementation
languages), as well as emphasizing the basic skills of efficient software development
based on the classic Input-Process-Output /IPO/ model of a computing process and
traditional concept for software development life cycle.
The major topics covered include: general Computer scheme; Algorithms –
definition, classification. Notations to document algorithms; Structured Programming
(structured systems analysis & design); introduction to Object Oriented Programming.
Extensive exercises are used to illustrate syntax and semantics of all the
programming constructs introduced in the course – data, operators, operands,
expressions, statements, functions and programs.
COS120 serves a prelude to COS201, COS221 and COS240 courses where more
advanced programming concepts are introduced. No prerequisites.

Course Description: The COS120 Software Development Using C++


course includes lectures, exercises, quizzes and home works.
Lectures present basic topics of computers, algorithms and programming in C/C+
+. Standard C++ (incl. ANSI C) is presented: program structure; data – numeric and
symbolic variables and constants; data – fundamental types and abstract types;
operators, operands, expressions; statements; functions – prototype, call, definition,
parameter passing mechanisms; object oriented stream input/output and input/output
based on run-time library functions. Source texts of various programs oriented to
concrete problem solving illustrate the topics covered.
Exercises contain discussion on source texts of demo programs and tasks to be
individually solved (designed as an algorithm and implemented to an executable
program) by the student.
Quizzes are short 15-30 min sessions and intend to train students’ skills in
understanding specific C++ syntax constructs.
Home work assignments are given usually at the end of a lecture. They are to be
delivered to the lecturer with printed listing and output before fixed deadline. Sessions
to demonstrate running home works take place in week 10 and week 14.

Detailed Course Description:


39487212.doc
Page 2 of 6

Lectures Basic Topics


Lecture 1 Introduction to Computers, Problem Solving and Programming.
Computer hardware. Computer software. The software development
method. Algorithms – definition and classification. Flowcharts as a tool for
algorithm description.
Lecture 2 Computers, Problem Solving and Programming (continued).
Applying the software development method. Introduction to linear
algorithms and branch algorithms. Typical examples.
Lecture 3 Computers, Problem Solving and Programming (continued).
Applying the software development method. Exercises on linear and
branch algorithms. Introduction to loop algorithms. Typical
examples.
Lecture 4 Computer Languages.
Processing (editing source text, compiling, linking and running) a High-
level Language Program.
The C++ programming language – a tutorial introduction.
Lecture 5 Computer Languages. (continued).
Programming Environments. Integrated Development Environments
(IDE). Visual C++, C++ Builder, Borland C++. Introduction to project
concept. Console applications. Sample programs in C++.
Lecture 6 Computer Languages (continued).
The C++ programming language elements. General form of a C++
program.
Lecture 7 Top-Down Design with Functions.
Step-wise refinement and structure charts. Functions topics: prototype,
call and definition statements. Functions without arguments.
Lecture 8 Top-Down Design with Functions (continued).
Functions with an input argument. The return statement. Functions
returning a single result. Mathematical built-in library functions.
Lecture 9 Functions and Program Structure.
Basics of functions. System defined and user defined functions. General
form of a function definition. The minimal C++ function. Functions with
multiple arguments.
Lecture 10 Control Flow. Selection (decision) structures.
The if, if-else control statements. Nested if statements. Demo
programs illustrations.
Lecture 11 Control Flow. Selection (decision) structures (continued).
Conditions – expressions including arithmetic, relational, equality and
logical operators. The switch control statement.
Lecture 12 Control Flow. Repetition (loop) structures.
The while, for and do … while control statements.
Lecture 13 Control Flow. Repetition (loop) structures (continued).
Logical and functional classification of loop (iterative) algorithms.
39487212.doc
Page 3 of 6

Lecture 14 Control Flow. (continued).


The break, continue, goto statements. Nested loops. Design
and implementation of programs with linear, branch and loop algorithms.
Lecture 15 Control Flow. (continued).
Nested do-loops. Design and implementation of programs illustrating
linear, branch and loop algorithms.
Lecture 16 Modular Programming.
Functions with simple output parameters. Formal output parameters as
actual arguments.
Lecture 17 Modular Programming (continued).
Debugging and errors: syntax, run-time, undetected and logic errors;
A program with multiple functions. Home works presentation.
Lecture 18 Functions and Recursion.
The nature of recursion. Recursive mathematical functions. Program
implementation of the Hanoi towers game.
Lecture 19 Simple Data Types.
Representation and conversion of numeric types. Representation and
conversion of type char. Enumerated data types.
Lecture 21 Arrays.
Declaring and referencing arrays. Array subscripts. Using for loops for
sequential access.
Lecture 22 Arrays (continued).
Searching in array: linear and binary search. Multidimensional arrays.
Lecture 23 Strings.
Library functions. Assignment and substrings. Concatenation.
Comparison.
Lecture 25 Pointers.
Pointers and addresses. Pointers and function arguments. Pointers and
arrays. Pointer arrays.
Lecture 26 Structures and Union types.
Basics of structures. Structure type definition (typedef statement).
Structures and functions. Structures as input parameters and return values.
Arrays of structures. Pointers to structures.
Lecture 27 File Input/Output Processing.
Input/output files. Text and binary files. File access. Standard input/output
streams.
Lecture From C to C++.
28a C++ as a superset of C. Stream oriented I/O. Scope resolution operator.
Reference data type. Overloaded functions. Default Arguments Functions.
Lecture From C to C++.
28b Classes and objects. Introduction to Object Oriented Programming OOP.
Lecture Back from C++ to C.
28c C as a subset of C++. Enumerated list of C++ features not supported in C.
39487212.doc
Page 4 of 6

Quiz 1 Algorithms + Elementary C++ Quiz 2 Skills in C++ functions


Quiz 3 Arrays and Strings Quiz 4 Pointers and Structures

References:
Recommended textbooks:

1. Friedman F.L., Koffman E.B., Problem Solving, Abstraction and Design Using C++,
Pearson, Addison-Wesley Publ. Comp., 5e 2007, or 4e 2004.
2. Hanly J.R., Koffman E.B., Problem Solving & Program Design in C, Addison-
Wesley Publ. Comp., 3e 1999.
3. Kernighan B.W., Ritchie D.M., The C Programming Language, Prentice-Hall, Inc.,
Englewood Cliffs, N.J., 1988.

Other useful books:


1. Any book on C/C++ available in the AUBG library.

Grading: Final exam: 40% Midterm exam: 30%


Home works: 18% Quizzes: 12%
The students will get a score in the range 0-100 for each of the components. The total
score (computed with the above coefficients) will be used to form the final grade:

A–, A (excellent) cover scores 90-100 90 - - - - - - - - - 96 96-100


B–, B, B+ (good) cover scores 80-90 80-83 83-86 86-90
C–, C, C+ (average) cover scores 70-80 70-73 73-76 76-80
D–, D, D+ (poor) cover scores 60-70 60-63 63-66 66-70

Scores below 60 mean failure. + and – will be used for distinguishing the results in a
given level. Activity in a class will be treated as a bonus.

Attendance: Students are expected to attend all classes (lectures and exercises).
Academic honesty: Students are expected to demonstrate personally an academic
behavior in full capacity of the term.

Lectures/Exercises Hours: COS120a TF 14:15 – 15:30


COS120b TF 16:00 – 17:15
Lectures/Exercises Place: COS lab MB120

Office Hours: see list on office door or by appointment


39487212.doc
Page 5 of 6

Lecturer: Assoc. Prof. Stoyan Bonev, PhD


Office: 243 Tel: (ext.): 419 e-mail: sbonev@aubg.bg
39487212.doc
Page 6 of 6

COS120
SW Development Using C++
Fall semester 2009
Course Outline – Sequence of Classes
Remark: This syllabus is subject to modification. The instructor will communicate with
students on any changes such as in the schedule or the assignments.
Week No Tuesday Friday
1 Lec1 Lec2
Intro Alg1
2 Lec3 Lec4
Alg2 C++
3 Quiz Lec5 Lec6
1 IDE1 Hw1 IDE2
4 Lec7 Lec8
Fun1 Fun2
5 Lec9 Quiz Lec10
Fun3 Hw2 2 Decision1
6 Lec11 Lec12
Decision2 Hw3 Loops1
7 Lec13 Lec14
Loops2 Hw4 Ctrl Flow1
8 Mid Term Lec15
Exam Ctrl Flow2
Break week Break week Break week
9 Lec16 Lec18
Modular Programming Recursive Functions
10 Lec17 Lec19
HW 1-4 Presentation Simple Data types
11 Lec21 Lec22 Lec23
Arrays1 Arrays2 Strings
12 Quiz Lec25 Lec26
3 Pointers Hw5 Structures
13 Quiz Lec27 Lec28ab
4 Files Hw6 OOP
14
HW 5-6 presentation Final Exam Preparation

S-ar putea să vă placă și