CS 699 Software Laboratory

July-Nov 2015

Labs on Wednesdays
Lectures on Mondays
First Evaluations expect by Fridays
Second Evaluation expect by Tuesdays

A typical CSE PG course with practice in focus
Credits = 8

Class strength = 113
TAs = 7

The Lab Model
Lab Statement
The statement will be up by 2 pm on the lab day on moodle page.
It will be based on lecture material and demos given in that week.

Freely experiment, discuss, and write programs during the lab, and you can continue to improve them after the lab day during the same week. All demos and lecture material and manuals are made available on moodle.

Soft Deadlines and Hard Deadlines
Labs will have  a soft deadline and a hard deadline
Submit your first programs within the soft deadline.
TAs will evaluate your soft submissions either manually or by means of automatic evaluation through scripts, and give you a letter
evaluation in 4 bins: "Complete", "Improve", "Primitive", and "Absent"
You are free to make improvements to your first submissions seeing the report generated by the evaluation, and retry once more within the hard deadline.
No submissions will accepted after the hard deadline unless there is compelling reason.


What if  there is a holiday on the scheduled lab day?

You may enjoy your holiday, but we will still release a statement since we cannot afford to lose an entire
lab week. Suitable additional time will be given during such weeks.

Policy Response to Copying in Labs
Both copies (the donor and the taker) will be given (-Complete) one negative grade. 
You will risk an XX grade if you copy. Copy detection will run anytime during the semester.
Earn your grades by fair means.
What is a Good Help in a collaborative setup and how do we learn
Again, you are free to discuss, ask and help others, but do not write their programs or ask someone to write your program. We cannot eat on someone else's behalf in order to fill their stomach. The same is true with programming and knowledge acquisition. You are not helping other in learning by giving copies and ready-made solutions. Do find mistakes, do provide references, but don't give or ask for full solutions, let everyone explore and find out the answer by one's own. It is not necessary that everyone will do everything to 100%, given the time scales, amount of knowledge, and the fast pace of the program. So see to your grade as not an indicator of your ability,  but merely as a reflection of how much more you will have to put in to absorb the remaining material. You can do all that at your own pace if the need be. Eventually you may not need all that you learn at one time, but by exploring on your own and trying things out first hand, you will learn to learn. Collaboration and discussion is a very good way to share ideas, but the try by oneself is irreplaceable. To get the balance on the bicycle, you have got to get in on your own, no matter how much help others give you during your learning to ride the bicycle, they remove their entire support in one moment and you have got to balance it on your own!! That is called true understanding! Appreciate the fact that it takes time and efforts. Mistakes can happen during learning, which is only a part of the learning process. We do learn from mistakes. To recognize a mistake as a mistake is knowledge. Our mind automatically builds it by observing the mistakes. Knowledge eventually goes so deep that if you are not observant at every step, you won't even remember all your exact steps, such as those in the first bicycle experience, or your first walking or talking experience.
How is the grade computed?
There are marks for participation and attendance in labs.
We will be using your letter evaluation towards computation of a final grade.
A major portion of your course grade will come from written test and online programming tests.
Term projects will be done in groups of 2.
There will be a project viva and a demo for the term projects.

The Schedules

1st Week         Vim
        HTML
        Linux installation
2nd Week         Latex Basics
3rd Week         Advanced Latex
        Dia and Diagramming Profiles
4th Week         Makefiles
        Shell Programming
5th Week         Regular Expressions
        SED
6th Week         AWK
7th Week         Advanced AWK
8th Week         Midsemester Examination online Test
9th Week         Python
10th Week   
        Advanced Python
Topics upcoming         Java and Javascript
        LAMP Architecture
        Misc. Tools - profiler, debugger, lex and yacc
        graph plotter, ide, version control etc.

        Advanced HTML, CSS
Term Projects
  The Schedule will be announced soon