CSCI 1100 - Lecture 1
Chapter One Lecture 1 — Introduction
1.1 People
Instructors:
Uzma Mushtaque
Neha Keshan
Mark R Gilder
Instructional Support Coordinator:
Shianne Hulbert
TAs and Programming Mentors:
Check course website for detailed information regarding their roles and availability.
1.2 Learning Outcomes
By the end of this course, students will be able to:
Demonstrate proficiency in basic programming constructs.
Understand and utilize variables, data types, control structures, functions, and error handling.
Design algorithms and programs for small-scale computational problems.
Apply problem-solving strategies to develop efficient algorithms tailored to specific tasks.
Write, test, and debug small-scale programs.
Implement testing strategies and utilize debugging tools to refine and troubleshoot code.
Understand the application of computational thinking in the real world.
Recognize how algorithmic thinking can address complex issues across different domains.
Identify biases impacting higher education and computational systems design.
Analyze how biases can affect algorithmic outcomes and educational processes, emphasizing equity in technology.
Integrate social and ethical awareness into programming and problem-solving.
Reflect on ethical dilemmas in technology usage and programming decisions.
1.3 Textbook
Title: Practical Programming: An Introduction to Computer Science Using Python
Authors: Campbell, Gries, and Montojo
Availability: E-book format available; second edition is highly recommended for most current content, although the third edition is acceptable as well.
Supplementary Resources: Check the textbook’s official website and companion materials for additional exercises and resources.
1.4 Website and Online Resources
Course notes and lecture exercises: Accessible at the CS1100 Course Website.
Discussion Forums: Engage with peers and instructors via the online discussion board to clarify concepts and collaborate on projects.
1.5 Course Logistics
Homework and Labs:
Managed through Submitty, an online platform for maintaining course assignments and tracking submissions.
Automatic enrollment upon registration; if you encounter issues accessing, notify instructors immediately.
Office Hours:
Dr. Uzma: Mon 10:00 am - 11:30 am, Thurs 10:00 am - 11:30 am (AE 111)
Dr. Keshan: Mon 12:00 pm - 1:30 pm, Thurs 12:00 pm - 1:30 pm (AE 205)
Dr. Gilder: Mon 3:30 pm - 5:00 pm, Thurs 3:30 pm - 5:00 pm (AE 123)
Lab Sections:
Held on Tuesdays and Wednesdays; attendance is mandatory to receive full credit. Participation in labs enhances understanding of practical applications.
Grading:
Based on performance in lecture exercises, labs, assignments, tests; grades issued as letter grades for clarity in assessment.
Late Policy:
Students are allowed 3 late days throughout the semester; however, a maximum of 2 late days can be used on one single assignment.
Academic Integrity:
A zero-tolerance policy for academic dishonesty; students are expected to adhere to the institution's integrity guidelines.
1.6 Lab Information
Lab 0:
Focused on software installation, scheduled for the third week of the course.
Optional Installation Session: Will take place on August 29 at DCC 308 for students needing assistance.
Test Dates:
Scheduled for October 3, October 31, and November 21 from 6:00 pm to 8:00 pm.
Ensure to manage study time effectively before each date to prepare thoroughly.
Final Exam:
No exceptions will be made for scheduling conflicts; plan accordingly.
1.7 Programming Overview
The Magic of Programming:
Emphasizes the relationship between logic and syntax, fostering creativity in problem-solving.
Types of Problems Addressed:
Covers a diverse range of applications: tools for "Words with Friends", image processing, web crawling for data extraction, data manipulation techniques, numerical games, and simulations—all including a simple example related to Pokémon Go to engage students in real-world applications.
1.8 First Program: Hello World
Creating the Program:
Instructions to create a text file
hello.pycontaining the lines:
print('Hello, World!') print('This is Python')IDE Overview:
Utilize the Spyder IDE, which provides both an editor and interpreter window, making it user-friendly for writing and executing Python code.
Code can be executed directly within the interpreter for immediate feedback.
1.9 Exploring Computational Thinking
Introduce a problem presented in Think Python:"Find the one word in the English language that contains three consecutive double letters."
Steps for Solving the Problem:
Understand the problem through concrete examples and clarifications.
Develop a step-by-step algorithm to reach the solution, considering various approaches.
Translate the developed algorithm into executable Python code.
Execute the program and refine based on output results.
Key Elements Covered:
Focus on files, functions, loops, logic structures, counting methods, output techniques, and libraries available in Python.
1.10 Programming Fundamentals
Programs vs Compilers:
Python is classified as an interpreted language; this characteristic contrasts with compiled languages such as C/C++ that necessitate a distinct compilation phase.
Both programming categories depend on multiple systems including the file system and the operating system to function properly.
Abstraction:
A fundamental concept that enables programmers to concentrate on problem-solving aspects without becoming overwhelmed by underlying complexities, promoting clarity and efficiency in programming.
1.12 Why Python?
Advantages of Python:
Noted for its simple and readable syntax, alongside providing immediate feedback as an interpreted language, making it an ideal choice for beginners.
Home to powerful tools conducive to rapid prototyping, it's widely utilized across various fields—from web development to data science.
Error Identification:
Syntax Error: Refers to a structural mistake in the code that halts execution entirely.
Semantic Error: Happens when the code runs but produces incorrect results due to logical flaws; these miscalculations require careful debugging. Demonstrations of both error cases will be provided throughout the course.
1.14 Python Versions
Continuous development of Python stresses the importance of utilizing the latest version, which can be accessed through conda for ongoing improvements and features.
1.15 Lab 0 Objectives
Familiarize yourself with the Submitty platform and explore available forums and resources to enhance learning.
Install the Python development environment compatible with your operating system (Windows, Mac OS X, or Linux).
Create a Dropbox account for backing up all homework and lab solutions, which is a required step to safeguard academic work.
Warning against the use of GitHub/GitLab for coursework submissions due to potential academic integrity violations, prioritizing secure and compliant submission methods.