Course Code |
CSC313 |
Course Title |
Programming Fundamentals |
Credit Hours |
3+1 |
Prerequisites by Course(s) and Topics |
N/A |
Assessment Instruments with Weights (homework, quizzes, midterms, final, programming assignments, lab work, etc.) |
SESSIONAL (Quizzes, Assignments, Presentations) =25 %
Midterm Exam =25 %
Final Exam = 50%
|
Course Coordinator |
Muhammad Asfand Yar |
URL (if any) |
|
Current Catalog Description |
Introduction to problem solving, a brief review of Von-Neumann architecture, Introduction to programming, role of compiler and linker, introduction to algorithms, basic data types and variables, input/output constructs, arithmetic, comparison and logical operators, conditional statements and execution flow for conditional statements, repetitive statements and execution flow for repetitive statements, lists and their memory organization, multi-dimensional lists, introduction to modular programming, function definition and calling, stack rolling and unrolling, string and string operations, pointers/references, static and dynamic memory allocation, File I/O operations |
Textbook (or Laboratory Manual for Laboratory Courses) |
Object Oriented Programming in C++ by Robert Lafore |
Reference Material |
1. Starting out with Python, 4th Edition, Tony Gaddis. 2. Starting out with Programming Logic & Degins, 4th Edition, Tony Gaddis, 3. The C Programming Language, 2nd Edition by Brian W. Kernighan, Dennis M. Ritchie 4. Object Oriented Programming in C++ by Robert Lafore 5. Introduction to Computation and Programming Using Python: With Application to Understanding Data, 2nd Edition by Guttag, John 6. Practice of Computing Using Python, 3rd Edition by William Punch & Richard Enbody 7. C How to Program, 7th Edition by Paul Deitel & Harvey Deitel 8. Problem Solving and Program Design in C++, 7th Edition by Jeri R. Hanly & Elliot B. Koffman |
Course Goals |
The objective of course is to introduce a disciplined approach to Problem solving methods and algorithm development. The aim is to teach the syntax and vocabulary of a modern programming language like C++. The significant philosophies and logical programming, including models for I/O, processing, and all related terminology will be taught. Simple programs will be constructed, using a number of different logical, calculation and algorithm. |
Course Learning Outcomes (CLOs): |
At the end of the course the students will be able to: | Domain | BT Level* |
Understand basic problem solving steps and logic constructs |
C |
2 |
Apply basic programing concepts |
C |
3 |
Design and implement algorithms to solve real world problems. |
C |
3 |
* BT= Bloom’s Taxonomy, C=Cognitive domain, P=Psychomotor domain, A= Affective domain |
|
|
|
Topics Covered in the Course, with Number of Lectures on Each Topic (assume 15-week instruction and one-hour lectures) |
Week | Lecture | Topics Covered |
Week 1 |
1 |
Introduction to problem solving, |
|
2 |
review of Von-Neumann architecture |
Week 2 |
3 |
Introduction to programming, role of compiler and linker, introduction to algorithms, basic data types and variables |
|
4 |
input/output In C++ |
Week 3 |
5 |
Creating , editing, linking, execution and debugging of C++ program Practice Exercise |
|
6 |
Constants, Operators Expression, Assignment statement |
Week 4 |
7 |
Sequential Structure |
|
8 |
arithmetic, comparison and logical operators |
Week 5 |
9 |
Boolean Expressions & Compound Boolean Expressions |
|
10 |
conditional statements and execution flow for conditional statements |
Week 6 |
11 |
Single Alternate decision structure and dual alternate decision Structure. |
|
12 |
Nested Decision Structures |
Week 7 |
13 |
Switch Statments |
|
14 |
Quiz, Practice of Decision Structures |
Week 8 |
1 hours |
Mid Term |
Week 9 |
15 |
Repetition Structures Introduction, (while, do while & for loop) |
|
16 |
While & do While Loop Practice |
Week 10 |
17 |
for loop |
|
18 |
Nested loop |
Week 11 |
19 |
Printing different shapes in C++ using Nested Loops |
|
20 |
Practice+ 30 min QUIZ |
Week 12 |
21 |
Arrays |
|
22 |
Arrays and their memory organization |
Week 13 |
23 |
2-dimensional Arrays |
|
24 |
multi-dimensional Arrays, string and string operations |
Week 14 |
25 |
Functions Introduction, type of functions built-in and user defiend |
|
26 |
Declaring, Defining and Calling a function |
Week 15 |
27 |
references to Variables |
|
28 |
pointers , Call by value & call by reference |
Week 16 |
29 |
File I/O operations |
|
30 |
Practice file handling |
Week 17 |
2 hours |
Final Term |
|
Laboratory Projects/Experiments Done in the Course |
|
Programming Assignments Done in the Course |
|