Instructor: Felix Muzny
Contact: [email protected]
Office: ECOT (engineering center tower) 734
Credit: 3 credits
Lecture times: Tuesdays & Thursdays 9:30 - 10:45am, ECES 114
Course website (for homework submissions): https://moodle.cs.colorado.edu
Piazza discussion forum: https://piazza.com/colorado/fall2018/csci3010/
CA:
Kyle Helmick, [email protected]
Office Hours: posted on piazza
- Increase programming confidence and competency.
- Understand how multi-file programs work and how to design them.
- Understand larger considerations that factor into the design and development of software, such as UI design, testing, and language restrictions.
- Objects and object design in object-oriented programming
- Version control and code reviews
- Unit testing
- Design patterns in object oriented programming
- Designing and building Graphical User Interfaces
- Programming languages (static vs dynamic, functional programming, etc)
- Map/reduce/filter (functional programming)
- Cryptography and security
For an up-to-date calendar with links, visit the README
Week (Monday date) | Tuesday (lecture/lab) | Wednesday (homework) | Thursday (lecture/lab) |
---|---|---|---|
8/27 | Introduction, c++ fundamentals | C++ and objects (part 1) | |
9/3 | PE 1 Objects and structs (part 2) | PE 2 Objects and structs (part 3) | |
9/10 | PE 3 bash/terminal and scripts | PE 4 Version control/ git (part 1) | |
9/17 | Version control/git, code reviews | HW 1 | Testing (part 1) |
9/24 | PE 5 Testing (part 2), continuous integration | PE 6 inheritance | |
10/1 | Design patterns (part 1) | HW 2 | Design patterns (part 2) |
10/8 | PE 7 Design patterns (part 3) | PE 8 GUIs, low-fidelity prototypes | |
10/15 | GUIs, user testing | HW 3 | GUIs |
10/22 | PE 9 GUIs | PE 10 GUIs | |
10/29 | Programming languages | HW 4 | Programming languages |
11/5 | PE 11 map/reduce/filter | PE 12 map/reduce/filter | |
11/12 | Final projects | HW 5 | Final projects |
11/19 | THANKSGIVING WEEK | ||
11/26 | TBD | Checkpoint 1 | Projects workshop |
12/3 | PE 13 Cryptography | PE 14 Security | |
12/10 | Project presentations | Final project due | Project presentations |
You are expected to come to class and actively participate in group and individual work. You are expected to treat your fellow classmates with respect, and work with them to create an environment in which students are comfortable sharing knowledge with and teaching one another.
All homeworks may be turned in up to 3 days (72 hours) late for a 20% penalty. If a homework is due on Wednesday at 11:55pm, it may be turned in as late as Saturday at 11:55pm. If a student would have received a 95% had they turned their homework in on time, a late submission will earn them a 75% instead.
In class activities must be completed in class.
Programming exercises may not be turned in late.
If you are unable to class on a particular day, it is your responsibility to contact the instructor beforehand. If you contact the instructor at least 48 hours in advance, it may be possible for you to make-up the work for ½ credit. Other extensions will only be given in cases of medical and family emergencies.
You are expected to do your work yourself or with your partner when indicated.
The collaboration policy is simple:
- Inspiration is free: you may discuss homework assignments with anyone. You are especially encouraged to discuss strategies with your instructor, your TAs, and your classmates. “Discuss” does not mean “copy” or “show me your homework”.
- Plagiarism is forbidden: assignments and code that you turn in should be written entirely on your own. You should not need to consult sources beyond your textbook, class notes, posted lecture slides and notebooks, and Python/Matplotlib documentation. Copying/soliciting a solution to a problem from the internet or another classmate constitutes a violation of the course's collaboration policy and the honor code and will result in a trip to the honor council, loss of credit for the assignment, and a grade reduction.
- Do not search for a solution online: You may not actively search for a solution to the problem from the internet. This includes posting to sources like StackExchange, Reddit, Chegg, etc.
- StackExchange Clarification: Searching for basic techniques in Python is totally fine. If you want to post and ask "How do convert a float to an integer" that's fine. What you cannot do is post "Here's the function my prof gave me to write. I need to convert this temperature in celcius to farenheit. Give me code!". That's cheating.
- Tutors: you should always consult piazza, the CA, and the instructor for this course if you need extra help. They are here specifically to help you! You should never have anyone else write code for you. This includes tutors, friends, strangers, friends of friends. Anyone who is not you. You can review concepts with tutors, just not specific homework problems.
- When in doubt, ask: If you have doubts about this policy or would like to discuss specific cases, please ask the instructor.
Collaboration Policy violations will result in both a 0 on the assignment in question and a final grade reduction of one letter grade.
Due Dates and Other Information | Total Points | Grade Percentage | |
---|---|---|---|
Programming Exercises | Due Tuesdays and Thursdays before class. Each exercise is worth 20 points. There are 14 total. Points over 250 are extra credit. | 250 | 25% |
Homeworks | Wednesdays at 11:55pm | 600 | 60% |
In Class Activities | Every class session. 5 points each. | 150 | 15% |
This course doesn’t have any midterm or final exams.
This course is unique in that it offers the option to students to design their own, 10-week long project to work on.
When Homework 2 is due, each student has the option to either submit the standard homework 2 or to submit a project proposal.
Students who submit proposals will be required to meeting with the instructor to discuss scope, appropriateness, and project-specific topics. Projects will either be approved or not at this point. Approval depends largely upon: a) scope and appropriateness to the course and b) programming and other skills (such as time management) that students have demonstrated so far.
If your project is not approved, you will return to completing the standard set of homeworks. As a guideline, in the first iteration of this course, about ⅔ of students in the course completed the standard set of homeworks.
More information regarding individual projects will be released during the third week of class.
If you qualify for accommodations because of a disability, please submit your accommodation letter from Disability Services to your faculty member in a timely manner so that your needs can be addressed. Disability Services determines accommodations based on documented disabilities in the academic environment. Information on requesting accommodations is located on the Disability Services website. Contact Disability Services at 303-492-8671 or [email protected] for further assistance. If you have a temporary medical condition or injury, see Temporary Medical Conditions under the Students tab on the Disability Services website.
Students and faculty each have responsibility for maintaining an appropriate learning environment. Those who fail to adhere to such behavioral standards may be subject to discipline. Professional courtesy and sensitivity are especially important with respect to individuals and topics dealing with race, color, national origin, sex, pregnancy, age, disability, creed, religion, sexual orientation, gender identity, gender expression, veteran status, political affiliation or political philosophy. Class rosters are provided to the instructor with the student's legal name. I will gladly honor your request to address you by an alternate name or gender pronoun. Please advise me of this preference early in the semester so that I may make appropriate changes to my records. For more information, see the policies on classroom behavior and the Student Code of Conduct.
All students enrolled in a University of Colorado Boulder course are responsible for knowing and adhering to the Honor Code. Violations of the policy may include: plagiarism, cheating, fabrication, lying, bribery, threat, unauthorized access to academic materials, clicker fraud, submitting the same or similar work in more than one course without permission from all course instructors involved, and aiding academic dishonesty. All incidents of academic misconduct will be reported to the Honor Code ([email protected]; 303-492-5550). Students who are found responsible for violating the academic integrity policy will be subject to nonacademic sanctions from the Honor Code as well as academic sanctions from the faculty member. Additional information regarding the Honor Code academic integrity policy can be found at the Honor Code Office website.
The University of Colorado Boulder (CU Boulder) is committed to fostering a positive and welcoming learning, working, and living environment. CU Boulder will not tolerate acts of sexual misconduct (including sexual assault, exploitation, harassment, dating or domestic violence, and stalking), discrimination, and harassment by members of our community. Individuals who believe they have been subject to misconduct or retaliatory actions for reporting a concern should contact the Office of Institutional Equity and Compliance (OIEC) at 303-492-2127 or [email protected]. Information about the OIEC, university policies, anonymous reporting, and the campus resources can be found on the OIEC website.
Please know that faculty and instructors have a responsibility to inform OIEC when made aware of incidents of sexual misconduct, discrimination, harassment and/or related retaliation, to ensure that individuals impacted receive information about options for reporting and support resources.
Campus policy regarding religious observances requires that faculty make every effort to deal reasonably and fairly with all students who, because of religious obligations, have conflicts with scheduled exams, assignments or required attendance. In this class, contact the instructor at least 7 days in advance to reschedule a test. Contact both your TAs and the TAs of the lab that you wish to attend at least 24 hours before the earlier of the two to reschedule a lab.
See the campus policy regarding religious observances for full details.