Course Syllabus

CSCI 1133: Introduction to Computing and Programming Concepts

Basic Course Information

Lecture: MWF 10:10-11:00am, Fraser Hall 102

Labs: Throughout the week, depending on your registered section.

Final Exam: No final exam during finals week, but there will be cumulative testing throughout the course during regularly-scheduled class time.

Instructor Information: Lana Yarosh, Ph.D. (just call me "Lana"). Contact me by email at lana@umn.edu and/or by coming to regularly posted office hours.

Graduate TA Information: Matheus Araujo, Ph.D. student. Email: arauj021@umn.edu. Matheus' office hours:  8:30 am to 10:30 am on Tuesdays, at room 2-246 at Keller Hall.

------------------------------------------------------------------------------------------

Books, Software, and Supplies Required for Class:

  • "Programming in Python 3" ZyBook (may be purchased through University of Minnesota book store or online; more ZyBook instructions here)
  • iClicker Cloud account and an iClicker 2 remote (may be purchased at the University of Minnesota book store; more iClicker instructions here
  • Python 3, IDLE, and git (on CSE lab machines, but you can also load on your own computer)

------------------------------------------------------------------------------------------

Course Description and Learning Outcomes*:

Throughout your career, you will acquire a broad range of skills and knowledge in computing. This class is the cornerstone for computer science majors, an important differentiating skill for other majors,  and a prerequisite for most other computer science courses. My goal is to help you understand how computing can be applied to problem-solving in any discipline, to introduce you to core concepts in computer science (e.g., algorithms, data structures, abstractions, objects), and to make these ideas concrete by learning to program in Python 3. This is an introductory course --- while many of students in this section have programmed before, these experiences are so diverse that I do not assume any prior knowledge of programming.

After completing this course, you will be able to do the following:

  • Computationally think and use approaches commonly used by computer scientists to solve problems.
  • Problem solve real world problems and use different fundamental problem solving approaches (e.g. iteration, recursion, exhaustive enumeration.)  Identify key characteristics of problems that indicate possible solution approaches. 
  • Use data expressions, conditionals and loops, data types and structures.
  • Use equality, relational, and boolean operators and expressions.
  • Understand the OOP paradigm and concepts and be able to explain the foundations of OOP.  Write classes and create objects using this paradigm.  Use data representation and abstract data types and fundamental data types and structures (e.g. primitives, lists, dictionaries, data frames, strings.)
  • Understand the concepts and properties of different types of algorithms.
  • Apply fundamental design concepts and principles (e.g. abstraction, program decomposition, encapsulation and information hiding, separation of behavior and implementation.)
  • Use pair programming and small group development skills
  • Use professional skills learned during class such as writing professionally, being held accountable for class commitments, time management, how to use programming tools (e.g. Git, integrated development environment (IDE), debuggers)

I look forward to helping you develop these skills!

*Adapted from Dr. Shana Waters' syllabus

------------------------------------------------------------------------------------------

Expectations in this Course:

Time Commitment: This is a FOUR credit course. This means that an average student will need to put in 12 hours of work a week in order to receive a C in the course. To get a higher grade, expect to put in more time or work more efficiently.

Lecture Attendance and Participation: Lecture attendance and active participation are required and will be tracked using your iClicker remotes. Absences or problems must be discussed with the instructor as soon as possible to avoid getting penalized.

Lab Attendance and Participation: Most of the learning in this class happens by doing and much of this doing happens in the labs. Thus, lab attendance and active participation are required and will be tracked and graded by your lab TAs. You may miss one lab without any penalty; you will lose credit if you miss a second lab (i.e., that's about 0.5 percent of your final grade in the course); missing three labs is an automatic failure of the course.

Homework: Homework will be posted on Wednesday and you will have a week to complete the assignment. Start early so that you have opportunity to get help from the TAs if you're stuck. Homework submissions must follow the instructions on the first page of each assignment to receive a grade. Submit in-progress portions of the assignment frequently. A legitimate absence on the day of or day before the due date will not allow you to submit a late assignment, since you've had an entire week to do the work.

Email and Canvas: I and the TAs will communicate with you via email and this Canvas site. You are responsible for checking this site and your email at least 3 times a week.

------------------------------------------------------------------------------------------

Grade Components:

Your final grade is based on the following items and weights:

  • Weekly Homework Programming Assignments (turned in via git): 48%
  • Two Cumulative Midterm Exams (given during lecture; done on paper, no computer): 30% (15% each)
  • Lecture Attendance and Participation (as tracked with your iClicker): 10%
  • Lab Attendance and Participation (tracked by undergraduate TAs): 6% 
  • ZyBook Assignments (as tracked by the ZyBooks system): 6%

Note that additional factors may cause a student to fail a course, even if their cumulative grade constitutes a passing score. The most common reasons are missing more than two labs (third missed lab is an automatic fail) and committing academic dishonesty. It can be tempting to copy code you find online or get a friend's help. We use software that is very good at detecting code plagiarism, so don't give into the temptation!

Both your ZyBooks and your iClicker grades will only update in the Canvas gradebook periodically (i.e., ~4 times during the semester). The grade that you will be able to see on your ZyBooks assignments and on the iClicker Cloud online accounts represents your most up-to-date grade for those categories.

The grading in this course is on an absolute scale.  This means that the performance of others in the class will not affect your grade.  Your percentage will earn you the following grade:

  • A     [93% - 100%
  • A-    [90% - 93%)
  • B+   [87% - 90%)
  • B     [83% - 87%)
  • B-    [80% - 83%)
  • C+   [77% - 80%)
  • C     [73% - 77%)
  • C-    [70% - 73%)
  • D+   [67% - 70%)
  • D     [60% - 67%)
  • F      < 60%

For S/N grading, a satisfactory grade (S) requires a weighted score of 70 or above.

------------------------------------------------------------------------------------------

Standard Policies:

This class relies on standard university policies. It's your responsibility to familiarize yourself with:

Academic Freedom and Responsibility*: Academic freedom is a cornerstone of the University. Within the scope and content of the course as defined by the instructor, it includes the freedom to discuss relevant matters in the classroom. Along with this freedom comes responsibility. Students are encouraged to develop the capacity for critical judgment and to engage in a sustained and independent search for truth. Students are free to take reasoned exception to the views offered in any course of study and to reserve judgment about matters of opinion, but they are responsible for learning the content of any course of study for which they are enrolled. Reports of concerns about academic freedom are taken seriously, and there are individuals and offices available for help. Contact the instructor, the Department Chair, your adviser, the associate dean of the college, or the Vice Provost for Faculty and Academic Affairs in the Office of the Provost.

* Language adapted from the American Association of University Professors "Joint Statement on Rights and Freedoms of Students".

Course Summary:

Date Details Due