CSci 1133H: Syllabus, Fall 2020
- Lectures:
- Monday, Wed, Friday 2:30-3:20
- Lab:
- Wed 3:35-5:15
- Instructor:
- Dr. Maria Gini
(gini at umn.edu)
office hours: TBA - Teaching Assistants:
- TBA office hours: TBA
Instruction modalities
The instruction will be remote. Specifically, the lectures will be recorded in advance and posted in canvas, the labs will be done remotely but in a synchronous way, with support from the TAs and with work in pairs or in small groups, the class times will be used for different activities, including to answer questions, discuss problems, and work together on in class exercises. You need to plan on attending the activities done during the lecture times. More details will be available lateTextbook
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 UMNCSCI1133HGiniFall2020
- Subscribe
- 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.
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.
Grading
Grading is on an absolute scale. This means that the performance of others in the class will not affect your grade. The grade cutoffs are as follows based on the total weighted score for the courss: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 |
Work Load
- 6 homeworks, due every 2 weeks on Wednesday, at 5% each = 30% Homeworks have to be done individually.
- 13 labs at 2% each = 26% Points given for completing the required part of the lab. Extra work encouraged but not required. Some labs will have extra work for .5% extra credit. In the labs, students will be monitored and helped online by the TAs. Students will work in groups of 2.
- 14 written exercises, one per week, at 1% each = 14% Point given for doing the exercise, not for correctness. This will be done during class time once a week, but will also be available online with a 24 hours time window to submit for students who cannot do it during class time.
- Participation points for doing assigned zybook exercises = 8%
- 1 practice short oral exam = 2% The exam will have a question for 1% extra credit
- 2 oral exams at 10% each = 20% Each exam will have a question for 1% extra credit
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.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 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 can always work with other students. 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 and decide your score.
- 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.
Written exercises
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 14 short written exercises to be done individually or with other students during the semester at the class time. Each of them will be worth 1% of the final score.zybook questions
You will get participation points for doing assigned zybook exercises. They have to be done in the book.Exams
The exams will be oral. Details wil be provided later.Class Schedule
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: © 2020 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.