COMP250: Introduction to Computer Science. Jérôme Waldispühl & Carlos Oliver Gonzalez School of Computer Science McGill University

Similar documents
COMP251: Algorithms and Data Structures. Jérôme Waldispühl School of Computer Science McGill University

COMP Foundations of Programming

COMP-202C: Foundations of Programming

COMP Data Structures

Outline. Computer Science 331. Course Information. Assessment. Contact Information Assessment. Introduction to CPSC 331

COMP Data Structures

ITP489 In-Memory DBMS for Real Time Analytics

EECE.2160: ECE Application Programming Spring 2017

COMP-202B: Foundations of Programming

Dr. Angela Guercio Dr. Natalia Dragan. Spring 2011

CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims

COMP Foundations of Programming

Object-Oriented Programming for Managers

Syllabus COSC-051-x - Computer Science I Fall Office Hours: Daily hours will be entered on Course calendar (or by appointment)

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017

CS120 Computer Science I. Instructor: Jia Song

COMP-202 Unit 0: Course Details

Database Systems: Concepts, design, and implementation ISE 382 (3 Units)

CMSC 132: Object-Oriented Programming II. Administrivia

Data Structures and Algorithms

Think Java: How to Think Like a Computer Scientist, written by

Assignment Tutorial.

Syllabus Revised 01/03/2018

COMP-421: Database Systems. Joseph D silva McConnel Engg. 102

COMP-202A: Introduction to Computing 1

CS 200, Section 1, Programming I, Fall 2017 College of Arts & Sciences Syllabus

COMP Assignment 1

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

Tuesday and Thursday 1:05 pm - 2:25 pm

Spring CISM 3330 Section 01D (crn: # 10300) Monday & Wednesday Classroom Miller 2329 Syllabus revision: #

Lecture 4: Introduction to Java and your Development Environment

McGill University COMP-202A Introduction to Computing I Summer 2006 webct.mcgill.ca

Rochester Institute of Technology Golisano College of Computing and Information Sciences Department of Information Sciences and Technologies

University of Maryland at College Park Department of Geographical Sciences GEOG 477/ GEOG777: Mobile GIS Development

EECE.2160: ECE Application Programming Spring 2019

ITP454 Enterprise Resource Planning, Design, and Implementation

Today. An Animated Introduction to Programming. Prerequisites. Computer programming

3D Graphics Programming Mira Costa High School - Class Syllabus,

CSC 1052 Algorithms & Data Structures II: Introduction

COMP-202A: Introduction to Computing 1

COMP-202B: Introduction to Computing 1

CSc 2310 Principles of Programming (Java) Jyoti Islam

CPSC 2380 Data Structures and Algorithms

UCD School of Information and Library Studies. IS30020: Web Publishing

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1 and 2, Spring 2016

VE281 Data Structures and Algorithms. Introduction and Asymptotic Algorithm Analysis

Faculty of Information School of Graduate Studies University of Toronto St. George Semester: Winter 2017 INF2191H User Interface Design

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018

CSE 114, Computer Science 1 Course Information. Spring 2017 Stony Brook University Instructor: Dr. Paul Fodor

CISC 124: Introduction To Computing Science II

Cleveland State University

Central Washington University Department of Computer Science Course Syllabus

CSCI 528: OBJECT ORIENTED PROGRAMMING, Fall 2015

Introduction to Programming System Design CSCI 455x (4 Units)

Office Hours: (By Appoint Only)

ITP454 Enterprise Resource Planning, Design, and Implementation

programming exercises.

15-411/ Compiler Design

CSCI 4250/6250 Fall 2013 Computer and Network Security. Instructor: Prof. Roberto Perdisci

Announcements. 1. Forms to return today after class:

San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015

1. Textbook #1: Our Digital World (ODW). 2. Textbook #2: Guidelines for Office 2013 (GFO). 3. SNAP: Assessment Software

Orientation for Online Students

CISC 3130 Data Structures Spring 2018

Database Design and Management - BADM 352 Fall 2009 Syllabus and Schedule

CARTO UNIVERSITY GROUP. Syllabus GEO 445/545 Computer-assisted Cartography Winter December 18, 2013

CSCE 441 Computer Graphics Fall 2018

CS 378 (Spring 2003) Linux Kernel Programming. Yongguang Zhang. Copyright 2003, Yongguang Zhang

THE UNIVERSITY OF TEXAS AT AUSTIN MIS373 e-discovery and Digital Forensics SPRING 2015 Unique#: (03883) VERSION: 1/23/2015

In this course, you need to use Pearson etext. Go to "Pearson etext and Video Notes".

Geography 3300: Transportation Security

CMPE 152 Compiler Design

Al al-bayt University Prince Hussein Bin Abdullah College for Information Technology Computer Science Department

CS111: Intro to Computer Science

EECS 282 Information Systems Design and Programming. Atul Prakash Professor, Computer Science and Engineering University of Michigan

Intensive Introduction to Computer Science. Course Overview Programming in Scratch

Computer Science Technology Department

Computer Science Department

CS-E4420 Information Retrieval

CSE 332: Data Abstractions. Ruth Anderson Spring 2014 Lecture 1

CS 240 Fall Mike Lam, Professor. Just-for-fun survey:

CISC 3130 Data Structures Fall 2018

CS535: Interactive Computer Graphics

THE UNIVERSITY OF TEXAS AT AUSTIN MIS373 e-discovery and Digital Forensics SPRING 2015 Unique#: (03665) VERSION: 2_011718

CSCI 201L Syllabus Principles of Software Development Spring 2018

COMP-421: Database Systems. Joseph D silva McConnel Engg. 102

CMPE012 Computer Engineering 12 (and Lab) Computing Systems and Assembly Language Programming. Summer 2009

ECE573 Introduction to Compilers & Translators

CMSC433 - Programming Language Technologies and Paradigms. Introduction

CSCE 206: Structured Programming in C

Lecture 1: Introduction

Enterprise Network Design ITP 499 (3 Units)

CSE 336. Introduction to Programming. for Electronic Commerce. Why You Need CSE336

CSCD18: Computer Graphics. Instructor: Leonid Sigal

Computer Science 1321 Course Syllabus

Programming 2. Outline (112) Lecture 0. Important Information. Lecture Protocol. Subject Overview. General Overview.

The Psychology of Social Influence (PSYC 342) Cialdini, R. B. (2009). Influence: Science and Practice (Fifth Edition). Boston, MA: Allyn and Bacon.

Pilot Quick Start Guide for Students

Outline. Intro. Week 1, Fri Jan 4. What is CG used for? What is Computer Graphics? University of British Columbia CPSC 314 Computer Graphics Jan 2013

Transcription:

COMP250: Introduction to Computer Science Jérôme Waldispühl & Carlos Oliver Gonzalez School of Computer Science McGill University

About Me Jérôme Waldispühl Associate Professor of Computer Science I am conducting research in Bioinformatics How to reach me? o Office hours (TBA) o By appointment (email me to schedule a meeting) o Email: jeromew@cs.mcgill.ca o If you email me: Always add COMP250 in the title!

Where to get announcements & updates? Official channel: Course web page: http://www.cs.mcgill.ca/~jeromew/comp250.html Other channels MyCourses In class!

Evaluation 40% for 4 assignments 10% for quizzes* 50% for the final exam * The quizzes are optional. If the average grade of the quizzes is lower than your score at the final exam, the weight of the quizzes will be reported to the final (i.e. your final will count for 60% of your grade). Warning: There will be no modification of this scheme.

Schedule Classes start Today Reading week: March 5 11 Classes end on April 13 (included). Final exam: TBD

Organization 2 sections, same content, same instructors. On Friday, both sections are merged (i.e. 1 single lecture) Lecture will be recorded and available for streaming but not downloadable. Specific teaching assistants assigned to assignments & quizzes.

Outline Jan 8-12: Background (J. Waldispühl) Jan 15 Jan 23: Programming in Java (C. Gonzalez) Jan 24-Feb 1: Recursion (J. Waldispühl) Feb 2 Feb 13: Running time (C. Gonzalez) Feb 14 Mar 16: Abstract Data Structures (J. Waldispühl) Mar 19 Apr 10: Selected topics (C. Gonzalez) Apr 11 Apr 13: Conclusion (J. Waldispühl & C. Gonzalez)

Textboooks [D2012] Allen B. Downey, How to think like a computer scientist - Java version. (Available on Course Webpage) Other recommended textbooks: [CH2014] Frank M. Carrano and Timothu M. Henry, Data structures and abstractions with Java, 4th edition, Pearson Editors. [GT2010] Michael T. Goodrich, Roberto Tamassia, Data Structures and Algorithms in Java, 5th Edition, John Wiley and Sons

Assignments Only programming questions Programming Language: Java Read carefully the formatting guidelines. Strictly follow the formatting guidelines. Submit your answers electronically on MyCourse. Each file must be submitted separately. Do not zip your files! Re-submission accepted before the deadline. Discuss the assignment, but do not share/copy solutions. Print the name of persons with whom you discussed/collaborated (including instructor and TA).

Answering programming questions Submit the Java source file (i.e. not.class file) Separate Mycourse folder Ensure that your files compile on SOCS workstations (Note: Create an account if you do not already have one) Indent your code! Use the template provided. Do not use custom libraries (unless specified). Follow the syntax of the command line provided in the question. Use the test input & output (Note: It does not guarantee that your program is 100% correct).

Tips We will provide test cases (i.e. input & output). Use them! BUT note that passing all tests does not guarantee that your program is 100% correct. We will use different ones to check that your program is correct. It is your responsibility to guarantee that your program: Compile on SOCS workstations Run with the proper syntax of the command line Produces an output that follows the guidelines If it is not the case, you will receive an email from a TA asking you to fix your program within 24h. If you fix your program, we will grade it with a 20% penalty. Otherwise, you will not be graded.

Policy Late assignments will receive a 20% penalty if they are returned within less than 24h after the end of the deadline. They will not be graded afterward. (Tip: Submit preliminary versions early) The only exceptions will be medical exceptions. You must provide a medical note (instructor & McGill). No plagiarism!

WHAT IS AN ALGORITHM?

Algorithms A systematic and unambiguous procedure that produces - in a finite number of steps - the answer to a question or the solution of a problem. Algorithms can be run on a computer, but they don t have to: Mayas had algorithms to predict solar eclipses centuries in advance Egyptians had algorithms to build pyramids Indians had algorithms for factorizing polynomials Greeks had algorithms to build all kinds of geometric construction using only a compass and straight lines.

Compass and straight-line construction Problem: Angle bisection INPUT: An angle defined by three points AOB OUTPUT: A point C such that AOC = BOC Algorithm: Draw circle centered at O to find A and B Draw circles centered at A and B of the same radius to find C Then AOC and BOC bisect AOB A C B B A O

Problem: Butterfly Origami INPUT: 2:1 rectangle OUTPUT: A butterfly

Problem: Chickpea cooking INPUT: Ingredients (left) OUTPUT: Yummy (but spicy

To think about Think of three different ways to solve the following problem: PROBLEM: LIST INTERSECTION Input: A long list of students taking COMP250 A long list of students taking MATH240 Output: How many students are taking both classes? Assume that you only have names, no ID number, and that comparing one name to another takes time because they are hand-written