This course provides a path for students with a broad diversity in backgrounds to learn programming and computer science, including those considering a computer science major. Students will learn at their own pace with a combination of technology-based and face-to-face class structure. Students will use a problem-driven approach to build complex, interactive software systems. The course includes an introduction to a wide variety of issues relating to software, including design, problem-solving, development processes, and broader issues such as security, performance, and ethics.
Syllabus: This is the course syllabus.
Restriction: Must not have completed any courses from the CMSC131-499 course range.
|Tak Yeon Lee
Class Location/Time: Fridays, 2-5pm, 2107 CSIC
Technology Requirements: You must bring a laptop to every class. If you would like to take the course, but do not have access to a laptop, contact the instructor as a small number of "loaner" laptops for class time may be available for this purpose.
Piazza Forums: We will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the TA, and myself. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza.
Textbook / Resources:
This is an introduction to computer science for non-majors. There are no pre-requisites except for a willingness to try something new.
This will be a problem-driven course. In this class, we will build a simulation with virtual creatures that evolve, interact with each other (and your classmates' creatures), and respond to the changing environment. By building these creatures, you will learn about basic programming concepts, and about how programs interact with the real world (your creatures will be able to text you, and more!) You will learn about how computers can process textual data, simulate complex environments, and how even a simple computer program can result in an exciting level of complexity when networked with other programs.
You will program in Python, a widely used computer language of growing popularity. Your programs will run on a server, enabling you to access your creatures from the web, and even your phone - so you can show off your work to your friends, and encourage them to help take care of your "pets".
These are the 3 credits, broken into 4 modules each which you will follow in sequence:
|CMSC 198C - Introduction||CMSC 198D - Connections||CMSC 198E - Problem Solving|
|1. Artificial Life||5. Classes||9. Web Apps|
|2. Intro to Python||6. Interaction||10. Going Public|
|3. Creature Movement||7. Inheritance||11. Text Processing|
|4. The 2nd Dimension||8. AI Search||12. Evolution|
|Earn 1st Credit||Earn 2nd Credit||
Earn 3rd Credit
Counts for GenEd
("Scholarship in Practice")
Collaboration Policy: You are free to talk to others, to use the web (except see below), and to ask others to help you with your homework. This is a very flexible collaboration policy because I believe that one of the best ways to learn is to do so with others. But at the same time, I want to make sure that each student understands their work. So, while it is ok to give or receive help from others in some ways, you MUST follow the following restrictions or I will consider you to be cheating and will apply the rules of academic honesty as described further below. The restrictions are:
Exams are closed-book, but students may bring in one 8.5x11" two-sided sheet of paper with personally hand written original notes. Your name must appear prominently on the paper, and you will be expected to show the paper to the exam proctor. Because students will be doing work at their own pace, exams will be offered each class period. Exams are considered private, and may not be shared or discussed. Exams will also be designed to have variations so each student will see slightly different versions of the exam.
Grading: All grades will be posted on UMD's ELMS w/ Canvas.
This course is structured around "mastery", which means that students can not go on from one module to the next until they have demonstrated that they have truly learned the material, which will be measured by earning an A for that module's homework and exam. Similarly, students will not be able to move from one course to the next unless they have earned an A. If student's work is not at the A level, feedback will be given, and the student will be expected to refine their work responding to the feedback and resubmit. Homework will be graded and returned as quickly as possible (with a goal of 48 hour turn-around) so that students are not delayed, except that re-grades (on refined work) will be returned one week after the earlier grade.
Much of the "content" of the course will be available online through recorded video and exercises. However, attendance in class is required for discussion, working on homework, classroom activities with other students, exams, etc. In addition, students must meet with the instructor in small groups for 30 minute sessions once per credit.
That said, each of the 1-credit courses will be graded as follows:
Writing: This course involves writing (both code and prose). You will be graded on your writing quality as well as your writing content. Good writing conveys ideas more clearly than poor writing, and the process of writing down your thoughts often helps to clarify them. Thus it is to your advantage to make the effort to organize your thoughts and write well.
Any writing that comes from anyone but you must be clearly and explicitly cited. That is, if you quote a web page, article, person, source code, or anything that you did not write yourself, you must indicate which text is a quote, and where that quote comes from.
Attendance policy: Students are required to attend the weekly 3 hour class session. If a student will miss class for a non-medical reason, then it must be discussed with the instructor in advance, and the instructor will make a decision on a case by case basis.
For medically necessitated absences, the student must make a reasonable attempt to inform the instructor of his/her illness prior to the class. Upon returning to the class, the student must present their instructor with a self-signed note attesting to the date of their illness. Each note must contain an acknowledgment by the student that the information provided is true and correct. Providing false information to University officials is prohibited under Part 9(i) of the Code of Student Conduct and may result in disciplinary action. The self-documentation may only be used for only 1 class meeting. Any student who needs to be excused for multiple class meetings must provide written documentation of the illness from the Health Center or from an outside health care provider. This documentation must verify dates of treatment and indicate the timeframe that the student was unable to meet academic responsibilities. In addition, it must contain the name and phone number of the medical service provider to be used if verification is needed. No diagnostic information will ever be requested.
Academic Honesty: Please visit the webpage of the Student Honor Council for a detailed explanation of what constitutes academic dishonesty. Note that it includes not only cheating, fabrication, and plagiarism, but also includes helping other students commit acts of academic dishonesty by allowing them to obtain copies of your work. You are allowed to use the Web for reference purposes, but you may not copy any significant amount of code from any website or any other source (i.e., a line or two is acceptable, but a full function is not). In short, all submitted work must be your own.
Cases of academic dishonesty will be dealt with harshly. Each such case will be referred to the University's Office of Judicial Programs. If the student is found to be responsible of academic dishonesty, the typical sanction results in a special grade "XF", indicating that the course was failed due to academic dishonesty. More serious instances can result in expulsion from the university. If you have any doubt as to whether an act of yours might constitute academic dishonesty, please contact the instructor.
Course Evaluations: Your participation in the evaluation of courses through CourseEvalUM is a responsibility you hold as a student member of our academic community. Your feedback is confidential and important to the improvement of teaching and learning at the University. When it is announced, please go directly to the course evaluation website to complete your evaluations. By completing all of your evaluations each semester, you will be able to see the evaluation reports for the thousands of courses for which 70% or more students submitted their evaluations.
Disability Support Services: Any student eligible for and requesting reasonable academic accommodations due to a disability is requested to provide, to the instructor in office hours, a letter of accommodation from the Office of Disability Support Services (DSS) within the first two weeks of the semester.
Copyright: All course materials that exist in a tangible medium, such as written or recorded lectures, presentation slides, handouts and tests, are copyright protected. Students may not copy and distribute such materials except for personal use and with the instructor's permission. Course materials may also be marked copyrighted (© 2013 Bederson).
The following technical topics will be covered throughout the three courses, and will be folded in to the above modules as needed to support the simulation problem that we will build up throughout the course: