CS 101 Computer Science I Fall Instructor Muller. Syllabus

Similar documents
CS 1103 Computer Science I Honors. Fall Instructor Muller. Syllabus

Data Structures and Algorithms

GACE Computer Science Assessment Test at a Glance

Course Content Concepts

CS Course Missive

Computer Science 1015F ~ 2016 ~ Notes to Students

Spring 2016 Stony Brook University Instructor: Dr. Paul Fodor

Foothill College Summer 2016

CS 100: Principles of Computing

Penn State University - University Park MATH 140 Instructor Syllabus, Calculus with Analytic Geometry I Fall 2010

Computer Science 141: Computing Hardware Course Information Fall 2012

Introduction to Information System

COURSE DESCRIPTION PREREQUISITE COURSE PURPOSE

Syllabus: CS 377 Communication and Ethical Issues in Computing 3 Credit Hours Prerequisite: CS 251, Data Structures Fall 2015

STUDENT MOODLE ORIENTATION

(Sub)Gradient Descent

Economics 201 Principles of Microeconomics Fall 2010 MWF 10:00 10:50am 160 Bryan Building

FINANCE 3320 Financial Management Syllabus May-Term 2016 *

Grading Policy/Evaluation: The grades will be counted in the following way: Quizzes 30% Tests 40% Final Exam: 30%

WSU Five-Year Program Review Self-Study Cover Page

School of Innovative Technologies and Engineering

Phys4051: Methods of Experimental Physics I

DIGITAL GAMING AND SIMULATION Course Syllabus Advanced Game Programming GAME 2374

The Moodle and joule 2 Teacher Toolkit

CS177 Python Programming

CS4491/CS 7265 BIG DATA ANALYTICS INTRODUCTION TO THE COURSE. Mingon Kang, PhD Computer Science, Kennesaw State University

Instructor Dr. Kimberly D. Schurmeier

Computer Architecture CSC

Stochastic Calculus for Finance I (46-944) Spring 2008 Syllabus

Visual Journalism J3220 Syllabus

MTH 215: Introduction to Linear Algebra

Biology 1 General Biology, Lecture Sections: 47231, and Fall 2017

Pair Programming. Spring 2015

TESL /002 Principles of Linguistics Professor N.S. Baron Spring 2007 Wednesdays 5:30 pm 8:00 pm

BUS Computer Concepts and Applications for Business Fall 2012

Carnegie Mellon University Department of Computer Science /615 - Database Applications C. Faloutsos & A. Pavlo, Spring 2014.

Parent Information Welcome to the San Diego State University Community Reading Clinic

State University of New York at Buffalo INTRODUCTION TO STATISTICS PSC 408 Fall 2015 M,W,F 1-1:50 NSC 210

COURSE WEBSITE:

Cleveland State University Introduction to University Life Course Syllabus Fall ASC 101 Section:

Chemistry 106 Chemistry for Health Professions Online Fall 2015

Office Location: LOCATION: BS 217 COURSE REFERENCE NUMBER: 93000

Computer Science is more important than Calculus: The challenge of living up to our potential

Office Hours: Mon & Fri 10:00-12:00. Course Description

Department of Anthropology ANTH 1027A/001: Introduction to Linguistics Dr. Olga Kharytonava Course Outline Fall 2017

COSI Meet the Majors Fall 17. Prof. Mitch Cherniack Undergraduate Advising Head (UAH), COSI Fall '17: Instructor COSI 29a

UHD Student Support Resources

ENEE 302h: Digital Electronics, Fall 2005 Prof. Bruce Jacob

ME 443/643 Design Techniques in Mechanical Engineering. Lecture 1: Introduction

Page 1 of 8 REQUIRED MATERIALS:

HCI 440: Introduction to User-Centered Design Winter Instructor Ugochi Acholonu, Ph.D. College of Computing & Digital Media, DePaul University

We are strong in research and particularly noted in software engineering, information security and privacy, and humane gaming.

EECS 700: Computer Modeling, Simulation, and Visualization Fall 2014

Ryerson University Sociology SOC 483: Advanced Research and Statistics

LING 329 : MORPHOLOGY

Python Machine Learning

Android App Development for Beginners

AGN 331 Soil Science Lecture & Laboratory Face to Face Version, Spring, 2012 Syllabus

COMS 622 Course Syllabus. Note:

CHMB16H3 TECHNIQUES IN ANALYTICAL CHEMISTRY

ReinForest: Multi-Domain Dialogue Management Using Hierarchical Policies and Knowledge Ontology

ACCOUNTING FOR MANAGERS BU-5190-OL Syllabus

Instructor. Darlene Diaz. Office SCC-SC-124. Phone (714) Course Information

Math 181, Calculus I

K5 Math Practice. Free Pilot Proposal Jan -Jun Boost Confidence Increase Scores Get Ahead. Studypad, Inc.

Navigating the PhD Options in CMS

PSCH 312: Social Psychology

Moodle Student User Guide

THE UNIVERSITY OF SYDNEY Semester 2, Information Sheet for MATH2068/2988 Number Theory and Cryptography

CIS Introduction to Digital Forensics 12:30pm--1:50pm, Tuesday/Thursday, SERC 206, Fall 2015

Introduction to Moodle

Introduction to Forensic Drug Chemistry

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

Introduction to Sociology SOCI 1101 (CRN 30025) Spring 2015

Math-U-See Correlation with the Common Core State Standards for Mathematical Content for Third Grade

MOODLE 2.0 GLOSSARY TUTORIALS

Spring 2015 IET4451 Systems Simulation Course Syllabus for Traditional, Hybrid, and Online Classes

Algorithms and Data Structures (NWI-IBC027)

Detecting English-French Cognates Using Orthographic Edit Distance

Machine Learning and Data Mining. Ensembles of Learners. Prof. Alexander Ihler

AST Introduction to Solar Systems Astronomy

Module 12. Machine Learning. Version 2 CSE IIT, Kharagpur

PESIT SOUTH CAMPUS 10CS71-OBJECT-ORIENTED MODELING AND DESIGN. Faculty: Mrs.Sumana Sinha No. Of Hours: 52. Outcomes

Accounting 312: Fundamentals of Managerial Accounting Syllabus Spring Brown

Assessment Strategies Sight Word Assessments Running Records Daily Work Anecdotal Notes

PSYC 2700H-B: INTRODUCTION TO SOCIAL PSYCHOLOGY

Probability and Game Theory Course Syllabus

AU MATH Calculus I 2017 Spring SYLLABUS

Syllabus: INF382D Introduction to Information Resources & Services Spring 2013

Issue 1. 17th February Brooks High School Department of Education

Psychology 102- Understanding Human Behavior Fall 2011 MWF am 105 Chambliss

Internship Program. Application Submission completed form to: Monica Mitry Membership and Volunteer Coordinator

CIS 2 Computers and the Internet in Society -

Welcome to WRT 104 Writing to Inform and Explain Tues 11:00 12:15 and ONLINE Swan 305

EDIT 576 (2 credits) Mobile Learning and Applications Fall Semester 2015 August 31 October 18, 2015 Fully Online Course

CS 3516: Computer Networks

Living & Learning Together

Math 96: Intermediate Algebra in Context

From Self Hosted to SaaS Our Journey (LEC107648)

Java Programming. Specialized Certificate

Transcription:

CS 101 Computer Science I Fall 2013 Instructor Muller Syllabus Welcome to CS101. This course is an introduction to the art and science of computer programming and to some of the fundamental concepts of computer science. Students will write programs in the Python programming language. Good program design methodology will be stressed throughout. There will also be a study of some of the basic notions of computer science, including computer systems organization, files, and some algorithms of fundamental importance. Course Goals The main goal of this course is to help the student develop an understanding of computation and to help them master the art of designing algorithms, and developing the programs that implement them. Important parts of the latter include documenting and testing the program. Students will learn how to decompose problems into specific subproblems, write an algorithm to solve a specific problem, and then translate that algorithm into a Python program. Basic Information CS101 has two 75-minute lectures each week and one one-hour lab. Lectures for section 3 are in Fulton Hall 250 at 12PM. Lectures for section 4 are in Fulton Hall 250 at 1:30PM. Attendance at the lectures is critical, as all new material will be presented there. Note: Laptops are not allowed in lecture. If you have special circumstances that require you to bring one, please see me. Course Web Site Please bookmark the course homepage: http://www.cs.bc.edu/~muller/teaching/cs101/f13/ We will use this site very heavily throughout the semester and most of the course materials will be distributed through this site. Some lab materials will be distributed through the linked Piazza site. Problem sets are to be submitted through the linked BB/Vista website. Note that we will not have a course homepage on BBVista. 1

Lab Times All lab/section meetings are in Maloney Hall 550. The labs are run by the course Teaching Assistants. They provide a great opportunity for you to work with a partner and practice with new material on some fun problems in a supervised setting. Regular attendance at labs is strongly encouraged. Please bring your laptop if you have one. If you do not have a laptop, please see me. Lab times are: 1. Section 00802, (Danny) Meets Tuesdays 4PM, 2. Section 00702, (Milo) Meets Tuesdays 5PM, 3. Section 00801, (Meg) Meets Wednesdays 3PM, 4. Section 00701, (Jon) Meets Wednesdays 4PM. Staff Instructor: Robert Muller, robert.muller2@gmail.com, office: Maloney Hall 570, hours: Mondays 10AM - 12PM, Thursdays 3PM - 5PM, 617-552-3964. Head Teaching Assistant: Meg Bednarcik, meg.bednarcik@gmail.com, office: Fulton 160, hours: TBA. Teaching Assistant: Jon Hegarty, jon.hegarty@bc.edu, office: Fulton 160, hours: TBA. Teaching Assistant: Danny Schlitt, schlitda@bc.edu, office: Fulton 160, hours: TBA. Teaching Assistant: Milo Watanabe, milo.watanabe@bc.edu, office: Fulton 160, hours: TBA. Problem Sets Each week you will be assigned a problem set. Unless otherwise specified, all problem sets are due on 12PM on the specified due date. The single best indicator of success for computer science is starting problem sets early. Problem sets should be submitted for grading by uploading an appropriately named zip file through the course Blackboard/Vista web site. (As linked from the course home page.) Problem sets cannot be submitted as email attachments. Attempts to submit problem sets as email attachments will not receive an email reply indicating that the attempted submission failed. 2

Topics Roughly construed and subject to variation. 1. Introduction and admin. The Python shell. Basic types int and float. Constants, variables and expressions. Evaluation, values. Function definitions and calls. Libraries, the stddraw library. 2. The replacement model of evaluation. Using variables to name values. The bool type, comparing, branching. Conditional expressions and statements. Repetition (using conditionals and recursive function calls). Divide and Conquer. Tiling the unit square. 3. More on repetition, primality. Approximation algorithms, sqrt, pi. Nested definitions, block-structure and scope. 4. Structured data types. Lists and tuples. Indexing, slices, concatenation, list comprehensions, tuple patterns, zipping and unzipping. Functions are values. Lambda, map and reduce. 5. First Exam. Comparing and Searching. Linear search, binary search, an introduction to algorithmic complexity. Binary search trees. 6. Sorting. Mergesort and quicksort. Dictionaries. Association list implementation of dictionaries, binary search trees for dictionaries. 7. Storage, persistent and volatile, system and user, static and dynamic, the stack and the heap. Pointers and storage diagrams. The storage model of evaluation. 8. Bits and bytes, hexadecimal notation, data and program representation, the von Neumann machine, virtual machines. 9. Second Exam. Working with strings. Matching, coding, cryptography. 10. Application: digital audio. How hearing works, pulse-code modulation. 11. Application: digital images. How sight works, color. Working with 2D arrays. 12. Mutation. Mutation-based repetition idioms while-loops and for-loops. Quicksort revisited. 13. Mutable dictionaries, working with strings and files, GUIs. 14. Defining new types, Abstract Data Types, APIs. Review and looking ahead. 3

Exams There will be two midterm exams and a final exam. The exams are in class and are closed notes and closed book. You will have 75 minutes to complete each midterm, and 2.5 hours to complete the final. If you require extra time for documented reasons, please let us know. Midterms First Midterm Tuesday October 1, Second Midterm End of October, date TBA, Final Exam TBA. Reading We will be using a free on-line book CS for All, by Christine Alvarado (UC San Diego), Zachary Dodds (Harvey Mudd), Geoff Kuenning (Harvey Mudd), Ran Libeskind-Hadas (Harvey Mudd). This is the new edition of the book used for the intro course at Harvey Mudd. That course is similar to our course but not an exact match. See the course website for other references. Grading Your grade for this class will be a combination of your homework, exam, and participation work. Participation is largely based on effort (not correctness). Lab work will be incorporated into the participation score. Final grades are computed, roughly as follows: Ten problem sets, these account for 45% of your grade, Two midterm exams, each accounts for 12% of your grade and a final exam which accounts for 16% of your grade, Class, lab and piazza forum participation, together, these account for the remaining 15% of your grade. Important! If you fail one of these components, you will fail CS 101, even if your weighted-average scores are mathematically above the passing threshold. Late Homework Policy Homework is due on the day indicated at 12PM. This is a strict deadline. Homework submitted at 12:01PM is one day late as is homework submitted 23:59 late. Late homework is penalized 25% per 24-hour period. In the case of medical exigencies, students may petition the Head TA or the Instructor for an extension. Medical problems or family emergencies are the only conditions under which extensions will be granted. 4

Honor Code All solutions and code should be produced by you alone, or by you and a partner, where appropriate. For pair-programmed assignments, each partner needs to submit the assignment and each needs to acknowledge the other partner when submitting. You may discuss algorithms at a high level with any student in the class. You may also help any student find a small bug in their code. However, you may not copy solutions from anyone, nor should you collaborate beyond highlevel discussions with anyone who is not your partner. For pair programming problems, you must follow the guidelines given above. If you have any questions about what behavior is acceptable, it is your responsibility to come see one of the instructors before you engage in this behavior. We are more than happy to answer any questions you may have. 5