What is the origin of CS4?
This course is designed to give students a fun and interesting introduction to computing using science and engineering examples.
- There is a movement to create a Engineering Common First Year (CFY) in which students would be admitted into the Engineering Undeclared major and after a year of relatively common courses, choose their Engineering major after that.
- This has been implemented to acclaim at other universities.
- It solves the problem that most students in High School don't have enough information to make an informed decision about which of the available 9 Engineering majors would be best for them.
- As a consequence, EECS (to which students are introduced in High School) has been traditionally oversubscribed, whereas other majors have been undersubscribed
- There were two new courses that are part of the CFY movement: CS4 and Engineering Design and Analysis (EDA).
- EDA will be taught as a pilot in 2005Sp
- The College of Engineering Faculty approved design & piloting of CS4 as first-year computing course
- Flexibility in choosing a major is a key goal
- Students who choose a major at the end of their first year should not be "behind"
How does CS4 fit into the grand scheme of things?
- CMU data shows multiple entry points helps students with varied backgrounds
- This gives full flexibility to all students
- It may be used as a prerequisite to CS61B, although it does not replace CS61A in the EECS curriculum.
- In its final form, CS4 is intended to be a precursor to a modified E77 (E77-r) , which will teach more advanced numerical techniques.
- CS3 is more appropriate for students who intend to major in EECS, have no computing experience [i.e., no recursion] and want...
- a more symbolic (and less numeric) introduction to computing
- to have more experience with Scheme before taking CS61A
- a course with more polish (this is a first-attempt pilot, after all!)
- more hours in lab (they have 6/week vs our 4)
What are other similar classes I could take?
- IDS110 - Interdisciplinary studies 110 : Introduction to computers
- Not so much programming as using computers as a tool
- CS3 - Introduction to Symbolic Programming
- Taught in scheme
- Uses Harvey's Simply Scheme as a textbook
- Teaches recursion (CS61A prerequisite)
- After taking CS4, CS3 may seem too slow (CS61A is probably more appropriate as a follow-up course if the goal is an EECS degree)
- 1 hour of lecture or discussion and 6 hours of lab!
- Studies have shown that the learning really happens in lab
- CS3S - Self paced CS3
- Move at your own pace
- Different course with different assignments covering same material
- Different book! They use Grillmeyer, CS3 uses Harvey
- Orientation meeting early in the first week of the semester in 1 Pimintel
- CS61A - Structure and Interpretation of Computer Programs
- Introduction to Computer Science, recursion is a prerequisite
What is the prerequisite?
- High School Math
- Algebra, Trigonometry
- Math1A is co-requisite
- High School Physics
- High School Chemistry
- No computing experience required!
What are the goals of CS4?
- Teach basic programming competence
- Demonstrate power of computing as tool for:
- Manipulating data
- Achieving Engineering objectives
- Simulating physical phenomena
- Visualizing results
- Manage complexity with abstraction
- Inspire students to design and use computing solutions
- Take over introductory computing role from E77
- CS4 should be fun to take (and teach)
- Java better option than Matlab
- Promotes programming discipline
- Better software engineering tool
- Better stepping-stone to other languages
- Provides libraries for GUIs, data types, etc.
- Ties into E77-revised (-r)
- Students in E77-r will be more effective, disciplined
- Matlab allows loading of Java classes, and provides interpreter for instantiation of objects
- Ties into CS61B perfectly
- CS61B uses OOP, and is a natural extension of CS4
CS4 Internal Details
(we color-code things in green when they are semester-dependent)
- Four hours of lab/week done in pairs in UCWISE using pair programming model
- Two hours of lecture/week
- One hour of TA-led discussion
- Quizzes to start lab
- Weekly individual homework (extension of lab)
- One month-long team (2 students) final project
- One midterm (around the 8th week)
- One final exam
- Extra credit can be earned for effort, participation and altruism (called EPA!)
- We'll be using a "Class Portal" developed by Cal UC-WISE programmers instead of a standard web front page this semester:
- You'll need to log into CS4 as a guest (by clicking on the "Sign is as guest" button) until you get to lab and are given an enrollment code.
- We'll meet in this room (320 Soda) every MW from 1-2pm
Discussion (also known as "section")
- Taught by our experienced staff in 380 Soda on thursdays
- There will not be a reader (i.e., paper collection of notes, readings, etc) for this class.
- They start the first week of school
- Two hours long, twice a week
- Held in 380 Soda on Tu/Th from 2-4pm
- Great HP-grant-funded "Mobile lab"
- 20 PC laptops (one per team)
- One tablet PC, projector, printer, digital camera
- CS education research confirms one learns by doing
- Lab is where we explore programming concepts in the context of engineering examples
- Interactive, collaborative labs in UC-WISE (www.ucwise.org)
- This is your chance to talk to a TA in person
- Done with a partner which will rotate each of the first several weeks (we'll assign your partner to you each week)
- Labs are staffed by TAs, CS4 readers who grade your homework and CS4 lab assistants who help you with your labs
- Labs are not graded for correctness (labs are the place where it's ok to make a mistake), but for completion.
- This completion goes into a multiplying factor toward your quiz score.
- That is, if you complete all the lab activities, you will earn all of your lab quiz points.
- Not completing all of your lab activities will result in your quiz score being lowered (how much depends on how much you've "blown off")
- Typically labs will start with a quick quiz to verify you're finished all the work up to that lab. These are discussed below.
- If you weren't the pair programming driver (i.e., the code isn't in your account) and you want a copy of the code you and your pair programming partner developed, you have two options:
- Email the code to yourself
- Copy the code to a USB flash memory stick. An 8MB flash drive (easily enough to hold all the source code you'll write this year) costs less than $20!
- Every lab will begin with graded quiz questions.
- These are to be completed with your partner in hushed discussion.
- Unless otherwise stated, these are to be closed book, no Eclipse IDE, no www.
- As with other partner assignments, you will receive the same grade as your partner
- If you have been keeping up with the labs, assignments and reading, these should be fairly easy.
- They will be graded for correctness.
- The weight they contribute toward your final grade is shown in the table below
- At the end of the class, we will scale your quizzes by your "lab completion %"
- If you complete all of the lab activities, this multiplying factor will be 1.0
- We'll be using the Pair Programming technique this year in labs
- "Two programmers working side-by-side, collaborating on the same design, algorithm, code or test. One programmer, the driver, has control of the keyboard/mouse and actively implements the program. The other programmer, the observer, continuously observes the work of the driver to identify tactical (syntactic, spelling, etc.) defects and also thinks strategically about the direction of the work. On demand, the two programmers can brainstorm any challenging problem. Because the two programmers periodically switch roles, they work together as equals to develop software." -- Laurie Williams, North Carolina State University Computer Science
- This means every week you'll be working with a partner to complete all the quizzes and other lab activities
- We'll rotate these partnerships each week so you'll get a chance to work with different students in the class, learn different styles, and meet others
- At some point we'll stop rotating and you'll be able to work with the partner of your choosing
- Only the quizzes are graded for correctness and you will each receive the same grade for that
- If your partner is absent for that lab or if you happen not to be assigned a partner, you'll work alone.
- Can brainstorm in partnerships if you're done with lab early, but the final work needs to be your own
- Turned in (details to come)
- Frequency: ~once a week, usually given out after your last lab of the week and due before the first lab the next week
- Similar to a very long homework; we'll have one of these.
- It will count for a significant portion of your grade (details below)
- You'll work on this with a partner of your choosing -- choose carefully!
- You'll be pleased we had you swap partners every week early on, since you'll know with whom you work best!
- It'll be held during the last four weeks of the semester
- Projects will contain the largest programs you must write in CS4.
- It will require you to use all the knowledge you have gained in the class up to that point to complete it.
Grades & Point breakdown
- CS4 is graded on a 400 point scale. The point breakdown is as follows:
Lab quizzes: 40 pts. (10%)
Project: 40 pts. (10%)
Homework: 80 pts. (20%)
Midterm: 100 pts. (25%)
Final: 140 pts. (35%)
Total: 400 pts. (100%)
- The class is not graded on a curve.
- We reserve the right to lower the cutoffs for each grade if the grading seems too harsh.
- We will not, however, raise the cutoffs.
- The grading scale is as follows (basically 40 points per grade, 10 each for the +/-, 20 for the straight grade, no D+ or D-)
Common grading questions
- Explain this absolute grading thing again...
- That's right, this class is going to be graded using an absolute grading scale.
- That means, if you have earned the points for a particular grade, that's the grade you will get, independent of your neighbors.
- We use this technique in every lower division class to reduce unsightly competitiveness.
- If everyone earns an A, then everyone will receive an A!
- Who grades what?
- TAs, readers and faculty grade your midterm, final and project.
- Readers grade your homework (and sometimes your quizzes)
- Lab assistants grade your quizzes and your UC-WISE completeness (and sometimes your homework)
- What happens if you fall behind?
- It is critical that you keep up with this course.
- Since this is such a small first offering, we will know who is caught up and who isn't, and will try to nudge and help you if you do fall behind.
- Please don't hesitate to ask us if you need help in lab (with material or pace)
- What happens if you skip a UC-WISE activity?
- The multiplying factor applied to your quizzes will drop from the initially perfect 1.0.
- EPA! was introduced as a concept to reward and encourage behavior that makes for a better learning experience for all involved.
- Attending instructor and TA office hours
- Completing all assignments
- Attending lecture, lab and discussion
- Asking great questions in discussion and lecture and making it more interactive
- Helping others in lab or on the newsgroup
- At the end of the semester, TAs and instructors give internal EPA! extra credit points for each student.
- EPA! extra credit points have the potential to bump students up to the next grade level!
What constitutes cheating?
- When you are working together in teams Pair Programming, you are expected to share all ideas and code.
- This is exactly the point of pair programming, and is critical to its success
- The following comments apply across teams or when you are asked to work alone
- Unauthorized collaboration (cheating) will...
- be reported to the Office of Student Conduct
- result in grade penalties (including failing the course).
- The typical grade penalty is to receive full negative points for the homework / project in questsion
- E.g., the project is worth 20 points, and you've been given a 12. Later it is discovered that you've cheated. Your score drops from a 12 to a -20.
- Discussion about general solution strategies, or help debugging is encouraged.
- "Debugging" does not you write a method for a friend or hand the code over -- it means you help them correct their mosty-working code.
- No Code Rule: Never have a copy of someone else's program in your possession & never give your program to someone else.
- If you receive a significant idea from someone, acknowledge it.
- someone includes the web, students from previous semesters, your parents, old solutions, etc.
- May still receive a grade penalty, but the severity may be lessened, and it protects you from academic misconduct.
CS4, http://inst.eecs.berkeley.edu/~cs4/GeneralInfo.shtml (Last Updated: today)