Download - 01 computer programming
Computer Programming
Description:
Basic programming-in-the-small abilities and concepts.
Highlights include procedural and functional abstraction with
simple built-in data type manipulation.
Basic abilities of writing, executing and debugging programs.
11/26/2012
So What is Programming Like?
It’s really hard to describe!
Many similarities to solving “word problems”
In math Translate a “problem description“ into a ”formal solution Symbol ”
Some people describe it as “puzzle solving”
Some people describe it as “problem solving”
A mix of high-level creativity and low-level picky details11/26/2012
Stages of Problem Solving
Ultimate goal: use a computer to solve a problem
Typical stages of building a solution:
Clearly specify the problem
Analyze the problem
Design an algorithm to solve the problem
Implement the algorithm (write the program)
Test and verify the completed program
Maintain and update the program11/26/2012
Focus
All stages are important.
In this course, we ignore none of them But we focus on:
Algorithm developmentWriting a program to implement the algorithm
11/26/2012
CT 401: COURSE STRUCTURE
100 Marks course
Course Organization:
Lecture: 4 periods a week
Tutorial: 1 period a week
10 minutes of Quiz session during each lecture
5 Programming projects (To be done by you outside of class, on your
own time)
Two midterm exams
Final exam11/26/2012
CT 401: Goals
We will learn
Read: Understand programs written in C language
Write: Design and implement programs using C language
Compile: Use compiler to convert C code into executable file
Execute: Run corresponding code to get results
Debug: Identify and fix syntax and semantic errors in C code.
Prepare: Have Base for learning other high level languages like C++, JAVA, etc.
11/26/2012
Using the BOOK
Not everything in the course will be covered in the slides…. So you are required to refer the BOOKS
Not everything, instructor says, from the slides will be correct and complete…. So you need to verify the contents using the BOOK and submit the summary report in the NEXT CLASS
You need both! And then some...11/26/2012
Beyond the BOOKS/SLIDES
You won’t learn programming by reading the BOOKS as might you read the other theoretical subjects
You won’t learn programming by watching the lectures slides as might you watch a TV program
What you need in addition is:The ability to ask questions and get them answeredAnd most important: hands-on practice
11/26/2012
The Importance of Practice
You wouldn’t expect to learn to SING/DANCE just by
watching a TV series on itThere is no substitute for practice. And no one can do it
for you.
The same holds for learning to program.
11/26/2012
Tips for Success
Take the material in orderWith rare exceptions:you can’t skip any lecture but I won’t take attendanceyou can’t take material out of order
Seek help if you get behind
Practice, Practice ….. And MORE PRACTICE!
Master each topic before continuing to the next
11/26/2012
Where Do You Go From Here?
The next course is “Object Oriented Programming (OOP)“ in
the third semester
A direct continuation of Computer Programming
OOP introduces the C++ programming language
On the fourth-semester course called "Data Structures“
continues with the application of C/C++ programming
Languages 11/26/2012
What is OOP like?
100 marks; 4-5 projects
15-30 files in later projects (you don’t write all)
Students say:
"intense", "time-consuming"
Language: C++
Initially just like C
Learn programming concepts to support writing larger programs
Eventually objects + classes (“object-oriented”)
11/26/2012
What is Covered in a 2nd and 3rd Courses?
Lots of programming practicebut less class discussion of it
Data structuresmany involving pointersabstract data types (ADTs)
Algorithmsmany recursive
Problem-solving & designFoundation for later CS courses
11/26/2012
Going on in C
There is much about the C language we won't cover
You will have a foundation to master more advanced C
programming features at the end of the course
Learning more C may or may not be useful but you are
required to PASS the EXAMS for completing your degree
11/26/2012
Programming Concepts
We will use C, but the concepts go beyond the C languageVariables; data types; values
Conditions: conditional statements and conditional execution
Loops
Recursion
Functions: parameters (including pointers), call/return
Data structuring: arrays; structures;
Input/Output11/26/2012
Beyond Programming…
Compiler concepts
syntax vs semantics; compilation steps; libraries; debugging
What is a computer?
Visualize memory, CPU, I/O operation
Instruction execution, data movement
Problem solving
Abstraction
Functional decomposition, Data decomposition
Algorithms
11/26/2012
Building and Understanding Software
Software give computer its personality
Computers are booming I.e., software is.
Programs are complex things
Compare to a bridge or a novel
What's the effect of a small error?
Humanizing complexity
Analysis, design, testing, communicating
11/26/2012
Who am I?
Manish AryalHead,
Department of Computer Engineering
B.E. Computer (KEC, 2003)
M.S. Information and Communication Engineering (Pulchowk Campus, 2005)
Working @ KEC for last EIGHT Years
9841285747
https://www.facebook.com/aryalmanish
7:00 AM – 4:30 PM, Monday- Friday 11/26/2012