Syllabus for CSci 1302, Spring 2014
This is the course syllabus for Nic McPhee's Spring 2014 Foundations of Computer Science (CSci 1302) course at the University of Minnesota, Morris
. For additional information (e.g., events and assignments) see the course schedule
This is a 4 credit course which meets MWF 9:15-10:20, in Sci 1030. There are no pre-requisite(s) for this course, although parts of it will be better motivated if you've had at least a little
experience with programming, and it's crucial
that you feel fairly comfortable with basic algebra and symbol manipulation.
The catalog description for the course:
Basic proof techniques, propositional and predicate logic, induction and invariants, program correctness proofs, simple Big-Oh analysis of algorithms, set theory, introductory graph theory, and basic summations.
In summary, this course provides an introduction to discrete mathematics and other tools necessary to more formally understanding the meaning, correctness, and performance of algorithms. In practice most of the course will focus on ways of mathematically formalizing concepts that are crucial in computing, with special emphasis on logic and proofs. In key ways, this is the material that is crucial for moving from computing (and especially programming) as a craft to computing as a science
Course goals and learning objectives
Key goals for this course include:
- An ability to translate between natural language statements and formal logical expressions and back again.
- Experience with a variety of proof styles.
- An understanding of the rules of propositional logic.
- An ability to transform and simplify propositional expressions.
- An ability to transform and simplify logical tests in computer programs.
- An understanding of the rules of quantification and predicate logic.
- An ability to transform and simplify quantifiers and predicate logic expressions.
- An ability to transform and simplify quantified expressions in computer programs.
- An understanding of the basic concepts of algorithm efficiency (big-oh).
- An understanding of the basic rules of sets, and the relationship between set theory and logic.
- Experience with mathematical induction and applications to programs on recursive structures like lists.
- Experience in proving the correctness of simple imperative programs, including the use of loop invariants.
- An introduction to basic set theory.
- An introduction to the concept of graphs, and applications to computing.
- Experience applying these ideas in practical contexts where, for example, correctness or runtime performance are not obvious.
My office hours for Fall, 2015, are:
- Monday, 3:30-5pm
- Wednesday, 10:30-11:30am
- Friday, 11:30am-12:30pm
I'll typically start my office hours in my office (Sci 1315), but I may well move to a lab if, for example, a group has a question about a project they're working on. The lab I'd be most likely to go to is:
- The Computer Science labs (Sci 2610, 2630, and 2650)
If I leave the office during office hours I'll try to leave a note on my door telling you where I am, but you should always feel free to check the labs if you're looking for me.
Those times almost certainly won't work for everyone. You're always welcome to just drop by (see my complete schedule
), and I'm happy to make appointments anytime I'm free. You may also find my contact info
If these times work very badly for you (e.g., you have class conflicts all of these hours) then please let me know. If it turns out that a lot of folks have major conflicts then I'll want to reconsider my choices.
| Nic McPhee's contact info
|| mcphee AT morris DOT umn DOT edu
|| This is the preferred method of contact, but be warned that I get a lot of e-mail and bits get dropped now and then. Phone or IM is often better if it's critical or you need immediate feedback.
|| This is my "official" University web page, which consists primarily of links to my course web pages.
|| Same address as my e-mail above.
|| My name as a WikiWord, i.e., "Nic McPhee" without the space
|| Make sure you identify yourself if your Twitter username doesn't obviously relate to the name on my course list
|| Sci 1315
|| Downstairs at the east end of the Science office wing
| Office phone
|| I don't have voice mail set up, so it'll just ring forever if I'm not there.
| Division office
|| They'll be happy to take a message, but phone, IM, or e-mail is better.
|| I don't get faxes very often, so you should probably warn me (e.g., via e-mail) so I'll make a point to check for a fax.
Division of Science and Mathematics
University of Minnesota, Morris
600 E. 4th Street
Morris, MN 56267-2132
I use the U's Google calendar
to manage my calendar. Google may be the Evil Empire of the next decade, but they make a fine on-line calendar tool. If you're using Google calendar, feel free to use that to invite me to events/appointments.
Texts and other materials
This course has one required text:
- A logical approach to discrete math
- By David Gries and Fred Schneider
As well as a tentative initial schedule
, I will also maintain a set of on-line lecture notes
and the the Moodle site for this course
has things like specific assignments and additional notes.
This is a very important, but often very challenging course. Most of you will have come from an intro programming course like CSci 1301 or be concurrently taking an intro programming course like CSci 1201, and this will be totally different from those. While those courses are largely about our interactions with computers, this course is about our interactions with the mathematics that underpins computing. As a result it will be a very conceptual course, and almost entirely pen and paper rather than "on the computer".
My plan is to use much of the class time for Q&A, examples, and group work; I do not intend to repeat the bulk of the book in lecture. This means that you need to read the book carefully, slowly, and in advance.
The book is dense and complex, however, so that's not always going to be easy. I strongly recommend that you start early, do examples, and note down questions as they come up! As well as traditional office hours, the TAs and I will also have various evening sessions where we'll be available to help work through examples and questions. Please do ask questions if you are ever confused or need a hand.
When I list one or more exercises in the "Learning goals" for a week on the the Moodle site for this course
, these are all exercises that you should be comfortable doing if asked. They could show up on WDYKs, problem sets, exams, or as questions or examples in class. You should be agressive and do as many of these as you find helpful. Don't just do the minimum set to get by, as that will hurt later in the semester. I might recommend that you get a 3-ring binder or similar to keep track of your work and start each new theorem on a new sheet. That way you can keep related material together, like multiple proofs of the same theorem that you or we come up with at different times during the semester.
Course work and grading
We will have a combination of what-do-you-knows (ungraded "quizzes" just to see where everyone is), problem sets (combination of "math" problems and at least a few "programming" problems), two exams (probably in-class), and a final (also probably in-class). The course points will be distributed as:
- Problem sets: 40%
- WDYKs: 10%
- Exams: 15% each, so 30% total
- Final: 20%
The first mid-term exams will be on Friday, 21 Feb 2014. The second will be on Friday, 11 Apr 2014. The final will be during the scheduled finals period, 1:30-3:30pm, Monday, 5 May 2014.
The what-do-you-knows (WDYKs)
are ungraded "quizzes" to see how everyone's doing. You will
get points for being present and making an effort, but your effort doesn't need to be correct to get the points. It's OK to simply say "Not a clue", but it would be better to at least take a stab at the problem so we can get a better sense of where people are. You get one "free" missed WDYK during the semester. The schedule of WDYKs is on the course schedule and on Moodle; let me know ASAP if you'll need to miss one.
On homeworks you're are allowed, and even encouraged, to work in groups as long as each person turns in their own work. It's obviously crucial that you understand whatever solutions are arrived at by the group so that you can be successful on things like exams.
You may use five grace days
however you would like throughout the term. This means you may turn in one assignment five "school days" late, or five assignments one "school day" late, or some other combination, with no penalty. Here a "school day" is a day that classes, though not necessarily this one, meet on campus - e.g. no weekends or holidays will count against you. I will try to grade your assignment quickly, but you might not get your grade with everyone else. Once you're out of grace days, you may turn in late work, but there is no guarantee that it will be graded, and if it is that won't happen until finals week. If you wish to use grace days on an assignment you must explicitly indicate that on the assignment.
Work on the exams needs to be independent
, and any sort of borrowing, collaboration, or plagiarism can lead to significant penalties, including a zero on the exam or an F in the course.
The primary factors used in grading will be correctness, completeness, and clarity.
Grades will be entered on the the Moodle site for this course
and can be checked there throughout the semester. If you have any questions or concerns, please bring them up right away when it's much easier to address them.
Grading standards (definition of grades)
- A: Represents achievement that is outstanding relative to the level necessary to meet course requirements.
- B: Represents achievement that is significantly above the level necessary to meet course requirements.
- C: Represents achievement that meets the course requirements in every respect.
- D: Represents achievement that is worthy of credit even though it fails to meet fully the course requirements.
- S: Represents achievement that is satisfactory, which is equivalent to a C- or better.
- F (or N): Represents failure (or no credit) and signifies that the work was either (1) completed but at a level of achievement that is not worthy of credit or (2) was not completed and there was no agreement between the instructor and the student that the student would be awarded an I (see also I).
- I (Incomplete): Assigned at the discretion of the instructor when, due to extraordinary circumstances, e.g., hospitalization, a student who is otherwise doing well in the course is prevented from completing the work of the course on time. Requires a written agreement between instructor and student.
Senate academic workload policy
For undergraduate courses, one credit is defined as equivalent to an average of three hours of learning effort per week (over a full semester) necessary for an average student to achieve an average grade (a C) in the course. For example, an average student taking a four credit course that meets for four hours a week should expect to spend an additional eight hours a week on course work outside the classroom in order to get a C in that course.
protects your right as a student to keep your work and identifying information confidential. Public discourse, however, is crucial to the intellectual and academic process, whether it be within the course or in the broader world. Information such as grades will be protected and confidential, but our our use of technologies such as Moodle, wikis, and Google Docs will sometimes make students' names and U of M Internet IDs visible to other people in the course and, potentially, to the wider Internet. If you have concerns about the visibility of your Internet ID, please contact me for further information.
The Academic Assistance office
on campus provides free tutoring for a variety of introductory courses, and well as general assistance in a host of areas (e.g., study skills, careful reading, and time management). The Writing Room
can be an excellent source of assistance with writing assignments.
Accessibility and institutional support
The University of Minnesota is committed to providing all students equal access to learning opportunities. Disability Services is the campus office that works with students who have disabilities to provide and/or arrange reasonable accommodations. Students registered with Disability Services who have a letter requesting accommodations, are encouraged to contact the instructor early in the semester. Students who have, or think they may have, a disability (e.g. psychiatric, attentional, learning, vision, hearing, physical, or systemic), are invited to contact Disability Services for a confidential discussion at 320-589-6163 or
freyc AT umn DOT edu
. Additional information is available at the DS web site at http://www.morris.umn.edu/services/dsoaac/dso
The University of Minnesota is committed to providing all students equal access to learning opportunities. Disability Services is the campus office that works with students who have disabilities to provide and/or arrange reasonable accommodations. Students registered with Disability Services, who have a letter requesting accommodations, are encouraged to contact the instructor early in the semester. Students who have, or think they may have, a disability (e.g. psychiatric, attentional, learning, vision, hearing, physical, or systemic), are invited to contact Disability Services for a confidential discussion at 320-589-6163 (320-589-6178 V/TTY) or firstname.lastname@example.org
. Additional information is available at the DS website http://www.morris.umn.edu/services/dsoaac/dso
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 and/or lack of motivation. These mental health concerns or stressful events may lead to diminished academic performance or reduce your 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 learn more about the broad range of confidential mental health services available on campus via http://www.mentalhealth.umn.edu
University policy prohibits sexual harassment as defined by the University of Minnesota Regents' policy: http://www1.umn.edu/regents/policies/humanresources/SexHarassment.pdf
. In general, harassment or intimidation of others in the class for whatever reason is unacceptable (and hardly conducive to a successful learning environment).
Regarding academic integrity
Scholastic honesty is of fundamental importance to the functioning of any community of scholars. Although the pursuit of knowledge is always a communal project, individual academic achievement must be the result of a person's own efforts and abilities. Members of an academic community are responsible for their own personal and academic development and for fostering an academic climate in which all members draw from and give back to the community. The University is charged with implementing those policies which will help bring about such an academic climate. However, the ultimate responsibility for creating a community of scholars, in which mutual self-respect flourishes, lies with the individual members of the community. Each member must, therefore, act according to the highest standards of academic honesty.
-- from the preface of UMM's Student Academic Integrity Policy
Academic integrity is essential to a positive teaching and learning environment. All students enrolled in University courses are expected to complete coursework responsibilities with fairness and honesty. Failure to do so by seeking unfair advantage over others or misrepresenting someone else?s work as your own, can result in disciplinary action. The University Student Conduct Code defines scholastic dishonesty as follows:
Scholastic Dishonesty: submission of false records of academic achievement; cheating on assignments or examinations; plagiarizing; altering, forging, or misusing a University academic record; taking, acquiring, or using test materials without faculty permission; acting alone or in cooperation with another to falsify records or to obtain dishonestly grades, honors, awards, or professional endorsement.
Within this course, a student responsible for scholastic dishonesty can be assigned a penalty up to and including an "F" or "N" for the course. If you have any questions regarding the expectations for a specific assignment or exam, ask.
For more information see:
Regarding classroom conduct
Students are expected to interact with the instructor and other students with respect and courtesy. Students should attend every class session prepared to learn and work. Participation in class is expected, which includes both speaking up and listening. Give class your full attention while here. Complete all assignments, including the reading, in a timely fashion. Turn off cell phones and other electronic distractions during class so we may all better focus on the material. Students whose behavior is disruptive either to the instructor or to other students will be asked to leave. Students whose behavior suggests the need for counseling or other assistance may be referred to counseling services. Students whose behavior violates the University Student Conduct Code will be subject to disciplinary action.
Some relevant University Senate statements and policies
- 13 Jan 2014