This is an intermediate conversion course for C++, suitable for second year computing students who may have learned Java or another language in first year.
This document outlines an self-study course called INTP-362 where students select a technology topic to learn on their own and create blog posts about. The goals are to learn a new technology, improve self-study skills, and develop online presence. Students choose a topic, write two blog posts (one on content and one demonstrating an assignment), and provide feedback on peers' blogs. The instructor's role is to facilitate learning and evaluate assessments. Students are expected to become experts on their topic and teach others about it through high-quality blog posts and videos. The course aims to help students learn how to effectively learn on their own.
This document provides an overview of the CIS 4190/5190 Applied Machine Learning course. It discusses course goals of identifying ML opportunities and training models. Lectures will focus on mathematical understanding and assignments on applying concepts. The schedule, grading, instructors, and policies are also outlined. Machine learning is introduced as algorithms that improve performance on tasks through experience. Examples of supervised learning for prediction and game playing are provided.
Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"Fwdays
It’s easy to underestimate a front-end project's complexity, which leads to shallow and thus incorrect implementation. Attempts to fix this problem result in uncontrolled complexity growth and undefined behavior in corner cases.
We'll discuss ways of revealing the inherent complexity of a problem and dealing with it both on theoretical and practical levels.
This document provides an overview of topics covered in a Python programming course, including Python syntax, strings, conditionals, functions, lists, loops, classes, and file input/output. It describes lessons on these topics and associated projects to help students practice and apply the concepts, like creating a tip calculator, translating text into Pig Latin, simulating a supermarket trip, and building a battleship game. It also covers more advanced topics like statistics, bitwise operators, and iterating over data structures.
This document provides an overview and syllabus for the ARTDM 171 Web Design course taught by Gilbert Guerrero. The course will cover HTML, CSS, JavaScript, and Dreamweaver CS4. It lists required textbooks, evaluation procedures based on projects, homework and participation. The class will involve weekly exercises, reading assignments, blog posts, group projects, and an individual final project. Attendance requirements and lab schedules are also outlined.
OpenSubmit - How to grade 1200 code submissionsPeter Tröger
This presentation on the "Chemnitzer Linux-Tage 2016" gave an introduction for the OpenSubmit project (https://github.com/troeger/opensubmit).
Second "code school lesson" for Eurosport's developers.
1. Refactoring : when? why? how?
2. Single Responsability
3. Practical case : clean architecture.
This document provides an overview of the syllabus for an introductory computer science course. It outlines the weekly schedule, required readings, assignments which include code projects and article summaries, and the grading criteria. The course will broadly cover fundamental computer science topics and provide both theoretical discussions and hands-on workshops. Learning to program requires reading code from experts, writing code, and repeated practice over time. The document emphasizes gaining practical skills through hands-on work over theoretical readings if time is limited.
This document provides information about the Practical Approaches to Data Science course at Emory University, including contact information for the instructor Jinho D. Choi and teaching assistant Gary Lai. It outlines the prerequisites, grading breakdown, assignments, project requirements, and classroom structure. Students will complete homework assignments, a project proposal, and final project. The course aims to develop programming and analytical writing skills through hands-on exercises and a guided data science project.
Inspired by the Coding Dojo book and Uncle Bob Martin, I wrote this talk to inspire you to invest into your own career by practicing katas. This is a slide deck I intended to give at AustinRB group but due to mother nature I presented online at Google Hangouts followed by a demonstration of the string kata.
This document discusses the concept of orthogonality in software design. It defines orthogonality as making features that minimally depend on each other, such as code, methods, classes, libraries, and more. The benefits of orthogonality include easier maintenance, reading, and reuse as changes to one part do not affect others. Techniques for achieving orthogonality include designing components as reusable "Lego bricks", minimizing state, favoring immutability, and separating concerns through clear APIs. The document provides examples of applying these principles in case studies of image processing, analytics and OCR libraries.
This document provides an overview of a course on fundamentals of programming. It introduces the instructor, teaching assistant, and their contact details. It outlines the course credits, grade distribution, textbook, and reference book. It describes the course contents which will cover topics like introduction to programming, variables, operators, conditional statements, loops, functions, arrays, structures, pointers, and file I/O over 18 weeks. It discusses the course outcomes and expectations, attendance, assignment, quiz, and lab policies. Ground rules for student civility are also outlined.
Don't get blamed for your choices - Techorama 2019Hannes Lowette
As developers, we make choices all the time: architecture, frameworks, libraries, cloud providers, etc. And if you’ve been around for a while, you probably ended up regretting at least some of your choices.
In this session, we'll explore the typical pitfalls of making development choices and how to avoid them. By the end of this session, you will be armed to take any decision they will throw at you.
Now, if only there was a way to prove to your peers and superiors that you acquired this skill...
Well, there is! RAD Certification! I'll end my talk by telling you about this awesome certification program!
This document provides tips for using GitHub effectively to share projects and build developer communities. It recommends making a project site to provide essential information for new users, releasing projects regularly to affirm they can be used and allow others to build upon the work, and maintaining an open and helpful approach to contributions from newcomers to encourage participation and learning. The focus should be optimizing for users rather than just developers. GitHub projects have a low barrier to entry, so guidance and dividing work into approachable chunks is important to welcome new contributors.
Clan code is extremely essential to build scalable application which can be maintained quite easily and improved further
Slide was prepared with contribution to my colleague
and i thank them for the help!
Test Driven Development on Android (Kotlin Kenya)Danny Preussler
This document discusses test-driven development (TDD) and its application to Android development. It begins with an introduction to TDD, outlining its core principles and benefits. It describes the "red, green, refactor" process and emphasizes writing tests before code. It addresses challenges with testing Android code, such as dependencies on framework classes, and recommends strategies like wrapping classes to isolate dependencies. Finally, it outlines the benefits of TDD such as reduced bugs, improved design, and increased productivity over the long run despite initial slower development.
As a 3 times successful student and 2 times successful mentor for Google Summer of Code, I share my thoughts on a successful Google Summer of Code. This presentation has evolved over the time with feedback from multiple mentors and students.
This document provides an overview of various topics related to developing a NodeJS application with a database. It discusses mindsets for developers, resources for learning to code like online courses and communities, and technologies involved in web development like front-end versus back-end programming. It also introduces NodeJS, databases like MongoDB and Cloudant, and provides instructions for an example app using Cloudant on Bluemix. Students are assigned homework to deploy this example app and modify it for their own purposes.
Here are the solutions to the printing practice:
print("My Name")
print("Blue", "Green", "Red")
print(26 * 66 + 13)
print(6804 / 162)
print(2 ** 8)
print("66+33")
66+33
So putting a mathematical expression in double quotes prints the expression as a string, rather than evaluating it.
200,000 Lines Later: Our Journey to Manageable Puppet CodeDavid Danzilio
Slides from a talk I gave at PuppetConf 2015.
Abstract: I joined Constant Contact in the Spring of 2014 to help transform their Puppet infrastructure. Constant Contact was a very early adopter of Puppet and had a hard time keeping up with changes to the language. When I got to Constant Contact we were stuck on a very old version of Puppet 2.7 because our code was heavily dependent on inheritance and dynamic scoping. There was no separation of data and code and 99% of the Puppet modules in use in the environment were homegrown. With over 267,000 lines of ancient code, I was completely overwhelmed with how to get us up to speed. This talk is about how we managed to accomplish this incredible feat in just over a year.
Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"Fwdays
It’s easy to underestimate a front-end project's complexity, which leads to shallow and thus incorrect implementation. Attempts to fix this problem result in uncontrolled complexity growth and undefined behavior in corner cases.
We'll discuss ways of revealing the inherent complexity of a problem and dealing with it both on theoretical and practical levels.
This document provides an overview of topics covered in a Python programming course, including Python syntax, strings, conditionals, functions, lists, loops, classes, and file input/output. It describes lessons on these topics and associated projects to help students practice and apply the concepts, like creating a tip calculator, translating text into Pig Latin, simulating a supermarket trip, and building a battleship game. It also covers more advanced topics like statistics, bitwise operators, and iterating over data structures.
This document provides an overview and syllabus for the ARTDM 171 Web Design course taught by Gilbert Guerrero. The course will cover HTML, CSS, JavaScript, and Dreamweaver CS4. It lists required textbooks, evaluation procedures based on projects, homework and participation. The class will involve weekly exercises, reading assignments, blog posts, group projects, and an individual final project. Attendance requirements and lab schedules are also outlined.
OpenSubmit - How to grade 1200 code submissionsPeter Tröger
This presentation on the "Chemnitzer Linux-Tage 2016" gave an introduction for the OpenSubmit project (https://github.com/troeger/opensubmit).
Second "code school lesson" for Eurosport's developers.
1. Refactoring : when? why? how?
2. Single Responsability
3. Practical case : clean architecture.
This document provides an overview of the syllabus for an introductory computer science course. It outlines the weekly schedule, required readings, assignments which include code projects and article summaries, and the grading criteria. The course will broadly cover fundamental computer science topics and provide both theoretical discussions and hands-on workshops. Learning to program requires reading code from experts, writing code, and repeated practice over time. The document emphasizes gaining practical skills through hands-on work over theoretical readings if time is limited.
This document provides information about the Practical Approaches to Data Science course at Emory University, including contact information for the instructor Jinho D. Choi and teaching assistant Gary Lai. It outlines the prerequisites, grading breakdown, assignments, project requirements, and classroom structure. Students will complete homework assignments, a project proposal, and final project. The course aims to develop programming and analytical writing skills through hands-on exercises and a guided data science project.
Inspired by the Coding Dojo book and Uncle Bob Martin, I wrote this talk to inspire you to invest into your own career by practicing katas. This is a slide deck I intended to give at AustinRB group but due to mother nature I presented online at Google Hangouts followed by a demonstration of the string kata.
This document discusses the concept of orthogonality in software design. It defines orthogonality as making features that minimally depend on each other, such as code, methods, classes, libraries, and more. The benefits of orthogonality include easier maintenance, reading, and reuse as changes to one part do not affect others. Techniques for achieving orthogonality include designing components as reusable "Lego bricks", minimizing state, favoring immutability, and separating concerns through clear APIs. The document provides examples of applying these principles in case studies of image processing, analytics and OCR libraries.
This document provides an overview of a course on fundamentals of programming. It introduces the instructor, teaching assistant, and their contact details. It outlines the course credits, grade distribution, textbook, and reference book. It describes the course contents which will cover topics like introduction to programming, variables, operators, conditional statements, loops, functions, arrays, structures, pointers, and file I/O over 18 weeks. It discusses the course outcomes and expectations, attendance, assignment, quiz, and lab policies. Ground rules for student civility are also outlined.
Don't get blamed for your choices - Techorama 2019Hannes Lowette
As developers, we make choices all the time: architecture, frameworks, libraries, cloud providers, etc. And if you’ve been around for a while, you probably ended up regretting at least some of your choices.
In this session, we'll explore the typical pitfalls of making development choices and how to avoid them. By the end of this session, you will be armed to take any decision they will throw at you.
Now, if only there was a way to prove to your peers and superiors that you acquired this skill...
Well, there is! RAD Certification! I'll end my talk by telling you about this awesome certification program!
This document provides tips for using GitHub effectively to share projects and build developer communities. It recommends making a project site to provide essential information for new users, releasing projects regularly to affirm they can be used and allow others to build upon the work, and maintaining an open and helpful approach to contributions from newcomers to encourage participation and learning. The focus should be optimizing for users rather than just developers. GitHub projects have a low barrier to entry, so guidance and dividing work into approachable chunks is important to welcome new contributors.
Clan code is extremely essential to build scalable application which can be maintained quite easily and improved further
Slide was prepared with contribution to my colleague
and i thank them for the help!
Test Driven Development on Android (Kotlin Kenya)Danny Preussler
This document discusses test-driven development (TDD) and its application to Android development. It begins with an introduction to TDD, outlining its core principles and benefits. It describes the "red, green, refactor" process and emphasizes writing tests before code. It addresses challenges with testing Android code, such as dependencies on framework classes, and recommends strategies like wrapping classes to isolate dependencies. Finally, it outlines the benefits of TDD such as reduced bugs, improved design, and increased productivity over the long run despite initial slower development.
As a 3 times successful student and 2 times successful mentor for Google Summer of Code, I share my thoughts on a successful Google Summer of Code. This presentation has evolved over the time with feedback from multiple mentors and students.
This document provides an overview of various topics related to developing a NodeJS application with a database. It discusses mindsets for developers, resources for learning to code like online courses and communities, and technologies involved in web development like front-end versus back-end programming. It also introduces NodeJS, databases like MongoDB and Cloudant, and provides instructions for an example app using Cloudant on Bluemix. Students are assigned homework to deploy this example app and modify it for their own purposes.
Here are the solutions to the printing practice:
print("My Name")
print("Blue", "Green", "Red")
print(26 * 66 + 13)
print(6804 / 162)
print(2 ** 8)
print("66+33")
66+33
So putting a mathematical expression in double quotes prints the expression as a string, rather than evaluating it.
200,000 Lines Later: Our Journey to Manageable Puppet CodeDavid Danzilio
Slides from a talk I gave at PuppetConf 2015.
Abstract: I joined Constant Contact in the Spring of 2014 to help transform their Puppet infrastructure. Constant Contact was a very early adopter of Puppet and had a hard time keeping up with changes to the language. When I got to Constant Contact we were stuck on a very old version of Puppet 2.7 because our code was heavily dependent on inheritance and dynamic scoping. There was no separation of data and code and 99% of the Puppet modules in use in the environment were homegrown. With over 267,000 lines of ancient code, I was completely overwhelmed with how to get us up to speed. This talk is about how we managed to accomplish this incredible feat in just over a year.
Explore innovative tools tailored for modern finance with our Money Lender Software Development, efficient Daily Pigmy Collection Software, and streamlined Personal Loan Software. This presentation showcases how these solutions simplify loan management, boost collection efficiency, and enhance customer experience for NBFCs, microfinance firms, and individual lenders.
Generative Artificial Intelligence and its ApplicationsSandeepKS52
The exploration of generative AI begins with an overview of its fundamental concepts, highlighting how these technologies create new content and ideas by learning from existing data. Following this, the focus shifts to the processes involved in training and fine-tuning models, which are essential for enhancing their performance and ensuring they meet specific needs. Finally, the importance of responsible AI practices is emphasized, addressing ethical considerations and the impact of AI on society, which are crucial for developing systems that are not only effective but also beneficial and fair.
Async-ronizing Success at Wix - Patterns for Seamless Microservices - Devoxx ...Natan Silnitsky
In a world where speed, resilience, and fault tolerance define success, Wix leverages Kafka to power asynchronous programming across 4,000 microservices. This talk explores four key patterns that boost developer velocity while solving common challenges with scalable, efficient, and reliable solutions:
1. Integration Events: Shift from synchronous calls to pre-fetching to reduce query latency and improve user experience.
2. Task Queue: Offload non-critical tasks like notifications to streamline request flows.
3. Task Scheduler: Enable precise, fault-tolerant delayed or recurring workflows with robust scheduling.
4. Iterator for Long-running Jobs: Process extensive workloads via chunked execution, optimizing scalability and resilience.
For each pattern, we’ll discuss benefits, challenges, and how we mitigate drawbacks to create practical solutions
This session offers actionable insights for developers and architects tackling distributed systems, helping refine microservices and adopting Kafka-driven async excellence.
Wondershare PDFelement Pro 11.4.20.3548 Crack Free DownloadPuppy jhon
➡ 🌍📱👉COPY & PASTE LINK👉👉👉 ➤ ➤➤ https://drfiles.net/
Wondershare PDFelement Professional is professional software that can edit PDF files. This digital tool can manipulate elements in PDF documents.
GDG Douglas - Google AI Agents: Your Next Intern?felipeceotto
Presentation done at the GDG Douglas event for June 2025.
A first look at Google's new Agent Development Kit.
Agent Development Kit is a new open-source framework from Google designed to simplify the full stack end-to-end development of agents and multi-agent systems.
Agentic Techniques in Retrieval-Augmented Generation with Azure AI SearchMaxim Salnikov
Discover how Agentic Retrieval in Azure AI Search takes Retrieval-Augmented Generation (RAG) to the next level by intelligently breaking down complex queries, leveraging full conversation history, and executing parallel searches through a new LLM-powered query planner. This session introduces a cutting-edge approach that delivers significantly more accurate, relevant, and grounded answers—unlocking new capabilities for building smarter, more responsive generative AI applications.
Traditional Retrieval-Augmented Generation (RAG) pipelines work well for simple queries—but when users ask complex, multi-part questions or refer to previous conversation history, they often fall short. That’s where Agentic Retrieval comes in: a game-changing advancement in Azure AI Search that brings LLM-powered reasoning directly into the retrieval layer.
This session unveils how agentic techniques elevate your RAG-based applications by introducing intelligent query planning, subquery decomposition, parallel execution, and result merging—all orchestrated by a new Knowledge Agent. You’ll learn how this approach significantly boosts relevance, groundedness, and answer quality, especially for sophisticated enterprise use cases.
Key takeaways:
- Understand the evolution from keyword and vector search to agentic query orchestration
- See how full conversation context improves retrieval accuracy
- Explore measurable improvements in answer relevance and completeness (up to 40% gains!)
- Get hands-on guidance on integrating Agentic Retrieval with Azure AI Foundry and SDKs
- Discover how to build scalable, AI-first applications powered by this new paradigm
Whether you're building intelligent copilots, enterprise Q&A bots, or AI-driven search solutions, this session will equip you with the tools and patterns to push beyond traditional RAG.
AI and Deep Learning with NVIDIA TechnologiesSandeepKS52
Artificial intelligence and deep learning are transforming various fields by enabling machines to learn from data and make decisions. Understanding how to prepare data effectively is crucial, as it lays the foundation for training models that can recognize patterns and improve over time. Once models are trained, the focus shifts to deployment, where these intelligent systems are integrated into real-world applications, allowing them to perform tasks and provide insights based on new information. This exploration of AI encompasses the entire process from initial concepts to practical implementation, highlighting the importance of each stage in creating effective and reliable AI solutions.
INTRODUCTION:TRANSMISSION MEDIA
• A transmission media in data communication is a physical path between the sender and
the receiver and it is the channel through which data can be sent from one location to
another. Data can be represented through signals by computers and other sorts of
telecommunication devices. These are transmitted from one device to another in the
form of electromagnetic signals. These Electromagnetic signals can move from one
sender to another receiver through a vacuum, air, or other transmission media.
Electromagnetic energy mainly includes radio waves, visible light, UV light, and gamma
ra
AI-Powered Compliance Solutions for Global Regulations | Certivocertivoai
Certivo offers AI-powered compliance solutions designed to help businesses in the USA, EU, and UK simplify complex regulatory demands. From environmental and product compliance to safety, quality, and sustainability, our platform automates supplier documentation, manages certifications, and integrates with ERP/PLM systems. Ensure seamless RoHS, REACH, PFAS, and Prop 65 compliance through predictive insights and multilingual support. Turn compliance into a competitive edge with Certivo’s intelligent, scalable, and audit-ready platform.
Looking for a BIRT Report Alternative Here’s Why Helical Insight Stands Out.pdfVarsha Nayak
The search for an Alternative to BIRT Reports has intensified as companies face challenges with BIRT's steep learning curve, limited visualization capabilities, and complex deployment requirements. Organizations need reporting solutions that offer intuitive design interfaces, comprehensive analytics features, and seamless integration capabilities – all while maintaining the reliability and performance that enterprise environments demand.
What is data visualization and how data visualization tool can help.pdfVarsha Nayak
An open source data visualization tool enhances this process by providing flexible, cost-effective solutions that allow users to customize and scale their visualizations according to their needs. These tools enable organizations to make data-driven decisions with complete freedom from proprietary software limitations. Whether you're a data scientist, marketer, or business leader, understanding how to utilize an open source data visualization tool can significantly improve your ability to communicate insights effectively.
Have you upgraded your application from Qt 5 to Qt 6? If so, your QML modules might still be stuck in the old Qt 5 style—technically compatible, but far from optimal. Qt 6 introduces a modernized approach to QML modules that offers better integration with CMake, enhanced maintainability, and significant productivity gains.
In this webinar, we’ll walk you through the benefits of adopting Qt 6 style QML modules and show you how to make the transition. You'll learn how to leverage the new module system to reduce boilerplate, simplify builds, and modernize your application architecture. Whether you're planning a full migration or just exploring what's new, this session will help you get the most out of your move to Qt 6.
Who will create the languages of the future?Jordi Cabot
Will future languages be created by language engineers?
Can you "vibe" a DSL?
In this talk, we will explore the changing landscape of language engineering and discuss how Artificial Intelligence and low-code/no-code techniques can play a role in this future by helping in the definition, use, execution, and testing of new languages. Even empowering non-tech users to create their own language infrastructure. Maybe without them even realizing.
Code and No-Code Journeys: The Coverage OverlookApplitools
Explore practical ways to expand visual and functional UI coverage without deep coding or heavy maintenance in this session. Session recording and more info at applitools.com
Application Modernization with Choreo - The AI-Native Internal Developer Plat...WSO2
In this slide deck, we explore the challenges and best practices of application modernization. We also deep dive how an internal developer platform as a service like Choreo can fast track your modernization journey with AI capabilities and end-to-end workflow automation.
2. About Your Instructors
Walker White Dietrich Geisler
• New instructor
§ Taught 1110 this summer
§ First time with a large class
• Will be back next week
8/22/22 Overview, Types & Expressions 2
• Director: GDIAC
§ Game Design @ Cornell
§ Game courses in Spring
• Teach CS 1110 in fall
3. We Are (Essentially) Full!
• Lecture times are somewhat flexible.
§ Technically have room for ~50 in each
§ We can use this to swap lectures
• Labs/sections at fire code capacity
§ We lost ACCEL labs last years
§ New classrooms are not as flexible
• But lots of drops; watch Student Center!
8/22/22 Overview, Types & Expressions 3
4. CS 1110 Fall 2022
• Outcomes:
§ Fluency in (Python) procedural programming
• Usage of assignments, conditionals, and loops
• Ability read and test programs from specifications
§ Competency in object-oriented programming
• Ability to recognize and use objects and classes
§ Knowledge of searching and sorting algorithms
• Knowledge of basics of vector computation
• Website:
§ www.cs.cornell.edu/courses/cs1110/2022fa/
4
8/22/22 Overview, Types & Expressions
5. Intro Programming Classes Compared
CS 1110: Python
• No prior programming
experience necessary
• No calculus
• Slight focus on
§ Software engineering
§ Application design
CS 1112: Matlab
• No prior programming
experience necessary
• One semester of calculus
• Slight focus on
§ Scientific computation
§ Engineering applications
5
8/22/22 Overview, Types & Expressions
But either course serves as
a pre-requisite to CS 2110
6. CS 1133: Short Course in Python
• 2-credit course in how to use Python
§ Material is roughly the first half of CS 1110
§ Most of the Python of 1110, but not theory
§ Two assignments; no exams
§ No experience required
• This is the only way to take Python S/U
§ CS 1110 is no longer offered S/U (in fall)
§ Best for students that just want Python
8/22/22 Overview, Types & Expressions 6
7. Why Programming in Python?
• Python is easier for beginners
§ A lot less to learn before you start “doing”
§ Designed with “rapid prototyping” in mind
• Python is more relevant to non-CS majors
§ NumPy and SciPy heavily used by scientists
• Python is a more modern language
§ Popular for web applications (e.g. Facebook apps)
§ Also applicable to mobile app development
8/22/22 Overview, Types & Expressions 7
8. Class Structure
• Lectures. Every Tuesday/Thursday
§ Not just slides; interactive demos almost every lecture
§ Because of enrollment, please stay with your section
§ Semi-Mandatory. 1% Participation grade from iClickers
• Section/labs. Phillips 318 or Hollister 401
§ Guided exercises with TAs and consultants helping out
• Meets Tuesday/Thursday or Wednesday/Friday
• Only Phillips 318 has computers (bring your laptop)
§ Contact Amy ([email protected]) for section conflicts
§ Mandatory. Missing more than 3 lowers your final grade
8
8/22/22 Overview, Types & Expressions
9. Class Structure
• Lectures. Every Tuesday/Thursday
§ Not just slides; interactive demos almost every lecture
§ Because of enrollment, please stay with your section
§ Semi-Mandatory. 1% Participation grade from iClickers
• Section/labs. Phillips 318 or Hollister 401
§ Guided exercises with TAs and consultants helping out
• Meets Tuesday/Thursday or Wednesday/Friday
• Only Phillips 318 has computers (bring your laptop)
§ Contact Amy ([email protected]) for section conflicts
§ Mandatory. Missing more than 2 lowers your final grade
9
8/22/22 Overview, Types & Expressions
All Labs will be use the online system.
But they are not intended to be “online”.
10. Is there a TextBook?
No
8/22/22 Overview, Types & Expressions 10
11. Is there a TextBook?
No
8/22/22 Overview, Types & Expressions 11
The asynchronous videos
are essentially the textbook
12. What Do I Need for this Class?
• Laptop Computer
§ Capable of running Python (no ChromeBooks!)
§ Minimum of 8Gb of RAM
• Python Installation
§ Will be using the latest Anaconda version
§ See instructions on website for how to install
• iClicker. Acquire by next Tuesday
§ Credit for answering – even if wrong
§ iClicker App for smartphone is not acceptable
8/22/22 Overview, Types & Expressions 12
13. What Do I Need for this Class?
• Laptop Computer
§ Capable of running Python (no ChromeBooks!)
§ Minimum of 8Gb of RAM
• Python Installation
§ Will be using the latest Anaconda version
§ See instructions on website for how to install
• iClicker. Acquire by next Tuesday
§ Credit for answering – even if wrong
§ iClicker App for smartphone is not acceptable
8/22/22 Overview, Types & Expressions 13
You can use computers
in Phillips 318 if needed.
14. What Do I Need for this Class?
• Laptop Computer
§ Capable of running Python (no ChromeBooks!)
§ Minimum of 8Gb of RAM
• Python Installation
§ Will be using the latest Anaconda version
§ See instructions on website for how to install
• iClicker. Acquire by next Tuesday
§ Credit for answering – even if wrong
§ iClicker App for smartphone is not acceptable
8/22/22 Overview, Types & Expressions 14
The only MUST purchase
15. This Course is OS Agnostic
8/22/22 Overview, Types & Expressions 15
Windows 10
macOS
Catalina
macOS 10.15 or higher
16. Do NOT Even THINK It!
8/22/22 Overview, Types & Expressions 16
Coming this October
17. Do NOT Even THINK It!
8/22/22 Overview, Types & Expressions 17
Coming this October
18. Things to Do Before Next Class
• Visit the course website:
§ www.cs.cornell.edu/courses/cs1110/2022fa/
§ This IS the course syllabus, updated regularly
• Read Get Started
§ Enroll in Ed Discussions
§ Register your iClicker online
§ Sign into CMS and complete Survey 0
§ Install Python and complete Lab 0
§ Take the academic integrity quiz
8/22/22 Overview, Types & Expressions 18
19. Things to Do Before Next Class
• Visit the course website:
§ www.cs.cornell.edu/courses/cs1110/2022fa/
§ This IS the course syllabus, updated regularly
• Read Get Started
§ Enroll in Ed Discussions
§ Register your iClicker online
§ Sign into CMS and complete Survey 0
§ Install Python and complete Lab 0
§ Take the academic integrity quiz
8/22/22 Overview, Types & Expressions 19
Will talk about this
more next class
20. Some Words About About Grades
• This class is not curved (in traditional sense)
§ Curve = competition with other students
§ This is about material, not your classmates
• The grades mean something
§ A: mastered material; can be a consultant
§ B: good at material; ready to take 2110
§ C: it is a bad idea to take 2110
§ D: where did you go?
§ F: were you ever here?
8/22/22 Overview, Types & Expressions 20
21. Some Words About About Grades
• But this is not a weed-out course
§ We know students have different backgrounds
§ Students can do well regardless of experience
• But you may have to work hard!
§ If no experience, budget 10-12 hours of homework a week
8/22/22 Overview, Types & Expressions 21
A B C D/F
All Students 40% 40% 18% 2%
Some Experience 37% 41% 20% 2%
No Experience 32% 42% 24% 2%
42%
28%
22. Some Words About About Grades
• But this is not a weed-out course
§ We know students have different backgrounds
§ Students can do well regardless of experience
• But you may have to work hard!
§ If no experience, budget 10-12 hours of homework a week
8/22/22 Overview, Types & Expressions 22
A B C D/F
All Students 40% 40% 18% 2%
Some Experience 37% 41% 20% 2%
No Experience 32% 42% 24% 2%
Freshmen, No Exp 37% 39% 24% 0%
42%
28%
23. Getting Started with Python
• Will use the “command line”
§ OS X/Linux: Terminal
§ Windows: PowerShell
§ Purpose of the first lab
• Once installed type “python”
§ Starts an interactive shell
§ Type commands at >>>
§ Responds to commands
• Use it like a calculator
§ Use to evaluate expressions
8/22/22 Overview, Types & Expressions 23
This class uses Python 3.9
25. Expressions and Values
8/22/22 Overview, Types & Expressions 25
• An expression represents something
§ Python evaluates it, turning it into a value
§ Similar to what a calculator does
• Examples:
>>> 2.2
2.2
>>> (3 * 7 + 1) * 0.1
2.2
Value
Expression
Value
Expression
(Literal)
(Complex)
26. • Think about + in Python:
>>> 1+2
3
>>> "Hello"+"World"
"HelloWorld"
• Why does + given different answers?
§ + is different on data of different types
§ This idea is fundamental to programming
What Are Types?
8/22/22 Overview, Types & Expressions 26
adds numerically
glues together
27. A type is both
•a set of values, and
•the operations on them
What Are Types?
8/22/22 Overview, Types & Expressions 27
28. Example: int
• Values: integers
§ …, –1, 0, 1, …
§ Literals are just digits:
1, 45, 43028030
§ No commas or periods
• Operations: math!
§ +, – (add, subtract)
§ *, // (mult, divide)
§ ** (power-of)
8/22/22 Overview, Types & Expressions 28
29. Example: int
• Values: integers
§ …, –1, 0, 1, …
§ Literals are just digits:
1, 45, 43028030
§ No commas or periods
• Operations: math!
§ +, – (add, subtract)
§ *, // (mult, divide)
§ ** (power-of)
• Important Rule:
§ int ops make ints
§ (if making numbers)
• What about division?
§ 1 // 2 rounds to 0
§ / is not an int op
• Companion op: %
§ Gives the remainder
§ 7 % 3 evaluates to 1
8/22/22 Overview, Types & Expressions 29
30. Example: float
• Values: real numbers
§ 2.51, -0.56, 3.14159
§ Must have decimal
§ 2 is int, 2.0 is float
• Operations: math!
§ +, – (add, subtract)
§ *, / (mult, divide)
§ ** (power-of)
• Ops similar to int
• Division is different
§ Notice /, not //
§ 1.0/2.0 evals to 0.5
• But includes //, %
§ 5.4//2.2 evals to 2.0
§ 5.4 % 2.2 evals to 1.0
• Superset of int?
8/22/22 Overview, Types & Expressions 30
31. float values Have Finite Precision
• Try this example:
>>> 0.1+0.2
0.30000000000000004
• The problem is representation error
§ Not all fractions can be represented as (finite) decimals
§ Example: calculators represent 2/3 as 0.666667
• Python does not use decimals
§ It uses IEEE 754 standard (beyond scope of course)
§ Not all decimals can be represented in this standard
§ So Python picks something close enough
8/22/22 Overview, Types & Expressions 31
32. float values Have Finite Precision
• Try this example:
>>> 0.1+0.2
0.30000000000000004
• The problem is representation error
§ Not all fractions can be represented as (finite) decimals
§ Example: calculators represent 2/3 as 0.666667
• Python does not use decimals
§ It uses IEEE 754 standard (beyond scope of course)
§ Not all decimals can be represented in this standard
§ So Python picks something close enough
Expressions vs Values
8/22/22 Overview, Types & Expressions 32
33. int versus float
• This is why Python has two number types
§ int is limited, but the answers are always exact
§ float is flexible, but answers are approximate
• Errors in float expressions can propagate
§ Each operation adds more and more error
§ Small enough not to matter day-to-day
§ But important in scientific or graphics apps
(high precision is necessary)
§ Must think in terms of significant digits
8/22/22 Overview, Types & Expressions 33
34. Using Big float Numbers
• Exponent notation is useful for large (or small) values
§ –22.51e6 is –22.51 * 106 or –22510000
§ 22.51e–6 is 22.51 * 10–6 or 0.00002251
• Python prefers this in some cases
>>> 0.00000000001
1e-11
A second kind
of float literal
Remember: values
look like literals
8/22/22 Overview, Types & Expressions 34
35. Example: bool
• Values: True, False
§ That is it.
§ Must be capitalized!
• Three Operations
§ b and c
(True if both True)
§ b or c
(True if at least one is)
§ not b
(True if b is not)
• Made by comparisons
§ int, float operations
§ But produce a bool
• Order comparisons:
§ i < j, i <= j
§ i >= j, i > j
• Equality, inequality:
§ i == j (not = )
§ i != j
8/22/22 Overview, Types & Expressions 35
36. Example: str
• Values: text, or sequence of characters
§ String literals must be in quotes
§ Double quotes: "Hello World!", " abcex3$g<&"
§ Single quotes: 'Hello World!', ' abcex3$g<&’
• Operation: + (catenation, or concatenation)
§ 'ab' + 'cd' evaluates to 'abcd’
§ concatenation can only apply to strings
§ 'ab' + 2 produces an error
8/22/22 Overview, Types & Expressions 36