Lahore University of Management Sciences
CS 100: Computational Problem Solving
Summer 2021
junaid.siddiqui@lums.edu.pk
This course provides a conceptual and practical introduction to computer programming. The focus is on problem-solving rather than
a specific language. Generic principles are taught through the use of the C++ programming language. Computer programming is
essential for students of all disciplines as it teaches them fundamental problem-solving skills that enhance their logical and creative
imagination. They develop resilience through debugging, which signifies failure as a learning opportunity and nurtures the ability to
bounce back after failure. This course 1) adapts TPRS storytelling techniques designed to learn natural languages for learning
programming, and 2) focuses on real world problems inspired by the arts, humanities, social sciences, and engineering to build
interest in problems-solving. This course attempts to map ideas students already know from real life to programming concepts. By
the end of this course, students should be able to develop and implement algorithms for small problems.
Grading Breakup and Policy
Course overview (Tentative)
• Understanding repetition and decision making as problem-solving tools
• Understanding the capabilities and limitations of computers
• How computers represent information
• Storing short term data in storage boxes
• Indexed lists of information and histograms
• Functions as sub-text
• Searching through data
• Data persistence – file I/O
• Graphs, maps, tuples, and recommendation systems
Optional Readings (no required textbook)