CSC 221: Introduction to Programming Fall 2018

Slides:



Advertisements
Similar presentations
Efficiency of Algorithms Csci 107 Lecture 6-7. Topics –Data cleanup algorithms Copy-over, shuffle-left, converging pointers –Efficiency of data cleanup.
Advertisements

1 CSC 421: Algorithm Design & Analysis Spring 2013 See online syllabus: (also on BlueLine2) Course.
1 CSC 221: Computer Programming I Fall 2006 See online syllabus (also accessible via Blackboard): Course goals:  To develop.
SOLVING SUDOKU WITH MATLAB VERIFICATION FUNCTION correctness verification of the puzzle: checks if the current element appears twice in the same line,
1 CSC 221: Introduction to Programming Fall 2012 course overview  What did you set out to learn?  What did you actually learn?  Where do you go from.
 A set of objectives or student learning outcomes for a course or a set of courses.  Specifies the set of concepts and skills that the student must.
1 CSC 221: Computer Programming I Fall 2004 course overview  what did we set out to learn?  what did you actually learn?  where do you go from here?
1 UTeach Professional Development Courses. 2 UTS Step 1 Early exposure to classroom environment (can be as early as a student’s first semester)
Introduction to Computational Thinking Vicky Chen.
1 CSC 427: Data Structures and Algorithm Analysis Fall 2011 See online syllabus (also available through BlueLine): Course goals:
Purpose of study A high-quality computing education equips pupils to use computational thinking and creativity to understand and change the world. Computing.
1 CSC 221: Introduction to Programming Fall 2013 See online syllabus (also accessible via BlueLine2): Course goals:  To develop.
SOLVING SUDOKU WITH MATLAB Raluca Marinescu, Andrea Garcia, Ivan Castro, Eduard Enoiu Mälardalen University, Västerås,
CS 140 Computer Programming (I) Second semester (3 credits) Imam Mohammad bin Saud Islamic University College of Computer Science and Information.
1 CSC 222: Computer Programming II Spring 2004 See online syllabus at: Course goals:
1 CSC 427: Data Structures and Algorithm Analysis Fall 2010 See online syllabus (also available through BlueLine): Course goals:
1 CSC 321: Data Structures Fall 2013 See online syllabus (also available through BlueLine2): Course goals:  To understand.
Introduction to Problem Solving. Steps in Programming A Very Simplified Picture –Problem Definition & Analysis – High Level Strategy for a solution –Arriving.
1 CSC 221: Computer Programming I Fall 2005 See online syllabus (also accessible via Blackboard): 
CSC 221: Computer Programming I Fall 2001 course overview  what did we set out to learn?  what did you actually learn?  where do you go from here? 
CS 127 Introduction to Computer Science. What is a computer?  “A machine that stores and manipulates information under the control of a changeable program”
1 CSC 221: Computer Programming I Spring 2008 course overview  What did we set out to learn?  What did you actually learn?  Where do you go from here?
1 CSC 427: Data Structures and Algorithm Analysis Fall 2006 See online syllabus (also available through Blackboard): Course goals:
1 CSC 221: Computer Programming I Fall 2009 See online syllabus (also accessible via BlueLine): Course goals:  To develop.
CS 1110/1111 The Case for Computer Science CS 1110/1111 – Introduction to Programming.
CMPSC 16 Problem Solving with Computers I Spring 2014 Instructor: Tevfik Bultan Lecture 4: Introduction to C: Control Flow.
SCRATCH ScratchScratch is a programming language that makes it easy to create your own interactive stories, animations, games, music, and art -- and share.
1 CSC 221: Computer Programming I Fall 2009 Introduction to programming in Scratch  animation sprites  motion, control & sensing  costume changes 
1 Structured Programming Arab Academy for Science and Technology CC112 Dr. Sherif Mohamed Tawfik The Course.
INTRODUCTION TO COMPUTER SCIENCE. SNAP! Open Chrome Whack a Mole Phone App in 3 minutes
CS140 – Computer Programming 1 Course Overview First Semester – Fall /1438 – 2016/2017 CS140 - Computer Programming 11.
Advanced Higher Computing Science
CSC 421: Algorithm Design & Analysis
CSC 427: Data Structures and Algorithm Analysis
CSC 222: Object-Oriented Programming
CSC 222: Object-Oriented Programming
CSC 222: Computer Programming II
CSC 421: Algorithm Design & Analysis
Topic: Programming Languages and their Evolution + Intro to Scratch
An Innovative Approach to the Technology Itch
CSC 321: Data Structures Fall 2016
CSC 321: Data Structures Fall 2017
COP 3503 FALL 2012 Shayan Javed Lecture 15
CSC 221: Computer Programming I Spring 2010
7 Big Ideas of Computing:
CSC 221: Computer Programming I Fall 2005
CSC 321: Data Structures Fall 2015
CSC 421: Algorithm Design & Analysis
EGR 115 Introduction to Computing for Engineers
Algorithm and Ambiguity
CSC 222: Object-Oriented Programming
Strategies for Problem Solving
Computational Thinking in the Classroom
Foundations of Programming: Introduction to Programming
CSC 421: Algorithm Design & Analysis
Foundations of Computer Science
Learn… Create… Program
Objective of This Course
GENERAL VIEW OF KRATOS MULTIPHYSICS
Learn… Create… Program
Algorithm and Ambiguity
PYTHON: BUILDING BLOCKS Sequencing & Selection
CSC 321: Data Structures Fall 2018
Learn… Create… Program
Learn… Create… Program
TEL-W16 Final Project Presentation Teaching Logics/Algorithms
CSC 221: Introduction to Programming Fall 2018
Problem Solving and Computer Programming
Presentation transcript:

CSC 221: Introduction to Programming Fall 2018 See online syllabus (also accessible via BlueLine): http://dave-reed.com/csc221 Course goals: To develop problem solving and programming skills to enable the student to design solutions to non-trivial problems and implement those solutions in Python. To master the fundamental programming constructs of Python, including variables, expressions, functions, control structures, and arrays. To build a foundation for more advanced programming techniques, including object-oriented design and the use of standard data structures (as taught in CSC 222).

What is programming? programming is applied problem-solving understand a problem identify relevant characteristics design an algorithm (step-by-step sequence of instructions to carry out a task) implement the algorithm as a computer program test the program by repeated (and carefully planned) executions GO BACK AND REPEAT/REVISE AS NECESSARY in short: programming is the process of designing, writing, testing and debugging algorithms that can be carried out by a computer we encounter algorithms everyday: directions to dorm, instruction manual, recipe people are smart, so spoken languages can be vague computers are not smart, so programming languages are extremely picky

Problem-solving example Sudoku is a popular puzzle given a partially-filled 9x9 grid, place numbers in the grid so that each row contains 1..9 each column contains 1..9 each 3x3 sub-square contains 1..9 how do people solve Sudoku puzzles? if we wanted to write a program to solve Sudoku puzzles, must/should it use the same strategies?

Related example 3-in-a-row is another puzzle given a partially-filled NxN grid, color the squares blue or white so that each row/column has the same number of each color never 3-in-a-row of same color how similar/different is the human strategy compared to Sudoku? how similar/different would a computer strategy need to be?

Programming is a means to an end important point: programming is a tool for solving problems computers allow people in many disciplines to solve problems they couldn’t solve without them — natural sciences, mathematics, medicine, business, … to model this, many exercises will involve writing a program, then using it to collect data & analyze results DISEASE VECTOR MODELING: suppose you started with a single infected individual in a population – given a constant infection rate, how long until half the population is infected? what information do you need (e.g., population, infection rate)? what data values do you need to store and update? what is the basic algorithm? what real-life factors are we ignoring?

Disease vector model in Scratch

Disease vector model in Python

Another interesting problem PAPER FOLDING: if you started with a regular sheet of paper and repeatedly fold it in half, how many folds would it take for the thickness of the paper to reach the sun*? *assuming you had a big enough sheet of paper, a space ship with a forklift, other physically improbable/impossible things… what information do you need (e.g., distance of sun)? what data values do you need to store and update? what is the basic algorithm?

Where do we start? explore programming concepts using Scratch a fun, interactive, online environment for creating animations & games we will explore your creative side, while building the foundation for programming learn-by-doing, so be prepared to design & experiment & create no previous programming experience is assumed freely accessible at scratch.mit.edu will then segue into Python (v. 3) programming transfer Scratch programming concepts into a powerful & flexible scripting language classes will mix lecture and hands-on experimentation, so be prepared to do things! freely downloadable from python.org