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

Similar documents
CS 101 Computer Science I Fall Instructor Muller. Syllabus

Data Structures and Algorithms

Foothill College Summer 2016

CS Course Missive

GACE Computer Science Assessment Test at a Glance

Computer Science 141: Computing Hardware Course Information Fall 2012

Course Content Concepts

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

BUS Computer Concepts and Applications for Business Fall 2012

(Sub)Gradient Descent

Spring 2016 Stony Brook University Instructor: Dr. Paul Fodor

Computer Organization I (Tietokoneen toiminta)

FINANCE 3320 Financial Management Syllabus May-Term 2016 *

COMS 622 Course Syllabus. Note:

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

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

WSU Five-Year Program Review Self-Study Cover Page

Probability and Game Theory Course Syllabus

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

Phys4051: Methods of Experimental Physics I

Course Syllabus for Math

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

CS Machine Learning

Computer Science 1015F ~ 2016 ~ Notes to Students

MTH 215: Introduction to Linear Algebra

BADM 641 (sec. 7D1) (on-line) Decision Analysis August 16 October 6, 2017 CRN: 83777

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

CS 100: Principles of Computing

Montana Content Standards for Mathematics Grade 3. Montana Content Standards for Mathematical Practices and Mathematics Content Adopted November 2011

ASTR 102: Introduction to Astronomy: Stars, Galaxies, and Cosmology

STUDENT MOODLE ORIENTATION

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

Math 181, Calculus I

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

EECS 571 PRINCIPLES OF REAL-TIME COMPUTING Fall 10. Instructor: Kang G. Shin, 4605 CSE, ;

Texas A&M University - Central Texas PSYK PRINCIPLES OF RESEARCH FOR THE BEHAVIORAL SCIENCES. Professor: Elizabeth K.

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

Pair Programming. Spring 2015

Introduction to Information System

Self Study Report Computer Science

MASTER OF SCIENCE (M.S.) MAJOR IN COMPUTER SCIENCE

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

ACCOUNTING FOR MANAGERS BU-5190-OL Syllabus

DIGITAL GAMING AND SIMULATION Course Syllabus Advanced Game Programming GAME 2374

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

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

MATH 1A: Calculus I Sec 01 Winter 2017 Room E31 MTWThF 8:30-9:20AM

CS177 Python Programming

Chemistry 106 Chemistry for Health Professions Online Fall 2015

ACTL5103 Stochastic Modelling For Actuaries. Course Outline Semester 2, 2014

PSYC 2700H-B: INTRODUCTION TO SOCIAL PSYCHOLOGY

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

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

OCR for Arabic using SIFT Descriptors With Online Failure Prediction

Math 96: Intermediate Algebra in Context

Visual Journalism J3220 Syllabus

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

School of Innovative Technologies and Engineering

Lahore University of Management Sciences. FINN 321 Econometrics Fall Semester 2017

CIS 2 Computers and the Internet in Society -

EDIT 576 DL1 (2 credits) Mobile Learning and Applications Fall Semester 2014 August 25 October 12, 2014 Fully Online Course

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

Course Specifications

The Moodle and joule 2 Teacher Toolkit

Course Policies and Syllabus BUL3130 The Legal, Ethical, and Social Aspects of Business Syllabus Spring A 2017 ONLINE

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

LING 329 : MORPHOLOGY

I. PREREQUISITE For information regarding prerequisites for this course, please refer to the Academic Course Catalog.

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

Class Meeting Time and Place: Section 3: MTWF10:00-10:50 TILT 221

Medical Terminology - Mdca 1313 Course Syllabus: Summer 2017

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

ECON492 Senior Capstone Seminar: Cost-Benefit and Local Economic Policy Analysis Fall 2017 Instructor: Dr. Anita Alves Pena

ACCOUNTING FOR MANAGERS BU-5190-AU7 Syllabus

CALCULUS I Math mclauh/classes/calculusi/ SYLLABUS Fall, 2003

Computer Architecture CSC

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

Syllabus - ESET 369 Embedded Systems Software, Fall 2016

ENME 605 Advanced Control Systems, Fall 2015 Department of Mechanical Engineering

Scott and Becky Gerdes

Bittinger, M. L., Ellenbogen, D. J., & Johnson, B. L. (2012). Prealgebra (6th ed.). Boston, MA: Addison-Wesley.

PSYCHOLOGY 353: SOCIAL AND PERSONALITY DEVELOPMENT IN CHILDREN SPRING 2006

Visual CP Representation of Knowledge

EDCI 699 Statistics: Content, Process, Application COURSE SYLLABUS: SPRING 2016

BENG Simulation Modeling of Biological Systems. BENG 5613 Syllabus: Page 1 of 9. SPECIAL NOTE No. 1:

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

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

The Policymaking Process Course Syllabus

GIS 5049: GIS for Non Majors Department of Environmental Science, Policy and Geography University of South Florida St. Petersburg Spring 2011

Lesson Plan. Preparation

Identifying Novice Difficulties in Object Oriented Design

Measurement. When Smaller Is Better. Activity:

Page 1 of 11. Curriculum Map: Grade 4 Math Course: Math 4 Sub-topic: General. Grade(s): None specified

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

Lecture 1: Machine Learning Basics

Page 1 of 8 REQUIRED MATERIALS:

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

Physics 270: Experimental Physics

University of North Carolina at Greensboro Bryan School of Business and Economics Department of Information Systems and Supply Chain Management

Transcription:

CS 1103 Computer Science I Honors Fall 2016 Instructor Muller Syllabus Welcome to CS1103. 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 OCaml dialect of the ML programming language. ML is a modern programming language featuring polymorphic static typing, automatic memory management and a robust module system. ML is value-oriented computation is driven by an imperative to find the value of an expression. ML is often also called a functional programming language because of its emphasis on functions. Good program design methodology will be stressed throughout the course. 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 an OCaml program. Basic Information CS 1101 has two 75-minute lectures each week and one one-hour lab. Lectures are held on Tuesdays and Thursdays at 9AM in Fulton Hall 415. 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/cs1103/f16/ 1

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 Canvas website. Note that we will not have a course homepage on Canvas. Staff Instructor: Robert Muller email:robert.muller2@gmail.com office: St. Mary s Hall Rm S277, hours: Wednesdays and Thursdays 1PM - 3PM. phone: 617-552-3964 Teaching Assistant: Mika Chesnutt email: lastname AT bc DOT edu office: Fulton 160 hours: Sundays 4PM - 6PM Teaching Assistant: Caroline Humphrey email: humphrcc AT bc DOT edu office: Fulton 160 hours: Mondays 4PM - 6PM Lab Times 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. All lab meetings take place in Higgins 280. Lab times are: 1. CSCI100601 (Caroline Humphrey) Tuesdays 4PM - 5PM, 2. CSCI100602 (Mika Chesnutt) Wednesdays 10AM - 11AM. Problem Sets Each week you will be assigned a problem set. Unless otherwise specified, all problem sets are due on 5PM on the specified due date. The single best indicator of success for computer science is starting problem sets early. 2

Problem sets should be submitted for grading by uploading an appropriately named zip file through the course Canvas 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. 3

Topics Roughly construed and subject to variation. 1. Overview, administration, OCaml setup and introduction. Types, literals, operators and expressions. Simplification, and values. Functions, libraries, function calls, function definitions. 2. More on function definitions and calls, variables and the simplification/substitution model of computation. let-bound variables, binding patterns, type notation. Using the graphics system. Pattern matching, match expressions. Branching, repetition. 3. More on repetition, primality, tessellation, A bisection algorithm for square roots. 4. Lists and tuples, appending, reversal, work/complexity. More on lists, linear search, association lists. Insert, split, partition and merge. 5. Sorting: insertion sort, mergesort, quicksort. 6. More work with lists and tuples, making change, positional addition. First Exam. 7. Functions are values, mapping and folding/reducing. 8. Type definitions, record types, sum types, option types. Binary search, binary search trees. 9. Numeral systems, binary, logic gates, a full-adder, a ripple-carry adder. 10. Machines: storage/memory, bytes and hexadecimal numerals. A storage model of evaluation. Storage diagrams. Machine architecture, SVM, assembly code. 11. Mutation, arrays and imperative repetition idioms while and for. Working with 1 and 2D arrays. 12. Backtracking, 8-queens. Second Exam. 13. Strings, text, file IO and command-line arguments. Applications in bioinformatics, Markov models. 14. Defining new types in OCaml and Java. 15. Defining new types in OCaml and Java. Review and wrapup. 4

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 September 27, Second Midterm Thursday November 3, Final Exam TBA. Reading There is one textbook for the course OCaml from the Very Beginning by John Whittington. There are two other books listed on the course homepage. We will use extensive code and lecture notes which will be posted to the course web site. 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 and Piazza involvement will be incorporated into the participation score. Final grades are computed, roughly as follows: Ten problem sets, these account for 46% of your grade, Two midterm exams, each accounts for 13% 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 12% of your grade. Important! If you fail one of these components, you will fail CS 1101, even if your weighted-average scores are mathematically above the passing threshold. Late Homework Policy Homework is due on the day indicated at midnight. This is a strict deadline. Homework submitted at 12:01AM 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 the Instructor for an extension. Medical problems or family emergencies are the only conditions under which extensions will be granted. 5

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. 6