Lahore University of Management Sciences CS 200 – Introduction to Programming Spring 2015 Instructor Room No. Office Hours Email Telephone Secretary/TA TA Office Hours Course URL (if any) Naveed Arshad 9-124 TBA naveedarshad@lums.edu.pk 8190, TBA TBA TBA Course Basics Credit Hours Lecture(s) Recitation/Lab (per week) Tutorial (per week) 3 Nbr of Lec(s) Per Week Nbr of Lec(s) Per Week Nbr of Lec(s) Per Week 2 1 1 Duration Duration Duration 1 hour and 50 minutes 2 horus and 50 minutes 1 hour and 50 minutes Course Distribution Core Elective Open for Student Category Close for Student Category COURSE DESCRIPTION This course teaches computer programming using a mix of on-paper and on-computer exercises. It focuses on procedural as well as objectoriented programming using C++.The main concepts discussed are: Variables, functions, structures, classes, objects, some commonly useful data structures, algorithms and algorithmic complexity. COURSE PREREQUISITE(S) None COURSE OBJECTIVES Become familiar with breaking down a problem into objects rather than procedures Learn object-oriented programming in C++ Learn what is available o_ the shelf to facilitate C++ development (tools, libraries) Learning Outcomes Be comfortable programming in C++ Be able to adapt other programming languages and platforms Be able to integrate with other’s code and libraries Lahore University of Management Sciences Grading Breakup and Policy Assignments and labs: 30% First Midterm Examination: 15% Second Midterm Examination: 25% Labs/assignments: 30% Examination Detail Midterm Exam Preferred Date: TBA Exam Specifications: In lab exam with programming tasks to do on a computer Yes Final Exam COURSE OVERVIEW Module 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Topics Introduction, Binary, Bits and Bytes, ASCII, Programming, Algorithms, Statements, Boolean expressions, Conditions, Loops, Variables, Threads, Events C++ Source code, Compilers, Object code, SSH, GCC, Functions, Comments, Standard output, Arithmetic operators, Precedence, Associativity, Local variables, Types, Casting, Standard input, Libraries, Boolean expressions continued, Conditions continued, Loops continued Functions continued, Global variables, Parameters, Return values, Stack Frames, Scope,Arrays, Strings, Command line arguments, Recursion, Cryptography Linear search, Binary search, Big-O notation, Bubble sort, Selection sort, Insertionsort, Debugging Merge sort, Structures, Dynamic memory allocation, Stack and heap, Pointers, Debugging continued Pointers continued, File I/O, Forensics, Linked lists Bitwise operators, Hash tables, Trees, Binary search trees Object oriented programming, Classes and objects, Inheritance, Constructors and destructors, Polymorphism Virtual Functions, Abstract classes, verloading, Overriding Stream I/O Exception handling, Templates, STL Textbook(s)/Supplementary Readings “A computer science tapestry” by Owen L. Astrachan available online at http://www.cs.duke.edu/csed/tapestry/