IITM BS Programming Concepts using Java (BSCS2005): Syllabus and Tips
By Editorial TeamLast reviewed
5 min readData ScienceOn this page
Programming Concepts using Java (BSCS2005) is a 4 credit diploma level course in the IITM BS in Data Science. It is part of the Diploma in Programming. The course page lists no prerequisite, but you must pass all 8 foundation courses before any diploma course. It uses Java to teach object oriented programming, exception handling and concurrent programming. The course description also names event driven and functional programming.
| Code | Credits | Level | Prerequisites |
|---|---|---|---|
| BSCS2005 | 4 | Diploma | None (all foundation courses done) |
The course page names Madhavan Mukund, Director of the Chennai Mathematical Institute, as the instructor. He also teaches PDSA.
Name check: the DS handbook lists this course simply as "Java programming" in the Diploma in Programming.
What you learn
- Weeks 1 to 4: object oriented basics. Class hierarchies, inheritance and overriding, polymorphism, and abstract classes. You learn to hide how a class works behind a clean interface.
- Weeks 5 and 6: working with groups of objects. Collections and iterators, then generics and callbacks.
- Weeks 7 to 9: structure and errors. Two weeks on cloning, reading and writing objects (serialisation) and packages. Then exception handling, so your program fails gracefully.
- Weeks 10 to 12: concurrency. Three full weeks on running several tasks at the same time and keeping shared data safe. The course page names locks, semaphores and monitors.
How it is assessed
The course page lists the standard pattern: 12 weeks of coursework, weekly online assignments, 2 in-person invigilated quizzes and 1 in-person invigilated end term exam. It does not mention a programming exam. The handbook says assessment details can vary by course, so check your grading document in week 1. If an OPPE applies, see what OPPE is.
Where it counts
- Diploma in Programming. Java is one of the 6 theory courses. See the Diploma in Programming.
- Electronic Systems students. The ES handbook lists it (CS2005, 4 credits, no prerequisite) as an open elective from the DS programme.
- Terms. The DS handbook says all diploma courses are offered every term.
The course page and the ES handbook agree on 4 credits and no prerequisite.
Who finds it hard
If Python is your only language, the first weeks may feel slow and strict. Java wants a type for every variable and a class around every program, and it will not run until the compiler is happy. The bigger jump comes in weeks 10 to 12. Bugs in concurrent programs may appear on one run and vanish on the next, which makes them hard to catch by testing alone.
How to prepare
- Set up Java before week 1. Install a JDK and make sure you can compile and run a small program from the terminal. Do not lose week 1 to setup.
- Translate old Python programs. Take three programs from your Python course and rewrite them in Java. You will learn the syntax faster than from notes.
- Draw class diagrams. For each inheritance example, draw boxes for the classes and arrows for "is a" links. Mark which methods are overridden. Polymorphism questions are much easier with this picture in front of you.
- Read error messages fully. Java compile errors tell you the line and the reason. Keep a list of the ones you meet most.
- See a race condition yourself. Start two threads that each add 1 to a shared counter 10,000 times. Without any locking, the final value can come out below 20,000. Then add locking and watch it become correct. That one experiment explains weeks 10 to 12 better than any definition.
What to take before or after
Before Java, you need a firm base in Programming in Python (BSCS1002). Java and PDSA (BSCS2002) share an instructor and both have no prerequisite, so they can run side by side. At the degree level, Programming in C (BSCS3005) is another language course and a prerequisite for the Minor in Computer Systems.
Common questions
Do I need to know Java before the course?
No. The course page lists no prerequisite. You will already know loops, functions and lists from the foundation level Python course, and that helps a lot.
Is Java part of the Diploma in Data Science?
No. The DS handbook places Java programming in the Diploma in Programming. If you plan to reach the degree level, you need both diplomas, so you will take it at some point.
Why does the course spend three weeks on concurrency?
The course page lists concurrent programming for weeks 10, 11 and 12, and controlling shared data with locks, semaphores and monitors is one of its stated goals. Give these weeks extra practice time, since the bugs are harder to see.
Which IDE should I use?
The course page does not name one. Any setup works as long as you can compile and run Java yourself. Practise without heavy auto-complete at least some of the time, so you can write code from memory.
14 Java handwritten and PDF notes by students
Official sources
Read next
- IITM BS Business Data Management (BSMS2001): Syllabus and Tips
- IITM BS Machine Learning Practice (BSCS2008): Syllabus and Tips
- IITM BS Machine Learning Techniques (BSCS2007): Syllabus and Tips
- IITM BS Modern Application Development II (BSCS2006): Syllabus and Tips
- IITM BS BSCS2002: Programming, Data Structures and Algorithms using Python
- IITM BS Database Management Systems (BSCS2001): Syllabus and Tips