CSci 1133H: Syllabus, Fall 2019
- Lectures:
- Monday, Wed, Friday 2:30-3:20 in Amundson 240
- Lab:
- Wed 3:35-5:15 in Keller 1-262
- Instructor:
- Dr. Maria Gini
(gini at umn.edu)
office hours: Tuesday 9:30-10:30 and Friday 11:00-12:00 and by appointment in Shepherd 245, (612) 625-5582. - Teaching Assistants:
- Andrea Walker (walk0798@umn.edu)
office hours: Tuesady 3:30-4:30
Tyler Wendland (wendl155@umn.edu)
office hours: Monday 11:00-12:00 and Thursday 11:00-12:00
both at Keller Atrium Table 2
- Textbook: we will use an online textbook from zyBook. To get to the book,
-
- Sign in or create an account at learn.zybooks.com
- Enter zyBook code UMNCSCI1133HGiniFall2019
- Subscribe
- 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 available on canvas and also be posted on the class page at http://www.cselabs.umn.edu/classes/Fall-2019/csci1133H/.
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%).
There will be small assignments from the textbook to be done online (total = 4%) - 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 two in class midterm exams, each will count for 10% of
the grade, and a final exam, which will count 15% (total = 35%).
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 4-6 | variables, expressions | 1, 2 | ||
2 | Sep 9-11-13 | loops, strings | 5.1, 3.1 | ||
3 | Sep 16-18-20 | lists, for loops | 3.2, 5.5, 5.6 | ||
4 | Sept 23-25-27 | functions | 6 | 1st Hw due Fri Sept 27 | |
5 | Sep 30-Oct 2-4 | 1st Quiz, Fri Oct 4 | |||
6 | Oct 7-9-11 | lists | 8.1-8.8 | 1st Midterm, Fri Oct 11 | |
7 | Oct 14-16-18 | dictionaries | 3.4, 8.12-8.15 | 2nd Hw due Fri Oct 18 | |
8 | Oct 21-23-25 | recursion | 14 | ||
9 | Oct 28-30 Nov 1 | classes | 9 | 3rd Hw due Fri Nov 1 | |
10 | Nov 4-6-8 | exceptions | 10 | 2nd Quiz, Fri Nov 8 | |
11 | Nov 11-13-15 | inheritance | 13 | 2nd Midterm, Fri Nov 15 | |
12 | Nov 18-20-22 | files | 12 | 4th Hw due Fri Nov 22 | |
13 | Nov 25-27 | plotting | 15 | ||
14 | Dec 2-4-6 | numpy | 15 | 5th Hw due Fri Dec 6 | |
15 | Dec 9-11 | search/sort | 16 | 3rd Quiz, Mon Dec 9 | |
Monday Dec 16 | Final exam, 1:30 to 3:30 pm |
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 be done individually 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: © 2019 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.