Course SyllabusCS 1510 Introduction to Computing
|
Instructor: Mark Jacobson
- Offices: 307 ITTC and 338A WRT
- Phones: 307 ITTC: 273-???? 338A Wright: 273-7693
- E-Mail: jacobson@cs.uni.edu
- WWW: http://www.cs.uni.edu/~jacobson
- Click here for my office hours and schedule
Note: TO BE ANNOUNCED AND POSTED HERE ON TUESDAY MORNING
- Teaching and lab assistant: Logan Radloff
Resources:
- The Practice of Computing Using Python, 2nd edition, by William Punch and Richard Enbody. ISBN-13: 978-0132805575.
- Electronic resources:
- The course web page, http://www.cs.uni.edu/~jacobson/1510
Course Goals
This course serves as the first course for Computer Science majors. It is also appropriate for non-majors. We do not assume that students have any experience with computer science or computer programming.
This course has two primary goals. First, as its title indicates, the course introduces you to the study of computer science. We hope that you will leave this course with a sense of computer science is and what computer scientists do. We also hope that you leave with a sense of just how exciting and intellectually powerful the discipline is.
Second, the course aims to teach a bit about how to write computer programs. Programming is the way that computer scientists express their ideas and implement solutions to problems. Even if you never "program for a living", as a CS grad you will need to know how to program in order to appreciate the ideas you learn and to work in the industry. We hope that you leave this course with a sense of what programs can do and of how you can use programs to express ideas.
Our primary theme for reaching these goals this semester is data manipulation. We will look at the sort of problems people encounter in their personal and professional lives and consider how we can use computing to solve those problems. These problems will bring us into contact with many of the fundamental ideas of computer science: representing and transforming data; design, analysis, and experimentation; and the thrill of solving problems in any domain of human thought.
By the end of the term, you should feel comfortable:
- analyzing problems and developing solutions for them
- thinking about problems in terms of representing and transforming data
- writing basic programs that manipulate text, numbers, and other data
- working with some of the basic tools of computing, including abstraction and elementary data structures
Course Requirements
- Class sessions. Our class meetings will consist of a mixture of lecture, discussion, and in-class exercises. We will also spend time preparing for and reviewing lab sessions. Much of our lecture and discussion material will go beyond what you read in the suggested materials, so attendance is essential. I expect you to read assigned topics prior to the class session and to participate actively in class.
- Lab sessions. There are fourteen scheduled laboratory sessions, beginning the first week of class. Attendance of lab sessions is required; you will receive credit for a lab only if you attend. During each lab session, you will do exercises that complement the topics being covered in class, often that same week.
- Programming assignments. Over the course of the term, you will complete approximately twelve programming assignments. These assignments will involve applying techniques you learn in class and will occasionally involve extending or modifying code originally developed in class or a lab session. Some assignments will involve other sorts of writing and problem solving.
- Exams. Finally, we will have two midterm examinations during the semester and a comprehensive final exam at the end. The exams will be "closed book", though sample code will usually accompany the exam as a part of the questions. The midterm exams will not necessarily last 75 minutes. We might use the first 15 to 20 minutes of class to review recent material or answer questions or prepare for the next lab.
Course Evaluation
You will earn your grade based on your performance on programming assignments, lab exercises, exams, and the final examination. I assign final grades using the following distribution:
Item Number Weight Lab exercises 14 15% Programs ~ 12 35% Midterm exams 2 30% Final exam 1 20%
Grades will be assigned using the following scale:
- 90% or above for an A,
- 80% or above for a B,
- 70% or above for a C,
- 60% or above for a D, and
- below 60% for an F.
Course Policies
- I try to accommodate student needs whenever possible, but I can only do so if I know about them. If you ever have to make alternate arrangements for a class session, an assignment, an examination, or even a lab exercise, please contact me in advance. The safest way to make such arrangements is by notifying me via e-mail or phone of your circumstances and of how I can reach you.
- I have regularly-scheduled office hours in both 307 ITTC and in 338A WRT (Wright Hall). You are welcome to stop any time, but it is extremely helpful if you email me first or mention after lab or lecture that you would like to make an appointment. I sometimes have appointments, so if you drop in when someone has a prior appointment at that time, you might have to wait. So its helpful when we can confirm a time to meet and which office to meet in. Appointments outside of regularly scheduled office hours are always possible too.
- All assignments are due at their assigned date and time. In order to receive partial credit, always submit your best effort at that time. Late work will not be accepted.
- I encourage you to discuss programming assignments, as a way to help you understand the problems better and to encounter different points of view about possible solutions. However, unless the assignment explicitly states otherwise, any work you submit must be your own. Discuss ideas, but write your own answers, including all code. You should acknowledge any collaboration explicitly in the work you submit. Undocumented or unacceptable collaboration is considered a form of academic dishonesty.
- UNI has an established policy of academic integrity. I will not tolerate plagiarism or any other form of academic dishonesty in this course. See the UNI catalog for details on the university's policy.
Computing Environment
We will use computing resources in this course for two purposes: to communicate with one another and to implement programs, in particular your compiler.
Most course materials will be made available on the course web page during the semester. I also frequently send e-mail to the entire class to inform you of breaking news and to answer common questions or to extend the due date or give hints/suggestions for an assignment that turned out to have some unforseen challenges. Be sure to check your e-mail and the web page often!
Our laboratory sessions will be held in 112 Wright for section 03 and in 339 Wright for section 04. 110 WRT contains 28 or so computers that boot to Linux and Windows. We will be using Windows 7 as our primary operating system this semester. 339 WRT has the same setup on about 16 to 18 computers.
You may work in 112 Wright outside of lab sessions as well. However, other courses are scheduled there occasionally throughout the week, in particular on Tuesday and Thursday mornings. You may also in 339 Wright, a CS lab that is open for use during the day, and 335 ITTC, a lounge available to all CS students.
You will do your lab exercises and programming assignments in the Python programming language, using standard tools that are distributed with the language.
You may choose to do programming assignments on any platform you like, including Windows, Mac, and Linux. The Python compiler and tools are also available for free on all of these platforms. (My platforms for the course are Mac OS X 10.9 and the CHAS Linux system for students.)
You will submit programming assignments using a simple web-based system developed by Prof. Schafer. We will give you more details as you need them.
Tentative Schedule
The following schedule gives a rough sketch of the topics we will cover and the distinguished dates this semester. The exam dates are tentative. If I decide to re-schedule a exam, I will notify you at least one week prior to the scheduled date.
Week Dates Topics Special Events 1 08/24-08/28 Introduction to course . 2 08/31-09/04 Expressions and programs . 3 09/07-09/11 Flow of control Labor Day 4 09/14-09/18 Flow of control . 5 09/21-09/25 Growing programs . 6 09/28-10/02 String processing . 7 10/05-10/09 TBA Exam 1 (Tue) 8 10/12-10/16 TBA . 9 10/19-10/23 TBA . 10 10/26-10/30 TBA . 11 11/02-11/06 TBA . 12 11/09-11/13 TBA . 13 11/16-11/20 TBA Exam 2 (Thu) . 11/24-11/28 . Thanksgiving 14 11/30-12/04 TBA . 15 12/07-12/11 TBA; course wrap-up .
The FINAL EXAM is Wednesday, December 16, from 8:00- 9:50 a.m.
Mark Jacobson .... jacobson@cs.uni.edu .... August 24, 2015