Courses Outlines
CS101(introduction to computing)
Marks
distribution …
Assignments (15%)
Almost one every week, 13 in all
No credit for late submissions
The lowest 2 assignment grades will be dropped
Midterm Exam (35%)
During the 8th week
Duration: One hour
Will cover all material covered during the first seven weeks
Final Exam (50%)
During the 16th week
Will cover the whole of the course with a slight emphasis on the material covered after
the midterm exam
Duration: 2 hours
First Assignment
Send an email message to me at altaf@vu.edu.pk with the subject “Assignment 1” giving
me some information (in around 50 words) about what you see yourself doing ten years
from now
Go to the CS101 message board and post a message (consisting of approx. 50 words)
about how we could make the contents of this course more suitable for your individual
needs. The subject for this message should be “Assignment 1”
Consult the CS101 syllabus for the submission deadline
CS201(Introduction to programming)
What is programming
As this course is titled “Introduction to programming”, therefore it is most essential
and appropriate to understand what programming really means. Let us first see a
widely known definition of programming.
Definition: "A program is a precise sequence of steps to solve a particular problem.”
It means that when we say that we have a program, it actually means that we know
about a complete set activities to be performed in a particular order. The purpose of
these activities is to solve a given problem.
Alan Perlis, a professor at Yale University, says:
"It goes against the grain of modern education to teach children to program. What fun
is there in making plans, acquiring discipline in organizing thoughts, devoting
attention to detail and learning to be self-critical? "
It is a sarcastic statement about modern education, and it means that the modern
education is not developing critical skills like planning, organizing and paying
attention to detail. Practically, in our day to day lives we are constantly planning,
organizing and paying attention to fine details (if we want our plans to succeed). And
it is also fun to do these activities. For example, for a picnic trip we plan where to go,
what to wear, what to take for lunch, organize travel details and have a good time
while doing so.
When we talk about computer programming then as Mr. Steve Summit puts it
“At its most basic level, programming a computer simply means telling it what to do,
and this vapid-sounding definition is not even a joke. There are no other truly
fundamental aspects of computer programming; everything else we talk about will
simply be the details of a particular, usually artificial, mechanism for telling a
computer what to do. Sometimes these mechanisms are chosen because they have
been found to be convenient for programmers (people) to use; other times they have
been chosen because they're easy for the computer to understand. The first hard thing
about programming is to learn, become comfortable with, and accept these artificial
mechanisms, whether they make ``sense'' to you or not. “
CS301(Data Structure)
Introduction to Data Structures
Let’s discuss why we need data structures and what sort of problems can be solved
with their use. Data structures help us to organize the data in the computer, resulting
in more efficient programs. An efficient program executes faster and helps minimize
the usage of resources like memory, disk. Computers are getting more powerful with
the passage of time with the increase in CPU speed in GHz, availability of faster
network and the maximization of disk space. Therefore people have started solving
more and more complex problems. As computer applications are becoming complex,
so there is need for more resources. This does not mean that we should buy a new
computer to make the application execute faster. Our effort should be to ensue that the
solution is achieved with the help of programming, data structures and algorithm.
What does organizing the data mean? It means that the data should be arranged in a
way that it is easily accessible. The data is inside the computer and we want to see it.
We may also perform some calculations on it. Suppose the data contains some
numbers and the programmer wants to calculate the average, standard deviation etc.
May be we have a list of names and want to search a particular name in it. To solve
such problems, data structures and algorithm are used. Sometimes you may realize
that the application is too slow and taking more time. There are chances that it may be
due to the data structure used, not due to the CPU speed and memory. We will see
such examples. In the assignments, you will also check whether the data structure in
the program is beneficial or not. You may have two data structures and try to decide
which one is more suitable for the resolution of the problem.
As discussed earlier, a solution is said to be efficient if it solves the problem within its
resource constraints. What does it mean? In the computer, we have hard disk, memory
and other hardware. Secondly we have time. Suppose you have some program that
solves the problem but takes two months. It will be of no use. Usually, you don’t have
this much time and cannot wait for two months. Suppose the data is too huge to be
stored in disk. Here we have also the problem of resources. This means that we have
to write programs considering the resources to achieve some solution as soon as
possible. There is always cost associated with these resources. We may need a faster
and better CPU which can be purchased. Sometimes, we may need to buy memory.
As long as data structures and programs are concerned, you have to invest your own
time for this. While working in a company, you will be paid for this. All these
requirements including computer, your time and computer time will decide that the
solution you have provided is suitable or not. If its advantages are not obtained, then
either program or computer is not good.
So the purchase of a faster computer, while studying this course, does not necessarily
help us in the resolution of the problem. In the course of “Computer Architecture”
you will see how the more efficient solutions can be prepared with the hardware. In
this course, we will use the software i.e. data structures, algorithms and the recipes
through which the computer problems may be resolved with a faster solution
etc
No comments