[Objective] [Computer Facilities] [Course Timing] [Grading Scheme]
Students learn to solve mathematical and scientific problems at school level. However, these problems have normally analytical solution. In this style of problem solving students deal with functions/equations where values are plugged in and results are obtained by evaluating the function/equation. One may have to apply a series of such functions to solve these problems. This style of problem solving works well for the domains which have analytical solutions, and generally operate on numbers.
There are large a number of problems which have a closed form solution that can be expressed by an equations. However, it may not be possible (or efficient) to solve such problems analytically. Such problems have to be solved algorithmically; the result may be either exact or approximate. Also, one may have to operate on non-numeric values like symbols and more complex structures. For problems in this domain initial values and final results need not be numbers but can be complex structures.
The chief aim of this course is to learn techniques for solving problems which require algorithmic approach and/or which operate on complex structures.
This requires that we know:
what an algorithm is,
how to express solution of a problem using an algorithm,
how to argue that the solution (algorithm) is correct and efficient
how to use non numeric domains (complex data structures)
However, how do we demonstrate that our algorithms work with real data? It will be very complex and tedious task to demonstrate (and in reasonable time) that an algorithm works with real data. Computer and programming languages come in as very handy tools for this purpose. There are a lot of programming languages which can be used to express algorithms precisely. Computers provide support for realizing these algorithms expressed in these programming languages.
Therefore, we should also know:
how a computer works and how to use it
how to express an algorithm using a programming language
how to make these programs work on the computer
how to remove errors from programs
Therefore, we will also learn how to use a computer and a programming language called Java. This language will be used to express the algorithms we learn in the course. With this background the aim of the course is to learn:
techniques for solving problems which require algorithmic approach and/or which operate on complex structures.
how to use computers
how to express algorithms using Java
how to make these Java programs work on computers
An important thing to remember is that the course in not just about learning programming language Java and its intricacies.
You are expected to use the computers provided in the new Esc101 lab located on the upper storey of the Computing Center. During lab hours these will be reserved for your use. During other hours, you will have to share it with other CC users.
Labs:
The lab assignment must be completed during the lab hours, i.e. 10:00 am to 1:00 pm, on the specified day for your section. Your attendance during these 3 hours is absolutely essential otherwise you automatically receive zero for that assignment. You are advised to also see the assignment given to other sections and try to solve them as well, in your spare time.
Lecture:
Time: Mon, Wed, Thu 0800-0900
Venue: Lecture Hall L-7
Tutorials:
Time: Tuesday 0800-0900
Venue: Tutorial Complex, Sections B1 to B10: Rooms TB101 to TB110
Labs:
Time: Monday to Friday 1000-1300
Venue: Computer Centre - First Floor labs
Two mid semester exams 15% + 15% One end semester exam 30% One compulsory lab test 10% A project or a second lab test (your choice) 20% Weekly lab sessions 10% Tutorial quizzes 10% (this is extra credit)