Dr.
Jinlin Chen
CS111                                         NSB A118
                                              Dept. of Computer science
                                                                          Tel:
                                                                          Fax:
                                                                                    718-997-3497 (o)
                                                                                    718-997-3513
Course Syllabus                               Queens College, CUNY
                                              Flushing, 11367, NY
                                                                          E-mail:
                                                                          Url:
                                                                                    jchen@cs.qc.edu
                                                                                    http://alpha.cs.qc.edu
      CS111: Algorithmic Problem Solving
1. General Information
 The Course
  Name:                    Algorithmic Problem Solving (CS111)
  Credit:                  3.0
  Who:                     Dr. Jinlin Chen (Instructor), Mr. Gerald Landau (lab instructor)
 Official Description
  Introduction to the principles and practice of programming. Topics include primitive data
  types; concepts of object, class, and method; control structures; arrays; procedures and
  functions; parameter passing; scope and lifetime of variables; input and output;
  documentation.
  Prerequisite(s): MATH 120 or MATH 141 or 151 or equivalent
 Course Objectives
  After successful completion of this course, you are expected to be able to
  •   Understand basic concept of programming
  •   Write basic programs using C++
  •   Understand basic technique of problem solving using a programming language
  •   Build necessary programming background for advanced topics in computer science
2. Course Policies
 Lectures and Lab sessions
  The course is delivered in two different formats, classroom lectures and lab practices.
  Classroom lectures focus on basic concepts and theory. Lab sessions focus on code-writing
  and problem solving in a developing environment, explaining and demonstrating language-
  specific details not covered in lectures, as well as exercises other than code-writing.
 Academic Integrity
  Please be fully aware of maintaining integrity in all of your work. All work must be your
  own. By submitting work under your name, you are indicating that you have completed the
  assignment independently. You should not have copied it from others or let others copy your
  work. Any violation will result in no credit for the affected assignment and may be subject to
  immediate failure from the course.
 Attendance
  Class attendance is one of the most important factors for your success in learning. Course
  books are only references for the course, and they do not always cover our specific
  requirements. Interaction in class learning is not substitutable. Therefore, please try to attend
                                               - 6/6 -
                                              Dr. Jinlin Chen
CS111                                         NSB A118
                                              Dept. of Computer science
                                                                          Tel:
                                                                          Fax:
                                                                                    718-997-3497 (o)
                                                                                    718-997-3513
Course Syllabus                               Queens College, CUNY
                                              Flushing, 11367, NY
                                                                          E-mail:
                                                                          Url:
                                                                                    jchen@cs.qc.edu
                                                                                    http://alpha.cs.qc.edu
   the class if possible. If you miss any lectures, make sure you have a copy of the slides which
   can be found from the course site in Blackboard.
 Practicing
   This course will focus on basic common features of programming languages for problem
   solving. The best way to learn programming is to write code for real problems. Therefore, it
   is very important that you have enough time for practicing. The time spent for practicing will
   pay off generously - you will learn much more by yourself and will be more efficient for
   your future work.
 Communication
   Discussion board of the course site in Blackboard will be the major tool for our
   communication. Please try to send technical questions concerning the course via Blackboard.
   Your questions are the best feedback to the course. You are also encouraged to answer other
   students' questions in Blackboard. Email will be used ONLY for non-technical issues.
 Students with Disabilities
   If you have a disability that requires special accommodations, please contact both your
   instructor and Office of Special Services as early as possible in the session.
3. Course Assessment
 Projects
   There will be four projects for this course. Detailed project policy will be specified during
   lab session by lab instructor.
 Exams
   There will be two CLOSED book exams for this course. There will be NO make-up exam
   unless an official document is submitted and pre-approved by the instructor.
 Quizzes
   Quizzes are designed to help you better understand what you have learned. The lowest quiz
   score will NOT be counted towards the course grade. This allows for sickness, emergencies
   etc. Therefore please do not ask for remedy if you miss one or more quizzes.
 Bonus points
   You will be rewarded up to 5 activity bonus points when determining your final grade. By
   activity I mean raising good questions in Blackboard, volunteering to solve problems at the
   Blackboard if prompted, and providing creative suggestions that improve the course, etc.
 Time load
   Attending lectures is only part of the whole learning process. The actual learning also takes
   place outside the classroom. You are expected to spend about 4-6 hours (or even more)
   quality time outside the classroom for each lecture. The actual load will vary depending on
   your background.
 Grading
   Your final score for the course will be determined as follows:
   Projects (30%) + Quizzes/participation (20%) + Midterm exam (20%) + Final exam (30%) +
   Bonus points
                                               - 6/6 -
                                              Dr. Jinlin Chen
CS111                                         NSB A118
                                              Dept. of Computer science
                                                                               Tel:
                                                                               Fax:
                                                                                         718-997-3497 (o)
                                                                                         718-997-3513
Course Syllabus                               Queens College, CUNY
                                              Flushing, 11367, NY
                                                                               E-mail:
                                                                               Url:
                                                                                         jchen@cs.qc.edu
                                                                                         http://alpha.cs.qc.edu
  The final score will be converted to a letter grade using the following scale:
  A:          Score≥90;             B+:     87≤Score<90;                  B:          80≤Score<87;
  C+:         77≤Score<80;          C:      70≤Score<77;                  D:          60≤Score<70;
  F:          Score<60
4. Books and Tools
 Course Textbooks
  Required:
       1. C++ Without Fear
       Author: Brian Overland
       Publisher: Prentics Hall
       ISBN: 0-321-24695-0
  Reference:
       1. Thinking in C++, Volume 1 (2nd Edition) (You can download it freely at
       http://www.mindviewinc.com/)
       Author: Bruce Eckel
       Publisher: Prentice Hall
       ISBN: 0139798099
 Course Tools
  Blackboard and computer accounts
  The key tool for the course is Blackboard. You need have an effective account to login. We
  will use Blackboard as the major communication tool during this course, to raise/answer
  questions and to submit electronic version of the assignments. Make sure that you have
  correctly registered your email account in your user profile in Blackboard.
  Note: accessing the CUNY Central BlackBoard site is through www.cuny.edu. All you need
  is a Portal ID. To get a Portal ID, go to www.cuny.edu and click on "Log In" at the bottom
  left. Then click on "Register New User".
  Software for the course
  Visual Studio.net (you can access it in the lab or install it at home. The department hold a
  site license which can be used freely by students)
                                               - 6/6 -
                                           Dr. Jinlin Chen
CS111                                      NSB A118
                                           Dept. of Computer science
                                                                        Tel:
                                                                        Fax:
                                                                                  718-997-3497 (o)
                                                                                  718-997-3513
Course Syllabus                            Queens College, CUNY
                                           Flushing, 11367, NY
                                                                        E-mail:
                                                                        Url:
                                                                                  jchen@cs.qc.edu
                                                                                  http://alpha.cs.qc.edu
5. Tentative Course Schedule (Summer class)
(Note: lab session details will be given by the lab instructor)
    Lecture                Content                                     Note
              Unix commands, pine, pico, g++
              and a few others to see what is,
              such as ls, cat.
    Lab 1     Create hello.cpp using g++ -c
              followed by g++ -o to stress
              compile, link, and execute
            Course policy overview,
            Programming overview
    Lecture
            C++ overview                              Reading: Ch1 (P1-20)
    1
            First simple C++ program
              More unix commands, such as
    Lab 2     passwd, pico .bash_profile
              Project 1
    Lecture Basic concept of data type, I/O           Reading: Ch 1(P20-30)
    2       Basic concept of String
              Continued work on project 1. New
    Lab 3
              unix commands make and tar
            Decisions (1)
    Lecture If else
                                                      Reading: Ch 2(P33-51)
    3       True and false
            while
    Lab 4     Project 2
            Decisions (2)
            Increment and decrement
    Lecture
            Statements vs. expressions                Reading: Ch 2 (p51-63)
    4
            Boolean logic
            Math library
    Lab 5     Project 2
    Lecture
            For loop                                  Reading: Ch. 3
    5
    Lab 6
    Lecture
            Midterm exam (close book)
    6
    Lab 7
            Functions (1)
    Lecture Concept of function                       Reading: Ch 4 (P81-95)
    7       Function calls and program flow
            Using functions
                                            - 6/6 -
                                        Dr. Jinlin Chen
CS111                                   NSB A118
                                        Dept. of Computer science
                                                                    Tel:
                                                                    Fax:
                                                                              718-997-3497 (o)
                                                                              718-997-3513
Course Syllabus                         Queens College, CUNY
                                        Flushing, 11367, NY
                                                                    E-mail:
                                                                    Url:
                                                                              jchen@cs.qc.edu
                                                                              http://alpha.cs.qc.edu
   Lab 8
           Functions (2)
   Lecture Local and global variables
                                                   Reading: Ch 4 (P95-110)
   8       Recursive functions
   Lab 9
           Arrays(1)
                                                   Reading: Ch5 (P111-122)
   Lecture Concept of array
   9       Array initialization
           Array index
   Lab 10
           Arrays(2)                               Reading: Ch5 (P122-137)
   Lecture
           Arrays of strings
   10
           Multi-dimensional array
   Lab 11
   Lecture
           Strings                                 Reading: Ch 7
   11
   Lab 12
   Lecture
           Final exam (close book)                 Room SB C205
   12
                                         - 6/6 -