This page last changed on Nov 16, 2010 by cemeyer2.
CS242: Programming Studio Spring 2011
Credit: 3 Hours, required for all undergraduate CS majors
Prerequisites: CS225 and CS241. In general, we expect you to be able to comfortably program in Java, C++, and C. If you have not taken the required prerequisites, please talk with one of the TAs or the instructor to ensure that you will be successful in this course.
Meeting Times: Lecture will be every Monday from 3:00-3:50 PM in 1404 Siebel Center. Discussion sections will be held on Thursday and Fridays for 1 hour and 50 minute blocks between 8:00 AM and 9 PM. Details on exact times for discussion sections and how to register for one will be posted to the course website and newsgroup shortly.
Course Web Site: http://cs.illinois.edu/class/cs242/
Course Newsgroup: http://news.cs.illinois.edu group cs242sp11
Office: 2101 SC
Office Hours: … 0403 SC
Office Hours: … 0403 SC
Office Hours: … 0403 SC
Most classes teach computer science theory. In this class we teach practical programming. In most classes you learn to write correct programs. In this class you’ll learn to be a better programmer. We focus on writing simple, readable, maintainable code and on presenting your work to other programmers.
In this course, you will have to attend the lectures on Mondays, following which you will be given an assignment. You will be given a deadline to finish this assignment following good coding practices and conventions. You will have to attend discussion sections on Thursdays and Fridays where you will be asked to present your work to other students in your section. You are expected to be able to answer questions or queries that other students or your section leader may have about your code.
Additionally, we will emphasize peer code reviews. To accomplish this, we will eventually be assigning each student to read another student’s code. Details about this procedure will be forthcoming.
- There will be an assignment roughly every week.
- New assignments sometimes depend on previous assignments so you should make sure all your previous assignments are working properly.
- New assignments are posted to the class website and will be announced in the newsgroup. Please read the new assignment carefully and pay attention to the grading rubric before starting on it.
- Sometimes we require that you use a particular tool for accomplishing the assignment. Refrain from using complex libraries or frameworks that most students are not familiar with unless you get prior permission from your TA.
- Some assignments will require working in groups and usually the TAs will assign you to groups. Unless otherwise stated, all work is individual.
- Ask questions on the newsgroup whenever you are unsure about something. Chances are if you are unsure, others probably are as well.
- In this class, you are allowed to use code snippets from various resources (web, books, etc). If you use any code snippet, you need to include the source as part of your code comments. Please note though, if for example an assignment asks you to code a specific algorithm and you properly use and cite pre-written version of that algorithm from another source, you will not be penalized for plagiarism but you will not receive credit for the component of the rubric that covers that algorithm (since you did not write it).
- Once we have discussed issues such as unit testing and version control, it is your responsibility to incorporate them into the future assignments.
- TO RECEIVE POINTS FOR AN ASSIGNMENT YOU MUST PRESENT YOUR CODE IN DISCUSSION SECTION AND IT MUST COMPILE. Code that does not compile will receive an automatic zero for the week.
- The course is not about ‘getting the job done’ but rather to improve style and organization which is addressed in discussion sections. You will earn more points by writing high quality code that does not fulfil all of the functional requirements of the assignment than writing poor quality code that meets all of the functional requirements.
- We expect you to properly cite all sources that you use to complete an assignment.
- Each week, we will be running your code through automated software to check for any cases of academic dishonesty.
- The first violation will result in a non-droppable zero on the assignment, the second will result in failing the course, any subsequent violations will be taken up by the college.
- This policy holds regardless of when the dishonesty is detected.
- There may be from time to time quizzes given in lecture covering material that was previously covered in lecture.
- The only way to receive credit for quizzes is to attend lecture the day that they are given, unless you have documented proof of absence from the emergency dean.
- You may miss one discussion section or quiz during the semester if you have documented proof, such as from the emergency dean or proof of travel. Please contact your section leader and one of the TAs if you need to miss a discussion section or quiz. Be aware that since most of the assignments in this class build on each other, missing an assignment due to an approved absence does not mean that you do not have to complete the assignment, since you will still be held to the same standards as the rest of the students in the following weeks.
- Before discussion section, it is your responsibility to post your source code to subversion by the deadline on the assignment specification. This is a HARD deadline and you must post your source code by deadline. For instance, if we say post your source code by 8 p.m. you must do so or you will be penalized.
- Some weeks, each student in discussion section will be responsible for reading another student’s code before coming to discussion section. You will then lead the discussion on that student’s code and should come prepared with specific questions to ask about it. You will be graded your ability to lead the discussion and on the questions that you ask.
- We will be using SC 0403 for our discussion section. SC 0403 is the room in the basement under the lecture hall near the vending machines. There are LCD screens to hook up your laptop to present your code and house computers you can use as well. Each week you will need to show your section a running version of your code, so please make the necessary preparations as such. We do have a limited supply of adapters for Apple computers to allow them to connect to our LCD screens.
- Always make sure that you can easily retrieve a plain text version of your source code (netfiles, EWS, usb pen drive, etc); at least, even if we have to use a basic text editor, we can still read your source code.
- There will be a final project for this class. You may work individually or in pairs if approved by the instructor.
- You will be given roughly 4 weeks for the final project. During these 4 weeks, you will present your progress in discussion section.
- More information on the final project will be posted later. In the past, students have worked on applications such as address book applications, web content management frameworks, cheat detection programs, android and iphone apps, and various open source projects.
- Our textbook is Code Complete 2 by Steve McConnell. See here for more details. The book is required and there will be assigned readings out of it, possibly covered by quizzes in lecture. Also, this is a required textbook (currently) for CS427/428/429, so if you plan on taking any of these courses in the future, it is a good investment now to purchase this book.
- Please check the newsgroup frequently as important announcements will be posted there. Also, whenever possible, please help your classmates by answering their questions.
- Most questions on the newsgroup will be answered within 24 hours.
- Grades and other feedback for discussion sections can be found by logging in here.
- Appeals for re-grades should be made within a week of the graded assignment. Appeals must be sent by e-mail to your respective section TA.
- Your lowest assignment grade for the semester will be dropped, excluding the any of the final project weeks. This lowest grade may be the an assignment you missed due to an approved excused absence.
- All grades are normalized across moderators, so that if your moderator grades “tougher” than others, you will not be penalized.
- All quiz grades will be averaged and weighted as 1-3 assignments depending on the number of quizzes given. We will clarify this as the semester progresses.
- More firm details on grading can be found here.
- You may give suggestions on future assignments by talking to the lecturer or the TAs.
Communicating with the Staff
If you need help with an assignment, first post your question to the newsgroup or come to one of the TAs office hours. They are posted on the home page of this wiki. If none of the times work for you, email one of the TAs to make an appointment. We will do our best to accommodate your schedule. The TAs will not answer questions via email that could also be posted on the newsgroup, so please reserve email queries to questions that are specific to how you are completing the assignment.
Staff members will do their best to respond to emails within 24 hours, excluding weekends. Email your moderator first, and if he cannot help you, email one of the TAs or the instructor. When emailing any staff member, always be sure to begin your subject line with “CS 242” to ensure that we can differentiate your message.
Lastly, some of the staff may be willing to help you over Illinois chat. Just because we are noted as online does not mean that we will be immediately able to help you, but we will make our best effort as soon as we can.