Lahore University of Management Sciences
CS 100: Computational Problem Solving
Summer 2021
Instructor
Junaid Haroon Siddiqui
Email
junaid.siddiqui@lums.edu.pk
Mode of instruction
Online via Zoom
Course Description
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
Assignments
15%
Labs
25%
Midterm Exam
25%
Final Exam
35%
Course overview (Tentative)
Module
Objectives / Application
1
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
2
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)