-----Original Message----- From: Matthew Bauer [mailto:bauerm@iit.edu] Sent: April 25, 2005 8:46 PM To: sasaki@iit.edu; lee@iit.edu; wallace@iit.edu Subject: CS115/116 Course Goals (review of CS201 Course Goals) Below are Vida's current CS201 course goals. Since she has taught the intro java sequence the most, I thought we would use her set of goals as a new starting point for defining CS115/116 Course Goals. Please review this list and compare to your current syllabus and tell me what you course covers (which numbers). Are we missing anything form this list for pre-req to CS331 Data Structures? Thanks Matt CS 201 - ACCELERATED INTRO TO COMPUTER SCIENCE COURSE GOALS Students should be able to: 1 Analyze and explain the behavior of simple programs involving the following fundamental programming constructs: assignment, I/O (includingfile I/O), selection, iteration, methods, 2 Write a program that uses each of the following fundamental programmingconstructs: assignment, I/O (including file I/O), selection, iteration, methods 3 Break a problem into logical pieces that can be solved (programmed) independently. 4 Develop, and analyze, algorithms for solving simple problems. 5 Use a suitable programming language, and development environment, to implement, test, and debug algorithms for solving simple problems. 6 Write programs that use each of the following data structures (and describe how they are represented in memory): strings, arrays 7 Explain the basics of the concept of recursion. 8 Write, test, and debug simple recursive functions and procedures. 9 Explain and apply object-oriented design and testing involving the following concepts: data abstraction, encapsulation, information hiding,inheritance, polymorphism 10 Use a development environment to design, code, test, and debug simpleprograms, including multi-file source projects, in an object- orientedprogramming language. 11 Implement basic error handling, basic graphical user interface (GUI) 12 Solve problems by creating and using sequential search, binary search,and quadratic sorting algorithms (selection, insertion) 13 Determine the time complexity of simple algorithms. 14 Apply appropriate problem-solving strategies 15 Time permitting: event-driven programming On April 25, 2005, at 9:10 pm, Michael Lee wrote: For 115, this is my take: 1-5 yes, 6 partially (strings yes, arrays only if time permits), 9 partially (inheritance/polymorphism only if time permits), 10 yes, 11 partially (no GUIs), 14 to some degree. The only thing I can think of not explicitly mentioned in the course goals that might be useful for data structures is the idea of designing and using APIs --- arguably taken care of by #9, but perhaps it deserves its own list item? Michael ----- Original Message ----- From: Matthew Bauer Date: April 27, 2005 5:11 am Subject: RE: CS115/116 Course Goals (review of CS201 Course Goals) See the attached excel spreadsheet showing CS201 goals along with currentCS115 and CS116 coverage of those goals. Looks pretty good. I am not worried about missing in #11 "basic graphical user interface (GUI)" in CS116, it is fine that that is extra in CS201. Barbara But it would be nice to try to add in #12 the "quadratic sorting algorithms(selection, insertion)" in CS116, at least covering in theory if not coding Also "15 event-driven programming" is fine as Time Permitting in CS201 Michael brought up the following as possible missing goal "Designing and using APIs" --- arguably taken care of by #9, but perhaps it deserves its own list item Vida what do you think about this? do you already cover using an API? and designing their own? Matt -----Original Message----- From: Jim Sasaki [mailto:sasaki@iit.edu] Sent: April 27, 2005 3:58 PM To: bauerm@iit.edu Cc: lee@iit.edu; wallace@iit.edu; Jim Sasaki Subject: Re: CS115/116 Course Goals (review of CS201 Course Goals) For CS 115, I'm with Michael but would like to add 6 (1-dimensional arrays only), light exposure to 7 and 8 (maybe have them hand-trace the execution of a simple recursive function), just throws clauses on I/O methods for 11, and just sequential search for 12. I'm a little fuzzy on what's included in 14, but it sounds good. Best wishes, -- Jim Sasaki On April 27, 2005, at 10:11 AM, Vida J. Winans wrote: Matt: I think the only major difference is that I would like CS 115 to cover arrays. This is currently "if time permits" but it creates more of a time crunch in CS 116 if these are not covered. The real preference is that both CS 115 classes cover the same material so either the entire CS 116 class has had arrays or none has had arrays. If none of the students has had arrays, I can arrange to cover these in depth rather than review. The API question: I do have my students design their final project; we talk about design and how to decide what to implement in which class but I have found it very difficult for students to distinguish "generic" behaviors" vs. "application specific" behaviors that would be implemented in an application so I typically will give them what to put where. I have already talked about API's with my CS 201 class and will likely talk more about designing and using them. I think adding this would give students a better conceptual idea of what object-oriented programming can do. Good suggestion! -----Original Message----- From: Michael Lee [mailto:michael.saelee@gmail.com]On Behalf Of Michael Lee Sent: April 27, 2005 10:58 AM To: Vida J. Winans Cc: bauerm@iit.edu; sasaki@iit.edu; wallace@iit.edu Subject: Re: CS115/116 Course Goals (review of CS201 Course Goals) Will do --- I'm sure I won't have any problems making arrays an integral part of the 115 syllabus, and I know Jim already has it on his course calendar. Michael OK see attached with all the updates except CS115 - no need to add recursion (7,8) or sequential search (12) Jim, I think this is too much for CS115. They see it in CS330 and CS116. Spend more time on the basics and OO concepts. Vida can you send everyone what you cover on 14 Apply appropriate problem-solving strategies? I may reorder the objectives on the final list Matt Matt: I guess I should make the Apply appropriate problem solving strategies into a more formal presentation. I decided that the best way to teach problem solving was to have students solve problems. I write a weekly lab problem which has the following format: Objective: states the objectives (selection, file I/O, etc.) Problem: Poses a real life problem that incorporates the objective: ie - scoring for a dice game (selection), word processor that counts number of words in a file (file I/O, iteration) Solution: Walk the students through how to solve the problem. I have the students write pseudocode (TA's are asked to check this), step through pseudocode, write code, test and debug. Grading: Gives the students the point values for the parts of their programs When we do the final project, I then talk about how to approach a larger project (break into smaller parts, test & debug each part before putting everything together, etc.). Let me know if you would like a more formal write-up of this. Vida