CIS 2300: Programming and Computational Thinking Paul H. Chook Department of Information Systems and Statistics Course Syllabus – Fall 2023 Instructor: Stanley Wine E-Mail: stanley.wine@baruch.cuny.edu Office phone: (646) 312-3413 Contact me by email, not phone Office Hours: by appointment Section: CMWA Code: 17238 Mode: In person Course coordinator: Professor Radhika Jain, radhika.jain@baruch.cuny.edu Class website: www.cuny.edu Office: VC 12-210C Baruch College, Vertical Campus, 55 Lexington Avenue, cube 12-210C (look for door marked ZSB Faculty Offices 12-210). Class room/time: VC 4120, Mon. and Wed 10:45 – 12:00 Course Description: Computational thinking is a fundamental skill for all students irrespective of the business discipline. This course will cover fundamental principles and concepts required for problem-formulation and problem-solving, and not just programming. The goal of this course is to equip students with the basic ability to use computational principles such as iteration, abstraction, recursion, and functional decomposition. This course will introduce students to basic programming constructs such as control statements and data structures to facilitate learning of these computational principles. This is an introductory course intended for students with little or no programming background. Note: Students cannot get credit for both CIS 2300 and MTH 3300. CIS majors will be required to take an additional CIS course if receiving credit for MTH 3300 to satisfy the 24-credit requirement for the CIS major. 3 hours; 3 credits Pre-requisites: None Course Learning Goals: Upon successful completion of this course, students will be able to: Demonstrate the understanding of and utilize a computational approach to solving problems. Decompose bigger problems in smaller chunks and put them back together to solve bigger problems. Develop comprehensive programs that can achieve some useful objective. Write code to effectively solve problems and achieve objective goals. BBA Learning Goals: 1. Analytical Skills: Students will possess the analytical and critical thinking skills to evaluate issues faced in business and professional careers. 2. Technological Skills: Students will possess the necessary technological skills to analyze problems, develop solutions and convey information. 3. Written Communication Skills: Students will have the necessary written communication skills to convey ideas and information effectively and persuasively. Required Course Materials 1. Textbook: Starting Out with Python by Tony Gaddis, 5th edition, 2021, ISBN 9780135929032. Baruch college bookstore link: https://baruch.textbookx.com/institutional/index.php?action=browse#books/3808089/ Do not CIS 2300 CMWA Syllabus Fall 2023 Version 3 8/29/2023 page 1 purchase the accompanying MyProgrammingLab; we will use CodeLab, which is free to CUNY students. You may use the 4th edition of the text, but you are responsible for any 5th edition content referenced in the course. 2. Codelab (instructions below): https://codelab.turingscraft.com/login 3. Laptop with Anaconda and IDLE installed (see Week 1 of schedule for installation instructions) and to be brought to each class meeting. 4. Access to CUNY email and Blackboard accounts. Instructions for Setting up CodeLab Account The process for students to access CodeLab (free for CUNY students.) is: Register Log In Enroll Registration: 1. Go to www.tcgo1.com OR www.tcgo2.com 2. UNDER STUDENTS: click “Register for CodeLab” 3. Follow the directions and the process, which involves verifying that you’re not a “bot” and that your email address is valid and working. 4. After registering, close all windows, exit the browser, re-open the browser and log in to CodeLab. See below. 5. Click the “add-a-course” button in the “Courses” area. When prompted, enter the Section Access Code for your section: CUNY-31046-BLJY-58 Login: 1. Go to www.tcgo1.com OR www.tcgo2.com 2. UNDER STUDENTS: click “LOGIN” the username is the email address given during registration and the password is the password selected during registration Enrollment: 1. Login Click the “add-a-course” button in the “Courses” area. When prompted, enter the Section Access Code for your section. Course Methodology and Evaluation The course is structured around a combination of class lectures, hand-on programming exercises, and individual and group assignments. Students are expected to attend lectures, read the assigned readings in advance, submit the assignments on time, and actively participate in the class. You will be called upon and asked to participate. Reading the material before you arrive in class is a MUST to do well in this course; weekly quizzes seek to ensure that the reading is done in advance. The only way to learn Python is through practice, practice, practice. In addition to the quizzes, CodeLab exercises require students to write “snippets” (small amounts) of code and are automatically graded; the student has multiple opportunities to correct the code before the CodeLab deadline. I will manually compute the Codelab scores based on whether CodeLab eventually marked an answer as correct, and will transfer that score to Blackboard. In most weeks, there will be a substantial programming assignment, which will be worked in a Jupyter notebook; the notebook will be submitted as a Blackboard attachment. There are also midterm and final exams. Overall class grades will be based on the following weights: CIS 2300 CMWA Syllabus Fall 2023 Version 3 8/29/2023 page 2 Deliverable Weekly assignments Weekly quizzes CodeLab Midterm exam Final exam Project Weight 25% 10% 5% 20% 20% 20% CodeLabs: CodeLabs are to be completed for most chapters. The labs are due soon after a chapter is introduced (due dates will be posted); late submissions are not accepted. Homework: You are to complete the Checkpoint questions at the of each section and the Review Questions at the end of each chapter. Your answers should be in your own words; verbatim copying of material from the text, web or other sources will not improve your understanding or retention. The homework should be completed for the next class meeting after we complete a chapter. The homework is intended to verify and strengthen your understanding of concepts and terminology and to prepare you for exams; it will not be collected. Quizzes/Assignments Throughout the semester, students will be expected to complete weekly assignments to help practice the concepts. Some assignments may require individual work while others may require group work. Instructions for the assignments will be made available through Blackboard as the course progresses. Only Python features and syntax which has been taught in the course may be employed on any quiz, assignment or exam. Late submissions will not be accepted for weekly assignments or quizzes. In-class Quizzes/Surveys There will be ad-hoc in-class exercises, quizzes and/or surveys. If you miss a class, arrive late, or leave early and miss an in-class quiz/survey as a result, NO makeup will be given. The purpose of the quizzes is to ensure that students complete the required reading before a topic is covered in class. Final Project There will be a final group project based on the material covered in the class. Students will be expected to work in teams of 3-4 students each. Students will be expected to identify a real world dataset and perform various analysis tasks. More detailed instructions will be available in the final project document available on the course website. Exams Exams will require hands-on work and will consist of problem-solving questions. All exams will cover material from all aspects of the class sessions (lectures, videos, in-class work, and so forth). There will be one midterm and one final examination. Exams are not expressly cumulative, but you will not be able to solve the problems on the final if you are not familiar with the midterm material, as all material builds on prior learning. Only Python syntax which has been taught in the course may be used on any quiz, assignment or exam. The last section in each chapter in our text, with the exception of the first chapter, covers Turtle Graphics; we will not be covering this material. CIS 2300 CMWA Syllabus Fall 2023 Version 3 8/29/2023 page 3 Attendance and Participation Students are expected to attend all classes, read the assigned readings before the lectures, and participate actively in class sessions. Attendance and participation are important elements of the class. Ad hoc in-class exercises such in-class assignments, quizzes, and class discussions will affect your grade. Attendance and participation are important elements of the class and they do make a difference in the final grade. If you miss any class, it is your responsibility to find out whatever you miss. Course Letter Grade Letter grades are calculated according to the Official Grading System of Baruch College. The instructor reserves the right to curve the scale when computing final grades, if deemed necessary. From (%) To (%) Letter Grade 0.0 59.9 F 60.0 67.0 D 67.1 69.9 D+ 70.0 72.9 C73.0 77.0 C 77.1 79.9 C+ 80.0 82.9 B83.0 87.0 B 87.1 89.9 B+ 90.0 92.9 A93.0 100.0 A General Course Policies Exams In case of extraordinary circumstances, students who cannot attend an exam must contact the instructor in advance and provide a written justification/documentation for their absence. The final exam must be taken in the time slot posted in the college bulletin. The exams will include materials from both the readings and from the topics covered in the lectures. Some of the lecture material may not be found in the book. Therefore, it is very important to attend class regularly and keep up with the pace of the reading assignments. Behavior during exams is expected to conform to Baruch College guidelines. Any form of cheating or communications with other students or any other incident of improper behavior will be dealt according to the guidelines established by the College. Students will have an opportunity to check their graded exams but the instructor will retain all exams. There are numerous opportunities in the form of CodeLabs, quizzes, assignments and exams for students to demonstrate their proficiency in the course content; there will be no “extra-credit” assignments. Class Attendance To avoid disruption, you should arrive to the classroom on time and leave at the end of the class. Laptops, cell phones, pagers and other electronic devices should be turned off during class and during exams, unless otherwise instructed. Website and Email Chapter materials such as slides, assignments, study guides, handouts, a list of errors in the text and other materials can be found on the website. I post frequent announcements on Blackboard, as well. You should check our Blackboard site and your email on a daily basis; I will use it to notify you of any advisories related to the course; “I didn’t know” is not an acceptable excuse. CIS 2300 CMWA Syllabus Fall 2023 Version 3 8/29/2023 page 4 The Blackboard site has a “Q & A” Discussion Board thread for each week of class. Use this to post questions about the material or assignments; hopefully, your classmates will be able to post answers! Announcements of Class Cancelations Some students posing as instructors have made announcements to classmates via email or through signs affixed to classroom doors. These announcements have indicated that a class in which an exam has been scheduled has been canceled. If I cancel a class, you will be notified via Baruch email (I will never use Gmail or any other account that a student could create in my name) and by posting an announcement on the Blackboard site. Student email I will only respond to emails from CUNY email addresses; mail from personal email accounts will be ignored. Please check your email and the BlackBoard site on a daily basis. These tools will be used to notify you of assignments and of newly posted materials, and for all advisories. Recording of Classes: Students who participate in this class with their camera on or use a profile image are agreeing to have their video or image recorded solely for the purpose of creating a record for students enrolled in the class to refer to, including those enrolled students who are unable to attend live. If you are unwilling to consent to have your profile or video image recorded, be sure to keep your camera off and do not use a profile image. Likewise, students who un-mute during class and participate orally are agreeing to have their voices recorded. If you are not willing to consent to have your voice recorded during class, you will need to keep your mute button activated and communicate exclusively using the "chat" feature, which allows students to type questions and comments live. Work Submission Standards Assignments are considered on time only if they are submitted by the due date/time as per the submission guidelines. Hand-written work will be refused and will earn no credit unless otherwise instructed. As with any other academic submission, students must do their work carefully, striving to achieve high quality work. This includes writing clearly, checking the spelling and grammar, proofreading the submissions, and handing in the work on the specified due date. Extensions can be granted for situations involving illness, family, or personal emergencies. If you need an extension, you must request one in writing or via e-mail before the due date of an assignment. Note: extensions will not be granted for problems relating to use of home or workplace computer systems (please use the BCTC facilities to avoid such problems), and back up your work. You will never be liable for failures of BCTC systems or availability of the online learning platform. For individual assignments, any instance of copying, cheating or plagiarism will be penalized. Students (or groups) handing in similar work will both receive a 0 in the assignment and will face disciplinary actions. (See academic integrity statement below) Additional Notes Feel free to ask me why you received a certain grade on an assignment or exam. If you received a grade in error, I will correct it. If not, and you still want to dispute the grade, I will consider re-grading requests but I will re-grade the entire assignment or exam. This could result in a grade that is the same, higher, or lower. Let me know about any problems or issues such as missing class, long term illnesses, job related problems, problems with the groups, etc. as soon as possible and before you have missed a week or two of classes. If you come to me at the end of the semester about a problem you had earlier in the semester, I will not be able to help. Students with Disabilities We have a process at Baruch for determining whether a student who identifies as disabled is eligible for reasonable accommodations in order to complete the student’s academic program. We strive to ensure that no student with a disability is discriminated against and that none is denied participation in College programs and activities for lack of reasonable accommodations. Some people think that a disability has to be visible to be accommodated. This is not the case. There are many disabilities – diabetes, psychological illness, learning CIS 2300 CMWA Syllabus Fall 2023 Version 3 8/29/2023 page 5 disabilities, AIDS, seizure disorders, arthritis, etc., – that require accommodations. Examples of possible accommodations include additional testing time; adaptive equipment; and taping of classes. If you feel that you may need a reasonable accommodation based on a disability, please contact the staff at the Office of Disability Services, Newman Vertical Campus, Room 2-271, or by phone at (646) 312-4590. Counseling: At Baruch, we acknowledge that as a student, you are balancing many demands. During the semester, if you start to experience personal difficulties or stressors that are interfering with your academic performance or day to day functioning, please consider seeking free and confidential support at the Baruch College Counseling Center. For more information or to make an appointment, please visit their website at https://studentaffairs.baruch.cuny.edu/counseling/ or call 646-312-2155. If it's outside of business hours (Monday-Friday 9-5pm) and you need immediate assistance, please call 1-888-NYC-WELL (888-692-9355). If you are concerned about one of your classmates, please share that concern by filling out a Campus Intervention Team form at https://studentaffairs.baruch.cuny.edu/campus-intervention-team. Academic Support: Visiting Baruch’s academic support services is correlated with higher grades. Students are encouraged to take advantage of these services: visit the tutors at SACC, work with the consultants at the Writing Center and Tools for Clear Speech, and take advantage of office hours! Visit early and often! Early in the semester, faculty receive a survey that asks us to identify students who might be struggling in class. Those I name will be prompted by an email or text to visit one of our support services. Please respond to those invitations to meet with a tutor or consultant! Students who visit these services do better in their classes than students who don’t. There’s no need to wait for an alert message to get help—you can start working with tutors from the start of the semester. Want more information? Try these links: SACC (Student Academic Consulting Center) SACC supports the academic success of undergraduates at Baruch College through small group peer tutoring and other programs, serving students in a wide variety of subjects across the curriculum. https://sacc.baruch.cuny.edu/ Writing Center The Writing Center offers free support to all Baruch students. Our professional consultants work collaboratively with you to deepen your writing and English language skills. https://blogs.baruch.cuny.edu/writingcenter/ Tools for Clear Speech TfCS offers a broad range of free tutorial sessions, workshops, and online practice to enhance the oral communication skills of Baruch’s non-native English-speakers, multilinguals, and English language learners https://tfcs.baruch.cuny.edu/ CIS 2300 CMWA Syllabus Fall 2023 Version 3 8/29/2023 page 6 Religious Accommodations Students requesting a religious accommodation should contact the Office for Student Affairs at the College or unit in which they are enrolled. The Chief Student Affairs Officer, or a designee, and the student will engage in an interactive process with the goal of finding an acceptable accommodation. Consistent with New York State Education Law § 224-a, students who are absent from school because of a religious belief will be given the equivalent opportunity, without any additional fee charged, to register for classes or make up any examination, study or work requirements missed because of such absence on any particular day or days. For complete details, see: https://www.cuny.edu/about/administration/offices/legal-affairs/policies-resources/ reasonable-accommodations-and-academic-adjustments/vi-religious-accommodations/ Academic Integrity Statement The CIS Department fully supports Baruch College's policy on Academic Honesty, which states, in part: "Academic dishonesty is unacceptable and will not be tolerated. Cheating, forgery, plagiarism and collusion in dishonest acts undermine the college's educational mission and the students' personal and intellectual growth. Baruch students are expected to bear individual responsibility for their work, to learn the rules and definitions that underlie the practice of academic integrity, and to uphold its ideals. Ignorance of the rules is not an acceptable excuse for disobeying them. Any student who attempts to compromise or devalue the academic process will be sanctioned." Academic sanctions in this class will range from an F on the assignment to an F in this course. A report of suspected academic dishonesty will be sent to the Office of the Dean of Students. Additional information and definitions can be found at: http://www.baruch.cuny.edu/academic/academic_honesty.html The use of artificial intelligence (AI) is strictly prohibited in all coursework and assignments. This includes, but is not limited to, the use of AI-generated text, speech, or images, as well as the use of AI tools or software to complete any portion of a project or assignment. Any violations of this policy will result in disciplinary action, up to and including a failing grade for the assignment or course. Our goal is to encourage critical thinking and creativity, and the use of AI detracts from this objective. Students are expected to use their own knowledge, research and analysis to complete coursework. Assurance of Learning BBA Learning Goals Significant Part of Course Moderate Part of Course Minimal Part of Course Analytical skills Technological skills Oral communication skills Written communication skills Civic awareness and ethical decision-making Global awareness Proficiency in a single discipline CIS 2300 CMWA Syllabus Fall 2023 Version 3 8/29/2023 page 7 Not Part of Course CIS Course mapping with learning goals Course Learning Goals Demonstrate the understanding of and utilize a computational approach to solving problems Decompose bigger problems in smaller chunks and put them back together to solve bigger problems. Develop comprehensive programs that can achieve some useful objective BBA learning goals Analytical skills Technological skills Analytical skills Technological skills Analytical skills Technological skills Written communication skills Assignments Assignments Assignments Assignments Tentative Weekly Schedule The following is a tentative schedule of topics and lectures. Changes may occur based on class progress. Any changes will be announced in class and by Blackboard Announcement. Per the schedule below, note that: Quizzes are generally held on the day a new topic is introduced Assignments and CodeLabs are generally due on the Monday following completion of discussion of a topic See the schedule for specific dates, which also appear on the Blackboard calendar. Week Date 1 8/288/30 Topics Covered Basic computer concepts and programming languages What is an algorithm? Open Jupyter notebook (or any other Python editor) and write interactive code using print and input functions; use IDLE. Readings Chapter 1: Introduction Algorithms Video (58:33): The Secret Rules of Modern Living Algorithms Video: (5:27) What is an algorithm? Python installation and IDLE Windows, MacOS Optional Algorithms Firehose Project on Algorithms Famous examples of Algorithms Deliverables and Other Work Install Anaconda (includes Python [install 3.9 or above], Spyder and Jupyter) Install IDLE (see Appendix A and B of text; also includes Python) Assignment 1a: Algorithm examples in day-to-day (college life, commuting, grocery shopping, laundry planning, cooking etc.) Assignment 1b: Submit via Blackboard a screenshot of Python running on a Command Line Interface (CLI) and responding to a print(‘hello world’) command. No CodeLab assignment CIS 2300 CMWA Syllabus Fall 2023 Version 3 8/29/2023 page 8 Week Date 2 9/4 9/6- The Terminal: First Steps and Useful Commands Flowcharts and pseudocode Why and what of flowcharts Why pseudocode? Optional Computer Basics 9/13- Data manipulation Text: §2.2-§2.11 9/18 Decision Structures – Simple Text: §3.1-§3.4 4 Readings College Closed Introduction to Terminal and command line interface (CLI) 9/11 3 Topics Covered 9/20 Text: §2.1: Designing a program Windows: Working with Files, Finding Files on Your Computer MacOS: Working with Files, Finding Files on Your Computer How to Organize Your Digital Files Boolean operators and Boolean expressions with relational operators Decision Structures – Complex 9/25 -9/27 Data Types Variables Performing calculations (Arithmetic expressions, assignment statements) Deliverables and Other Work Text: §3.5-§3.6 Assignment 2a: Write simple interactive Python code using print and input functions Assignment 2c Submit via Blackboard a screenshot of creating a folder ‘CIS2300-Fall2023’ and navigating to that folder using terminal commands No CodeLab assignment Assignment 2b: Flow Chart of Algorithm #1a Quiz #1 §2.1 –§2.11 . There is no CodeLab #1 Quiz #2 §3.1 – §3.6 CodeLab #2 Part I & II Assignment 3: Writing simple programs with calculations CodeLab #3a Logical operators (and, or not) Boolean variables (True/False) Decision structures (Ifthen-else) No Classes Scheduled CodeLab #3b Writing programs with conditional expressions Assignment 4a: Install the classic Jupyter Notebook with pip using a terminal command. Submit a screenshot via Blackboard Assignment 4b: Writing programs with complex conditional expressions CIS 2300 CMWA Syllabus Fall 2023 Version 3 8/29/2023 page 9 Week Date 5 10/2- 10/4 Topics Covered Decomposition and Abstraction with Functions - Basic 6 10/9 10/10 10/11 7 10/16 - 9 10 Text §5.1-§5.10 Program design with functions College Closed Classes follow Monday schedule Repetition Structures – Condition controlled WHILE loops Text: §4.1-§4.2 Text: §4.3-§4.7 10/23 - Midterm Exam All previously covered material 10/25 Python data structures II Text: Chapter 7 10/30 - Python data structures II Text: Chapter 9 Introduction to pandas - I https://www.datacamp.com/ tutorial/pandas 11/1 11/6 -11/8 Deliverables and Other Work Quiz #3 §5.1 – §5.10 Assignment 4 Defining and calling functions Local vs. global variables and their scope Argument vs. parameter Void and value returning functions Grouping your own functions in modules Keyword arguments Repetition Structures – Condition controlled FOR loops Python data structures I 10/18 8 Readings Strings Lists Dictionaries Installation Core components of pandas: Series and DataFrames (DF) Reading in/Writing data to/from files Cleaning data Text: Chapter 8 CIS 2300 CMWA Syllabus Fall 2023 Version 3 8/29/2023 Assignment 5: Writing a program with functions and parameters Quiz #3 §4.1 - §4.2 Assignment 6: Writing a program with conditioncontrolled loops CodeLab #3b CodeLab #4a Quiz #4 §4.3 - §4.7 CodeLab #4b Assignment 7: Writing a program with countcontrolled loops Quiz #5 Midterm exam Assignment 8: Writing programs with strings CodeLab #8 Quiz #6 Quiz #7 §9.1 and §9.3Assignment 9: Writing programs with lists CodeLab #9 Assignment 10: Writing programs with dictionaries Quiz #8 page 10 Week Date Topics Covered 11 11/13 11/15 Introduction to pandas - II 11/20 Files and Exceptions 12 13 14 Introduction to file I/O Using loops and processing records Exceptions 11/22 11/27 11/29 -12/4 No classes scheduled 12/6- Review material per student requests and final project time Last day of class. Last Day to drop with a W Reading Day(s) 12/11 15 DF slicing, selecting and extracting Data analysis in Pandas 12/12 12/13 12/18 Slack Readings Deliverables and Other Work Quiz #9 Assignment 11: Writing a program to cleanup a data file using pandas https://www.datacamp.com/ tutorial/pandas Text: §6.1-§6.3 Quiz #10 §6.1 – §6.4 Assignment 12: Writing a program to conduct basic data analysis using pandas §6.4 This week reserved to accommodate any slippage in the schedule CodeLab #6 Assignment 13: Performing I/O and Exception Handling No CodeLab assignment Final Exam (Monday 10:30 A.M. to 12:30 P.M.) CIS 2300 CMWA Syllabus Fall 2023 Version 3 8/29/2023 https:// enrollmentmanagement.ba ruch.cuny.edu/wpcontent/uploads/sites/ 18/2023/06/ Fall2023FinalExamGrid.pd f page 11