CMSC 15100: Introduction to Computer Science I



Similar documents
CMSC 152: Introduction to Computer Science II

CMSC Fundamentals of Computer Programming II (C++)

Math 3E - Linear Algebra (3 units)

Accounting : Accounting Information Systems and Controls. Fall 2015 COLLEGE OF BUSINESS AND INNOVATION

South Plains College. MATH 2320 Differential Equations Section 001, M W 8 9:15 am Math Bldg., Rm. 105

Major Topics Covered in the Course

CS 300 Data Structures Syllabus - Fall 2014

1.00 Lecture 1. Course information Course staff (TA, instructor names on syllabus/faq): 2 instructors, 4 TAs, 2 Lab TAs, graders

STA 4442 INTRODUCTION TO PROBABILITY FALL 2012

F l o r i d a G u l f C o a s t U n i v e r s i t y S t a t i s t i c a l M e t h o d s F a l l C R N

Precalculus Algebra Online Course Syllabus

ISM 4113: SYSTEMS ANALYSIS & DESIGN

Psychology Mind and Society Mondays & Wednesdays, 2:00 3:50 pm, 129 McKenzie Hall Fall 2013 (CRN # 16067)

Adam David Roth MESSAGE FROM THE BASIC COURSE DIRECTOR. Dear students:

After completing SI- 539, students will have a working personal portfolio website in production.

IST565 M001 Yu Spring 2015 Syllabus Data Mining

COURSE: PSYC 1101 (11) Introduction to Psychology TIME AND DAYS: Tuesdays & Thursdays; 1:00 2:15 pm CLASSROOM: Science Center 1405 (and computer lab)

The University of Chicago Booth School of Business Tools for Business Analysis: Excel and Matlab Winter, 2012.

CS 115 Introduction to Computer Programming Course Syllabus (Night Sections) Fall 2015

MATH 1111 College Algebra Fall Semester 2014 Course Syllabus. Course Details: TR 3:30 4:45 pm Math 1111-I4 CRN 963 IC #322

CHEMISTRY 109. Lecture 2, Fall Read This Syllabus Today Keep It for Future Reference

BUAD 310 Applied Business Statistics. Syllabus Fall 2013

Teaching Assistants (contact information for your TAs can be found on the course website): Luis Alvarez, Sarah Halterman, Corey Rovzar and Jason Ward.

Introduction: How does a student get started? How much time does this course require per week?

Introduction to Criminal Justice Central College

INFO/CS 4302 Web Information Systems. FT 2012 Week 1: Course Introduction

CSC122/CYEN122: Intermediate Computer Programming

Statistical Methods Online Course Syllabus

CSC 314: Operating Systems Spring 2005

Introduction to Computer Forensics Course Syllabus Spring 2012

MUSIC BUSINESS Northwest College MUSB COOPERATIVE EDUCATION, MUSIC MANAGEMENT AND MERCHANDISING. CRN Summer 2014

Prerequisite: For students other than business and agribusiness majors.

1Rules, Tips and Learning Objectives for Class

Collaboration Policy Fall 2015

George Mason University Electrical and Computer Engineering Department ECE 201: Introduction to Signal Analysis Syllabus Fall 2015

This four (4) credit hour. Students will explore tools and techniques used penetrate, exploit and infiltrate data from computers and networks.

MATH Probability & Statistics - Fall Semester 2015 Dr. Brandon Samples - Department of Mathematics - Georgia College

CS 261 C and Assembly Language Programming. Course Syllabus

Class Periods: Tuesday 11:45 a.m. - 1:40 p.m. (5th & 6th Periods) Thursday 11:45 a.m. - 12:35 p.m. (5th Period)

THE UNIVERSITY OF TOLEDO College of Social Justice & Human Service PARALEGAL STUDIES PROGRAM LGL 1720:001 LAW PRACTICE MANAGEMENT SYLLABUS FALL 2015

SI 539, Winter 2014 Complex Web Design

Prerequisite Math 115 with a grade of C or better, or appropriate skill level demonstrated through the Math assessment process, or by permit.

Math 103, College Algebra Fall 2015 Syllabus TTh PM Classes

Sample Syllabus (C++) CSCI 1301 Introduction to Programming Principles

ABNORMAL PSYCHOLOGY (PSYCH 238) Psychology Building, Rm.31 Spring, 2010: Section K. Tues, Thurs 1:45-2:45pm and by appointment (schedule via )

Syllabus. Finance 367: Investment Management

ISM 3254 Business Systems I

Summer 2015 Course Title & credit hours: Information Security, CET2830C (hybrid); 3 credit hours

SPC Common Course Syllabus for PSYC 2316 Psychology of Personality

CS3332 Software Engineering I. Term III/2016

George Washington University Department of Psychology PSYC 001: General Psychology

Introduction to Physics I (PHYS ) Fall Semester 2012

Academic Calendar - UNDERGRADUATE. All Other Classes Begin; Late Registration Begins. Last Day to Drop a Class without a W on Transcript;

INTRODUCTION TO CRIMINAL JUSTICE FALL 2015

MARSHALL SCHOOL OF BUSINESS University of Southern California. FBE 555: Investment Analysis and Portfolio Management

Investment Management Course

AGEC $424$ Syllabus. Financial Management of Agricultural Businesses

General Psychology, PSY 101

FALL Monday/Wednesday, 9:00-10:15, IT167, Class # Department of Psychology Indiana University-Purdue University Indianapolis

How To Pass A Customer Service Course At Tstc

PSYC General Psychology Course Syllabus

ISM 4210: DATABASE MANAGEMENT

MAN 4802 Entrepreneurship/Small Business Management Online Fall 2013

CS 1361-D10: Computer Science I

INFO 2130 Introduction to Business Computing Fall 2014

DEP 3053 DEVELOPMENTAL PSYCHOLOGY, LIFESPAN, SPRING 2013 Section # 0069

Canisius College Computer Science Department Computer Programming for Science CSC107 & CSC107L Fall 2014

COURSE SYLLABUS. Office Hours: MWF 08:30am-09:55am or by appointment, DAV 238

DEPARTMENT OF INFORMATION SCIENCE. INFO221 Application Software Development COURSE OUTLINE

MATH 241: DISCRETE MATHEMATICS FOR COMPUTER SCIENCE, Winter CLASSROOM: Alumni Hall 112 Tuesdays and Thursdays, 6:00-8:15 pm

ENVIRONMENTAL AND ENGINEERING GEOLOGY

College Algebra. Syllabus MAT 101. What will I learn in this class? Required Course Materials. Contacting your instructor. How is this class taught?

Upon completion of COMM 7, Interpersonal Communication, students will be able to:

PSY 2012 General Psychology Sections 4041 and 1H85

INFO 2130 Introduction to Business Computing Spring 2013 Self-Paced Section 006

ACCT 5020 Accumulation / Analysis of Accounting Data Class Syllabus Spring 2015 Eight Week Format March 23 May 15, 2015

FORENSIC SCIENCE: BEYOND CRIME LAB CJUS 488 Online (Moodle): Fall, 2015

Entrepreneurship 490a Grand Challenges for Entrepreneurship

Course Description This course will change the way you think about data and its role in business.

Public Finance Syllabus for Fall 2015

MONTGOMERY COLLEGE Rockville Campus CA141 Introduction to Database Applications Computer Applications Department

Mass Communication Teaching (MMC 6930) Spring Semester 2015

CSC 234 Game Design M/W 5-7:20PM D207

UNIVERSITY OF NEVADA LAS VEGAS. BIOL Summer III 2007 Susan Meacham, Ph.D., R.D. Syllabus

Rutgers University, Department of Psychology Developmental Psychology Winter Office Hours Office Phone

MAC 1140 Reference # MWF 9:00 AM 9:50 AM Fall 2011 Rm. 3321

Class Participation and Homework:

4ECE 320 Signals and Systems II Department of Electrical and Computer Engineering George Mason University Fall, 2015

FNCE 3498: Accelerated Fundamentals of Finance Loyola Marymount University Spring 2015 Section 01: Tuesday & Thursday, 3:00pm-4:40pm, Room: Hilton 063

Math 103, College Algebra Spring 2016 Syllabus MWF Day Classes MWTh Day Classes

PSYC110 General Psychology (3 Units) Syllabus

CJ 4480 Digital Forensics II Syllabus - Term

COURSE INFORMATION. 3. You learn the course policies and follow them.

MAT Business Calculus Online TENTATIVE COURSE SYLLABUS Summer 2015

Introduction to Computer Programming Course Syllabus Fall 2012

Survey of Chemistry, CHM 1115, Syllabus

Instructor: Carlos E. Caicedo, Ph.D. Phone: (Office) Office: 215 Hinds Hall Office Hours: TBA

Transcription:

CMSC 15100: Introduction to Computer Science I The University of Chicago, Autumn 2015 Adam Shaw and Matthew Wachs http://www.classes.cs.uchicago.edu/archive/2015/fall/15100-1 Welcome! In CMSC 15100 (informally CS151 ), we introduce a selection of major computer science topics through instruction in computer programming and various analytical techniques. CS151 is designed for students intending to major or minor in the subject, although others are welcome. The specific goals of the course are these: to understand solving computational problems in terms of identifying, and, when necessary, designing, relevant abstractions, to process data structures in several ways, most importantly by the technique of structural recursion, to learn to recognize and exploit common computational patterns through code organization and higher-order programming, to learn to use simple and polymorphic types as a powerful approximation of correctness in computer programs, and to analyze the efficiency of certain algorithms. In pursuing these goals, students will become acquainted with a selection of classic data structures and algorithms. Broader, more technical treatments of these topics, in particular algorithm analysis, are presented in later undergraduate courses. We use the Racket programming language in our studies. Racket is a dialect of Scheme, a language with a long history in the field of computer science generally and college-level instruction specifically. This year, for the second time, we will use the Typed Racket variant of Racket, for reasons we will articulate during the quarter. Having completed this course, students will be able to use computer programming as a robust and efficient method for analytical problem solving and creative endeavors, and develop a sense of the relationship between computer programming and computer science. Students will discover, in future work, that the experience gained in this course applies to programming generally, in any programming language; that is, CS151 should not be thought of as a course in 1

programming Scheme. Furthermore, students will have gained experience with some best practices in the discipline. Piazza: Online Support Register with piazza. Piazza is an online question-and-answer system that we use for that purpose as well as distribution of course materials on occasion. You will receive an email about piazza registration, with instructions, at your uchicago email address at the start of the quarter, so make sure you check that email address by September 28. Instructors Adam Shaw, email: ams@cs.uchicago.edu, office: Ryerson 157. Matthew Wachs, email: mwachs@cs.uchicago.edu, office: Ryerson 175A. Graduate Teaching Assistants Charisee Chiw, Pramod Mudrakarta, Jiajun Shen, Liwen Zhang. You will interact with your TAs in labs, during office hours and through piazza, but you will not need to email them directly. Please see the next section. Contacting Us If you have questions about the course, and those questions are in a sense impersonal that is, they are about course material or course logistics we ask that you post those questions publicly on piazza, rather than contacting any of the staff members directly. This ensures you will receive the fastest, most consistent possible response from the staff. Since students usually have common questions, posting public questions is efficient for your classmates as well. As yet another advantage, it avoids duplication of work on the part of the staff. In cases where you have a question that is about your own personal situation and not relevant to the class as a whole, you may ask a private question on piazza, which is invisible to your classmates, or send email to your instructor directly. A few piazza rules: Do not post any more than a snippet of code to piazza. Any post that says Here s my hundred lines of code what s wrong with it? will be deleted immediately. Please do not post anonymously to piazza. Piazza posts are better, more thoughtfully written, and more courteous when the author is identified. We reserve the right to delete anonymous posts from piazza. Lectures There are three sections of CS151 this quarter, at the following times 2

and places. Section 1: MWF 9:30 10:20, Stuart 102, Adam Shaw. Section 2: MWF 11:30 12:20, Cummings 101, Adam Shaw. Section 3: MWF 1:30 2:20, Ryerson 251, Matthew Wachs. The first lecture is on Monday, September 28; the last is on Wednesday, December 2. Devices We do not allow the use of electronic devices during lectures. They are simply too distracting. This includes laptops, smartphones, tablets, and anything that beeps, blinks, records, locomotes, etc. The lone exception to this policy is that students whose handwriting issues necessitate their use of a device for note taking will be permitted to use a plain text editor on a laptop or tablet whose wireless capability is turned off. If you are such a student, let your instructor know. Lab Sessions Students must register for and attend lab sessions each week. Lab sessions are held in the Computer Science Instructional Laboratory (also known as the CSIL, read cecil ). The CSIL is located on the first floor of Crerar Library. Attendance at the lab session for which you are registered is mandatory. We offer twelve weekly lab sections at six different meeting times. If you need to switch your lab time, there will be a way to do so online early in the quarter; details to follow. You will work on one of the department s Macintosh or Linux computers (depending on the day) during your lab session. You must use the department s computer during lab and may not use your own laptop. The lab times are as follows: Tues 1:30pm 2:50pm; Tues 3pm 4:20pm; Tues 4:30pm 5:50pm; Wed 2:30pm 3:50pm; Wed 4:00pm 5:20pm; Wed 5:30pm 6:50pm. There will be no lab exercises during the week of Thanksgiving, and no lab exercises the last week (before reading period). Office Hours To be announced on the web once the quarter starts. In addition to the office hours we provide ourselves, the College Core Tutor Program normally employs computer science tutors Sunday through Thursday nights 1 from 7pm 11pm, starting in the second week of the quarter. 1 As of this writing, there will be no CS tutors on Thursday nights this quarter. 3

Schedule of Topics by Week (subject to change) Week Topics 1 numbers, booleans, expressions, functions 2 conditionals, structures, unions, types 3 local variables, inductive structures: trees and lists 4 natural numbers; parametric polymorphism, functions as data 5 representation; images, universes 6 higher-order programming, anonymous functions 7 mutual recursion; efficiency 8 binary search trees; sorting 9 game strategy; state, vectors, mutation 10 stateful sorting Optional Text How to Design Programs, Felleisen et al., ISBN 0-262-06218-6. Over the years and as our curriculum has evolved, we have departed from this text to such an extent that we no longer require you to buy a copy. Moreover, the full text of the book is available online at http://www.htdp.org free of charge. It is a useful reference and a good book in its own right, and, despite various differences with this course in its present form, has given our curriculum its basic shape. Software All the software we use in this course is available free of charge for all common platforms. We will mainly use DrRacket, available at http: //racket-lang.org, and subversion. Macintosh and Linux users very likely have subversion on their machines already. Windows users will need to download and install Cygwin, and will be able to include subversion in their Cygwin installations. We will provide detailed installation instructions for various platforms once the quarter starts. Grading Coursework is comprised of lab exercises (done at lab sessions, discussed above), homework assignments, projects, and exams. Each student s final grade will be computed according to the following formula: lab exercises 15%, homework 20%, project work 15%, exams 25% each. What precisely constitutes an A, B, etc. will be determined by the collective performance of the class. Homework There will be weekly homework assignments. These will be assigned on Monday or Tuesday (usually) and will be due the following Monday. Projects There will be a longer multipart project during the latter part of the term. The final part of this project will be due during exam week. Exams There will be two exams for all students that will meet outside of class. midterm exam: Monday, October 26, 7pm 9pm, and 4

final exam: Wednesday, December 2, 7pm 9pm. Please plan accordingly. Both exams will be held in Kent 107. Exam Accommodations If you are a student who has special exam-taking arrangements with Student Disabilities Services (SDS), you must contact SDS to arrange for a time, date and proctor for the exams in this course. We will do our part by delivering the exams to the SDS office as needed. If you do not have any arrangements with SDS but believe you should, please contact them directly (https://disabilities.uchicago.edu/) or talk to your college adviser to open the conversation. To be clear, we, your instructors, are not in a position to judge who needs what sort of special accommodations; we leave those judgments to the professionals. SDS, along with the college administration, makes these determinations, and we abide them. Therefore, although you may ask one of us about making an accommodation for an exam, we will simply refer to your adviser or SDS in such cases. If you have a conflict with an exam because of a personal event (dinner with friends, night at the theater, meeting with a study group, etc.), we expect you to make every effort to put the exam first and plan around the exam rather than the other way around. If your exam conflict is important and cannot be postponed or rescheduled, we will accommodate you as best we can. Late Work Deadlines in this course are rigid. Since you submit your work electronically, deadlines are enforced to the minute. Late work will not earn credit. However, to allow for whatever inevitable deadline-related difficulties arise for individuals throughout the quarter, we will drop the lowest scoring homework exercise from our final calculation. Please note that no project work will be dropped, and no labs: only one homework. (We will occasionally accept late work in the case of special circumstances, when those circumstances are extraordinary.) Academic Honesty In this course, as in all your courses, you must adhere to college-wide honesty guidelines as set forth at http://college.uchicago.edu/ policies-regulations/academic-integrity-student-conduct. The college s rules have the final say in all cases. Our own paraphrase is as follows: 1. Never copy work from any other source and submit it as your own. 2. Never allow your work to be copied. 3. Never submit work identical to another student s. 4. Document all collaboration. 5

5. Cite your sources. We are serious about enforcing academic honesty. If you break any of these rules, you will face tough consequences. Please note that sharing your work publicly (such as posting it to the web) definitely breaks the second rule. With respect to the third rule, you may discuss the general strategy of how to solve a particular problem with another student (in which case, you must document it per the fourth rule), but you may not share your work directly, and when it comes time to sit down and start typing, you must do the work by yourself. If you ever have any questions or concerns about honesty issues, raise them with your instructor, early. Advice Writing code that does what it is supposed to do can be joyful, even exhilarating. By contrast, fighting for hours with broken code is misery. We would like you to experience more of the former and less of the latter. Work methodically. Start your work well ahead of time. Beyond a certain point, it is not profitable to be stumped. If you have made no progress in some nontrivial chunk of time, say, one hour, it is time to stop and change your approach. Use one of our many support mechanisms to get some assistance. We will help you get going again when you are stuck. 2015 Sept 25 7:00pm. This is revision 0 of this document. 6