CSci 1133H - Syllabus
Fall 2018
- Lectures:
- Monday, Wed, Friday 2:30-3:20 in Tate Hall 110
- Lab:
- Wed 3:35-5:15 in Keller 1-262
- Instructor:
- Dr. Maria Gini
(gini at umn.edu)
office hours: Monday and Tuesday 3:30 -4:30 and by appointment in Keller 4-225C, (612) 625-5582.
Address: 4-192 Keller, 200 Union St. SE, Mpls, MN 55455 - Teaching Assistants:
- Carter Blum (blumx116@umn.edu)
office hours: Thursday 1:15-2:15 in Keller 2-209
Julia Garbuz (garbu007@umn.edu)
office hours: Mon 10:00-11:00 Keller Atrium table 1 and Fri 10:00-11:00 Keller Atrium table 4 - Textbook:
-
Introduction to Computation and Programming Using Python by
John V. Guttag,
2nd edition,
ISBN: 9780262529624
- If you need reference material on Python, here are some choices:
-
- The official page of the Python Software Foundation https://www.python.org/. A good place for updates, installation guides, complete documentation of the language, etc. Make sure you look at Python 3.
- A comprehensive Python tutorial https://docs.python.org/3/tutorial/index.html
- Another simple Hands-on Python Tutorial. Simple, with many examples.
- Google Python class, a dense but clear introduction to many features of the language https://developers.google.com/edu/python/?hl=en
- If you like online interactive tutorials, with a python interpreter running in the web page where you can type instructions and have them executed, try http://www.learnpython.org/
- A complete online course on Python, Starts easy, goes quite advanced.
- For a slower introduction to python done through exercises try https://learnpythonthehardway.org/python3/. Only some of the parts are free.
All class material will be posted on the class page at
http://www.cselabs.umn.edu/classes/Fall-2018/csci1133H/.
We will use canvas to submit assignments, for grades, and for the class forum.
Course Description
CSCI 1133 offers an introduction to the fundamental principles of Computer Science and programming with an emphasis on problem solving and representing/computing with data. The course is the first required course for computer science majors, and is a prerequisite for most of the higher level computer science courses. We will use the programming language Python to implement solutions to a broad spectrum of interesting and motivating computational problems. Specifically, the course will cover:- The concept and properties of algorithms.
- Problem solving and the role of abstraction and modularity in the problem solving process.
- Imperative and object-oriented programming paradigms.
- Fundamental design concepts and principles (abstraction, program decomposition, encapsulation and information hiding, separation of behavior and implementation, etc.).
- Fundamental problem solving approaches (e.g., recursion, iteration, bisection, exhaustive enumeration).
- Fundamental data types and structures (e.g., numbers, strings, lists, associative structures).
- Fundamental search methods (e.g., linear search, binary search).
- Development and representation of abstract data types using an object-oriented model.
Prerequisites
CSCI 1133 does not require or assume any previous programming knowledge. Prior exposure to a first semester Calculus course (or concurrent registration) is a formal prerequisite. Some material from Calculus I (differentiating polynomials and the like) may be employed in lectures and lab assignments; moreover, the mathematical and logical reasoning skills developed in Calculus I will play an important role in the class. It is important to have the mathematical maturity to both reason with abstractions and generalize abstract concepts from specific problem statements.What you should expect to learn from this course
Upon successful completion of the course you should be able to:- Understand the notion of a computational process and express computational processes using Python programs.
- Employ effective strategies for the solution of computational problems using appropriate methods and data representations.
- Select appropriate data structures and algorithms to solve a variety of problems using imperative and object-oriented programming techniques.
- Understand the basic principles of program design, using abstractions and problem decomposition to hide implementation details and manage the intellectual complexity of the problem.
- Identify, explain, and use fundamental data types introduced in this class, including numbers, strings, lists, associative structures, Abstract Data Types, etc.
- Trace the execution of a variety of code segments and explain their computations.
- Test and debug programs to be sure they are producing correct results.
- Understand fundamental computer science concepts such as efficiency and computational complexity.
- Understand what an abstract data type is and how to create new abstract data types with loose coupling between components/behaviors.
- Understand recursion, solve problems recursively, and understand the relationship between recursion and iteration.
Work Load and Grading
- Participation: There will be an in-class exercise every week when there is no exam. Each exercise will count for 1% of the grade (total = 12%).
- Labs: Attendance to the lab each week will give 2% credit (total = 28%). Lab work is done in pairs. To pass the class you need to attend at least 12 of the 14 labs.
- Homeworks: 5 written homeworks, each 3% of the grade (total = 15%). Homeworks have to be done individually.
- Exams (open book and notes):
There will be 3 in class midterm exams, each will count for 13% of
the grade (total = 39%).
The week before each midterm there will be an in class short quiz, which will count for 2% of the grade (total = 6%).
A | 93 .. 100 | A- | 90 .. < 93 | ||
---|---|---|---|---|---|
B+ | 87 .. < 90 | B | 83 .. < 87 | B- | 80 .. < 87 |
C+ | 75 .. < 80 | C | 70 .. < 75 | C- | 65 .. < 70 |
D+ | 60 .. < 65 | D | 55 .. < 60 | F | < 55 |
Class Attendance
Attending class is very important to learn the material, to clarify any misunderstanding, and to keep up with studying. To encourage attendance there will be 12 short in class activities to be done individually or with other students during the semester. Each of them will be worth 1% of the final score. There will be no makeup for missing in class exercises.Labs
In the weekly labs, you will apply concepts covered in the lectures and in the textbook by creating working programs that solve a variety of problems. The general format for the labs is as follows:- Typically two students work together on the lab assignment.
- Make sure you arrive to the lab on time and stay until the end, unless you get all the problems done. The work for the labs can be done only in the lab. No makeup for missing labs unless you have a University-excused absence and you notify us in advance.
- Each lab is broken down into several steps that are checked by a TA as they are completed.
- The primary purpose of the labs is to help you learn by doing. The TAs are there to help you, and you always work in pairs. To get full credit you need to answer the problems for the lab correctly. If you do not get them all done, the TAs will take into account if you worked diligently.
- Each lab will have challenge problems that will give some extra credit. Be careful. You'll earn extra credit only if you have completed the lab and if you complete at least 12 labs out of 14.
Homeworks
Homeworks will be used to help prepare for exams or to solve more complex problems. Homeworks will have to be done individually, no collaboration allowed. They will enable you to assess your level of knowledge of the material. Programs submitted for grading must run on the University computers because that is where they will be run and graded.Class Schedule
Here is the preliminary schedule. Things will likely change during the semester, but the due dates for homeworks and the dates of the exams will not change. You are expected to read the required sections before coming to class.
Week | Dates | Topics | Chapter | Hws due/Exams | |
---|---|---|---|---|---|
1 | Sept 5-7 | Overview, Intro | 1 and 2 | ||
2 | Sep 10-14 | functions | 4.1 and 4.2 | ||
3 | Sep 17-21 | loops | 3 | 1st Hw Wed Sept 19 | |
4 | Sept 24-28 | recursion | 4 | 1st Quiz, Fri Sep 28 | |
5 | Oct 1-5 | 1st midterm, Fri Oct 5 | |||
6 | Oct 8-12 | data structures | 5 | 2nd Hw Wed Oct 10 | |
7 | Oct 15-19 | data structures | 5 | ||
8 | Oct 22-26 | files | 4.6 and 6 | 3rd Hw Wed Oct 24 -- postponed to Oct 31 | |
9 | Oct 29-Nov 2 | objects | 8 | 2nd Quiz, Fri Nov 2 | |
10 | Nov 5-9 | objects | 8 | 2nd Midterm, Fri Nov 9 | |
11 | Nov 12-16 | image processing | 4th Hw Wed Nov 14 | ||
12 | Nov 19-21 | deep learning | |||
13 | Nov 26-30 | deep learning | 5th Hw Wed Nov 28 | ||
14 | Dec 3-7 | search | 10 | 3rd Quiz, Fri Dec 7 | |
15 | Dec 10-12 | 3rd midterm, Wed Dec 12 |
Incompletes
Incompletes will be given only in rare instances when an unforeseeable event causes a student who has completed all the coursework to date to be unable to complete a small portion of the work (typically the final assignment or exam). Incompletes will not be awarded for foreseeable events including a heavy course load or a poorer-than-expected performance. Verifiable documentation must be provided for the incomplete to be granted, and arrangements for the incomplete should be made as soon as such an event is apparent.Academic Integrity
All work submitted for the class must represent individual effort unless group work is explicitly allowed. You are free to discuss course material with classmates, TAs, and professor, but you should never misrepresent someone else's work as your own.It is your responsibility to protect your work from unauthorized access. Sharing your CSE lab account and/or password is a violation of the acceptable use policy for CSE Labs accounts and will result in account termination.
Collaboration on exams, copying homework solutions from classmates, or copying solutions from the web is cheating and grounds for failing the course.
Any student caught cheating will be subject to disciplinary actions, following University policies (see http://www.oscai.umn.edu/).
Disability Accommodations
The University of Minnesota views disability as an important aspect of diversity, and is committed to providing equitable access to learning opportunities for all students. The Disability Resource Center (DRC) is the campus office that collaborates with students who have disabilities to provide and/or arrange reasonable accommodations. Students who have, or think they may have, a disability (e.g. mental health, attentional, learning, vision, hearing, physical or systemic), are encouraged to contact DRC to arrange a confidential discussion at 612-626-1333 or email drc@umn.edu. Additional information is available at https://diversity.umn.edu/disability.Student Mental Health and Stress Management
As a student you may experience a range of issues that can cause barriers to learning, such as strained relationships, increased anxiety, alcohol/drug problems, feeling down, difficulty concentrating, etc. These mental health concerns or stressful events may lead to diminished academic performance or reduce a student's ability to participate in daily activities. University of Minnesota services are available to assist you with addressing these and other concerns you may be experiencing. You can access the broad range of confidential mental health services available on campus via http://www.mentalhealth.umn.edu/Sexual Harassment
Sexual harassment means unwelcome sexual advances, requests for sexual favors, and/or other verbal or physical conduct of a sexual nature. Such conduct has the purpose or effect of unreasonably interfering with an individual's work or academic performance or creating an intimidating, hostile, or offensive working or academic environment in any University activity or program. Such behavior is not acceptable in the University setting. For additional information, please consult Board of Regents Policy: http://regents.umn.edu/sites/default/files/policies/SexHarassment.pdf. The following link provides information on how to report Sexual Harrassment, Sexual Assault, Relationship Violence, or Stalking: http://oscai.umn.edu/report-incidents/reporting-sexual-assault. Copyright: © 2018 by the Regents of the University of MinnesotaDepartment of Computer Science and Engineering. All rights reserved.
Comments to: Maria Gini
Changes and corrections are in red.