Anda di halaman 1dari 171

Appendix VII.

Assessment Mechanisms and Improvement

Appendix VII-A. Assessment Plan

The University of Texas at El Paso Department of Computer Science Program Outcomes and Educational Objectives Assessment Plan 2007

Purpose The purpose of the Assessment Plan is to document the procedure for assessing the programs outcomes and educational objectives. The plan presents the items to be measured, i.e., the outcomes and objectives, the instruments used to measure them, and the success metrics used to determine whether they have been met. Program Outcomes and Educational Objectives The program outcomes and educational objectives are the items being assessed. According to the ABET definition, outcomes are narrower statements that describe what students are expected to know or be able to do by the time of graduation from the CS program. Objective 1: Use the theoretical and technical computer science knowledge to specify requirements, develop a design, and implement and verify a solution for computing systems of different levels of complexity. Outcomes 1-1 Apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems. 1-2 Estimate the feasibility and effort required to build a particular computing system. 1-3 Identify and specify requirements for computing systems by selecting appropriate modeling techniques and tools. 1-4 Design, implement, and verify computing systems of varying complexity by using appropriate techniques and tools and by selecting appropriate design patterns, architectures, languages, and testing approaches. 1-5 Evaluate a system with respect to criteria such as performance, complexity, correctness, and usability. 1-6 Determine the impact of an architecture or platform on software design and implementation alternatives. 1-7 Apply problem-solving techniques to solve real-world problems. Objective 2: Convey technical information in both oral and written formats. Outcomes 2-1 Present technical information orally. 2-2 Write a professional technical report. 2-3 Formulate and pose incisive, technical questions. Objective 3: Work in teams Outcomes 3-1 Participate as a productive member of a team. 3-2 Solve common problems in team dynamics. Objective 4: Apply a professional code of ethics in the daily practice of their profession. Outcomes

4-1 Project the potential impacts of technical decisions on the individuals, organizations and external constituencies involved, and identify ethical and legal implications. 4-2 Apply the insights embodied in professional codes of ethics. Objective 5: Stay current in their profession. Outcomes 5-1 Describe the importance of and options available for continuing education. 5-2 Describe the role of professional societies 5-3 Articulate the benefits of graduate studies. The mechanisms that are used to collect information in the Department to evaluate attainment of PEOs and POs are described below. Refer to Appendix VII for the instruments, summary reports, and other relevant information concerning data collection. Assessment Instruments Graduating Senior Survey. The Senior Survey is a uniform questionnaire completed by all of the Universitys graduating seniors. Frequency and timing. The Universitys survey of graduating seniors is conducted annually. Data collected: The Senior Survey collects data on students post-graduation plans, their experience at the University with respect to knowledge and skills gained, their satisfaction with multiple aspects of their education, their satisfaction with advising, their use of and satisfaction with university programs and services, and their positive and negative experiences with the University. Means of data collection: Data for the survey are collected by the staff of the Universitys Center for Institutional Evaluation and Planning through a questionnaire. Sources of data: The sources of the data are seniors who apply to graduate in the current academic year. Uses of assessment: The Department uses the data from the graduating senior survey to evaluate attainment of the Departments POs and evaluate the PEOs. Alumni Survey. The Alumni Survey is a uniform questionnaire given to graduates of the College of Engineering. Frequency and timing. The survey is conducted in the spring every five to six years. Data collected: The survey collects data regarding graduates employment, their educational status, their professional activities, their experience at the University with respect to knowledge and skills gained, their satisfaction with multiple aspects of their education, and their views of the strengths and weaknesses of the program. Questions on the survey assess the PEOs. Means of data collection: Data for the survey are collected by the staff of the Universitys Center for Institutional Evaluation and Planning through a questionnaire. Sources of data: The sources of the data are graduates of the Department in the five years preceding the survey. Uses of assessment: The Department uses the data to evaluate attainment of the PEOs. College of Engineering Employers Survey. The COE Employers Survey is a uniform questionnaire given to employers of graduates from the College of Engineering. Frequency and timing. The survey is conducted in the spring every five to six years. Data collected: The survey collects data on regarding the performance of graduates. Questions on the survey assess the PEOs. Means of data collection: Data for the survey are collected by the staff of the Universitys Center for Institutional Evaluation and Planning through a questionnaire. Sources of data: The sources of the data are employers of our graduates.

Uses of assessment: The Department uses the data to evaluate attainment of the PEOs. Senior Exit Interviews. The Departments Senior Exit Interviews are structured interviews with graduating seniors. Frequency and timing. The interviews are conducted every semester. Data collected: The interview collects data on students backgrounds, their expectations of the program, their experiences with the Department, their best experience with a faculty member, their recommendations for maintaining or changing the Department, their post-graduation plans, and their assessment of how well the program achieved its POs in their particular case. Means of data collection: A designated faculty member, currently Dr. Luc Longpr, interviews graduating students using a set of structured questions that align to the POs. To ensure that all students are surveyed, the Department does not clear a graduating students paperwork until the student has been interviewed. Sources of data: The sources of the data for the senior exit interviews are seniors who apply to graduate in the current semester. Uses of assessment: The Department uses the data from the graduating senior survey to evaluate achievement of the Departments POs. Departmental Advisory Board. The Departments Advisory Board provides feedback from the Departments primary constituencies other than students. Frequency and timing. The Departments Advisory Board first met in August, 2000 and meets annually in the early fall. With the restructuring of the college in 2004, the Advisory Board did not meet in 2004 and 2005. In 2006, the Advisory Board held a virtual meeting to review the revised PEOs. Data collected: Prior to an Advisory Board meeting, a committee sets the agenda to address various aspects of the Department. Past themes have included the undergraduate curriculum, graduate program, research, and educational objectives. Means of data collection: Data are collected in reports from breakout-groups and in general group discussion. The Advisory Board submits a report with explicit assessment of relevant objectives. Sources of data: The Advisory Board has included representatives from industry (IBM, Microsoft, HP, Boeing, Lucent, Raytheon, Lawrence Livermore, Texas Instruments), academia (University of Texas, Oregon State University, Georgia Institute of Technology, University of Virginia), and local software and government organizations and government (EPV, Fort Bliss, White Sands). Uses of assessment: The Department uses the data from the Advisory Board to plan the Departments strategy and to evaluate the Departments mission and program. Teaching Evaluations. The University mandates teaching evaluations by students for every instructor of every course. Frequency and timing. The Departments teaching evaluations are conducted at the end of every semester. Data collected: The teaching evaluations collect data on the satisfaction of students with respect to the course and the instructor. Means of data collection: Data are collected via uniform questionnaires and sheets for writing open-ended comments. Sources of data: The sources of the data are the students enrolled in the course. Uses of assessment: The Department uses the data from teaching evaluations to evaluate the Departments POs. Course Assessment. Instructors of required undergraduate courses formally assess the courses that they teach against the outcomes that are associated with it. The outcomes are divided into three levels of learning based on Blooms taxonomy. The first level is knowledge and

comprehension, i.e., those outcomes in which the student has been exposed to the terms and concepts at a basic level and can supply basic definitions. The material has been presented only at a superficial level, typically for the purpose of exposure to material that will be elaborated in later courses. The second level is application and analysis. Outcomes in this category include those in which the student can apply the material in familiar situations, e.g., the student can work a problem of familiar structure with minor changes in the details. The third level is synthesis and evaluation. These are outcomes in which the student can apply the material in new situations. Frequency and timing. According to the schedule given in Table 1 or at the request of the Undergraduate Curriculum Committee, instructors document in a report how well the course outcomes were met, and the sub-committee chair prepares a CQI report that summarizes the assessment of all courses being assessed in the designated area. (Thus, formal course assessment is done on a staggered, one or two year cycle.) Informal assessment is done each semester at a faculty meeting in the form of a report-out. Data collected: The formal assessment process requires instructors to document the course outcomes, the assessment tools used (e.g., quizzes, tests, observation, or project), the mean and median reached for each outcome, and the achievement of the outcome by the class. The assessment targets are set by each instructor in accordance with his/her experience and expectations. The CQI report documents the recommendations for improvement, and it is presented at a faculty meeting. Means of data collection: The professor, who is teaching the course in the semester in which course assessment is to be done, is responsible for collecting the data and writing an Assessment report for the course. The chair of the area curriculum committee is responsible for preparing the CQI report. Sources of data: Student performance on course assessment instruments. Uses of assessment: The Department uses the data from the report to evaluate the Departments POs and make recommendations for curriculum improvement. Informal assessment is used to inform faculty of course adjustments and concerns regarding student preparation. Table 1: Course assessment schedule
Subcommittee Fundamental Frequency Fall-even year Courses CS1401 (Intro to CS), CS2401 (Elem. Data Structures/ Algorithms), CS2402 (Data Structures), CS3195 (Jr. Professional) CS4375 (Operating Systems), CS3320 (Computer Arch. II), CS3432 (Comp. Arch. I) CS3350 (Automata/Computability/Formal Lang), CS3360 (Design/Implementation Prog. Languages) CS3331 (Adv. OO Programming), CS4310 (Soft. Eng.: Requirements Engineering), and CS4311 (Software Eng: Design and Implementation)

Systems

Spring-odd year

Languages

Fall-odd year

Software

Spring-even year

Industry Feedback. Faculty members have numerous opportunities to interact with industry representatives through personal meetings and faculty summits that are sponsored by industry. Frequency and timing. Feedback is collected each semester, typically during recruiting season. Data collected: The data relates to course material coverage, desirable attributes and knowledge of graduates, and satisfaction with graduates. Means of data collection: The feedback is summarized in a memorandum. Sources of data: The sources of the data are industry representatives, recruiters, and researchers. Uses of assessment: The Department uses the data to evaluate the Departments PEOs and achievement of POs.

Feedback from Quality Enhancement Plan. The University, through a committee, analyzes data and creates a Quality Enhancement Plan every five years. In 2005, the focus was on curriculum review and renewal as well as academic and career advising. The committee consisted of faculty members throughout campus, and the recommendations become campus-wide initiatives. Frequency and timing. Feedback is provided every five years. Data collected: The data collected depends on the focus. The committee generates a report that includes recommendations. The 2005 report made recommendations regarding degree plans and advising. Means of data collection: Data is collected by committee members. Sources of data: The sources for the 2005 report included data about university programs, degree plans documented in the university catalog, statistics concerning time to graduation, student reports on advising, and other related data. Uses of assessment: The Department used the 2005 results to improve the Departments degree plan, evaluate the pre-requisite requirements, and improve the advising processes. The results are also used to align the CS program with university-wide efforts. Advising Survey. Students complete the Advising Survey after they are advised each semester. Frequency and timing. Students complete the survey each semester. Data collected: The survey assesses student satisfaction with advising and the information provided to them by his or her advisor. Means of data collection: The Departments secretary asks the students to complete the survey when they turn in their advising forms to remove departmental holds. Sources of data: The sources of the data are the students. Uses of assessment: The Department uses the data to evaluate the Departments advising processes. Success Metrics Success metrics are used to determine the degree to which an objective or outcome is being met. The percentage may refer to the number of positive responses to a question, number of students receiving a particular rating, the score on a particular question, or the average scores for a group of related questions. Table 2 categorizes the percentages and the course of action needed. The table is meant to serve as a guideline and should be used when appropriate. Table 2: Definition and use of success metrics.
Percentage associated with Success Metric 69% or below 70%-74% Interpretation Not acceptable Marginal Action Immediate action needed Concernfurther analysis is needed to determine source of potential problem Monitor No action No action

75%-80% 81%-90% 91%-100%

Acceptable Good Excellent

Process The Departments process for improvement and evaluation of attainment of Program Educational Objectives (PEOs) and Program Outcomes (POs) is a cyclical, continuous-improvement model consisting of the three phases. Fig. 1 shows the information flow into and out of each phase. The open rectangles represent information stores, the sources of information are denoted by a square, and the rounded boxes represent the processes associated with a phase.

Board of Advisors

Recommendations

PHASE 3 PEO and PO Review (5 years) PHASE 1 Program and Curriculum Review (yearly)
Program Curriculum Improvements

PEOs Outcomes Revisions

PEOs POs

Results

Outcomes Revisions

COE Employer Survey/ Feedback Advising Survey/ Feedback

Recommendations Improvements

Alumni Survey/ Feedback

Course Assessments Teaching Evaluations

Senior Exit Interviews/ Feedback

Course Content Delivery and Assessment

Program Improvements

Course Outcomes

Recommendations

CS Program and Curriculum


Improvements Outcomes Revisions

PEOs Outcomes

Results

PHASE 2 Program and Curriculum Review (3 years)

Figure 1. Information flow of process for program improvement. Phase 1: Short-term Program and Curriculum Review Each semester, faculty review their course assessments and teaching evaluations. There are four main sub-committees that have been formed for reviewing whether course outcomes are met: Fundamentals, Languages, Software, and Systems. Collectively, the courses under these subcommittees span the undergraduate program. The courses associated with each of the subcommittees and the schedule for formal assessment of the courses is given in Table 1. The Undergraduate Curriculum Committee may request more frequent assessment based on circumstances such as major revisions in the course, or change in instructors. The charge of the subcommittee chairs is to oversee the assessment of the courses associated with their area, including reviewing course outcomes, ensuring that the instructors assess the courses associated with their area during the scheduled semester or year, writing the Continuous Quality Improvement (CQI) report for their area in conjunction with the Chair of the Department, and leading a discussion at a faculty meeting regarding the results of the report and recommendations. The charge of the subcommittee members is to map assessment instruments to course outcomes, and to document the results and observations about the class. The subcommittee members should

provide course material to include examples of graded exams, laboratory assignments, and other pertinent material. Subcommittee chairs and members should consult the success metrics given in Table 2 to provide ratings where applicable. The Undergraduate Curriculum Committee chair in conjunction with the subcommittee chairs and the Department Chair reviews the departments program outcomes to ensure coverage when the program outcomes cross boundaries. Table 3 presents the mapping of program outcomes and educational objectives with respect to course outcomes. The results from analysis of course outcomes, Senior Exit Survey, and industry feedback are used to determine whether the programs outcomes are being met. Analysis of the data may result in either immediate action or scheduled action. Immediate actions include revising course content or delivery, revising course outcomes, and adding a course. In addition, upon review of results from Advising Survey and other data, the faculty may make adjustments to the program. This includes student advising procedures, course scheduling, course offerings, and other student support activities or actions that clearly improve the quality of the program without the need for justification from other sources. Scheduled actions are recommendations that are considered during the Phase 2 and Phase 3 processes. Phase 2: Long-term Program and Curriculum Review Approximately every two to three years, the Department reviews the scheduled recommendations from Phase 1, PEOs and the program outcomes, and recommendations from industry, alumni, and the Advisory Board to ensure that each PEO is being met and to revise the POs and course outcomes. Changes made at this level are significant and have broad impact on the program and, thus, require deeper analysis and discussion with the Department faculty at large. Improvements at this level typically result in changes in the course catalog. The review typically is done during a faculty retreat. Phase 3: Educational Objectives and Outcomes Review Once every five years, the Department meets to evaluate the POs for relevance. During this evaluation, the recommendations from the Advisory Board, industry, and our alumni, the results from senior survey and exit interviews, and national trends feedback are reviewed and discussed by the faculty. If warranted, the POs and the PEOs are revised to meet the current needs of our constituencies. In addition, the short-term program changes and long-term curriculum changes are revisited. In addition, the assessment process itself is reviewed and adjusted, if necessary, to better serve its purpose. Table 4 breaks down the assessment instruments used to measure program outcomes.

Table 3: Contributions of Course Outcomes to Program Outcomes and Objectives


CS Course Numbers
Program Outcomes 1401 2401 2402
1c,1d, 2a-2h, 3b, 3d-3l

3195

3320

3331

3335

3350

3360
1c,1e, 1f, 2a-2c, 3b

3432
1a-1e, 2c,2i2m,2q 3a-3c

4310

4311

1-1 1-2

2a,2c, 3a, 3b 1c-1e, 2f,2g, 2k

2a

1a, 2c 2a2c,3a3e

3a

1a

2a-2h 1g,1h, 3c, 3d

2a,2d, 2f, 2g

1a

3a

3a, 3b 2b,2e, 2g,3a, 3b

1-3

1g 1a-1d, 1g, 1i1l, 2a2n

3a

2a, 3b

2b, 3c-3e

2a

2a-2c, 1b-1d

1a-1e, 3a

1-4

1a-1e, 2b-2n, 3a

1-5 1-6 1-7 2-1 2-2 2-3 3-1 3-2 4-1 4-2 5-1 5-2 5-3 Other

1h-1j, 2n 1c, 1d, 1j 1a,1b, 1k, 2a2n

2a,2c, 2j,3a, 3b 1a, 2n 1a-1e, 2a-2n, 3a

2a-2i, 3a-3m 2b,2e, 2g,2h, 3a-3c, 3e,3g3i, 3l 1a,1b, 1e, 2e 1a-1e, 2a-2i, 3a-3m 1c, 2e, 3b 1b,3a, 3c-3e

2a2c,3a3e

2b-2f, 3b,3c, 3f

3a-3c

2b, 2d, 2f

2a,2e, 2g, 3a-3c

3c 1a1e,2a, 2d-2g, 2o,2p, 2r, 3c

1g, 3a 1a, 1i, 1j, 2b, 2c,2h, 3b-3f

1h

1c, 2d, 2e

1b-1d, 1f, 1k, 1l, 2a2e,2g, 3c-3i

3a 2b,3b3e

3d, 3g 2f

1b 3a

3b-3d

3a 3b

2b, 2n, 2p 3c

1e 3a

1e, 1i

2d, 3a 1a, 1b 3e

3b, 3c

1f, 2h

3b, 3c

3d, 3f 3e 3e

3i 3g 3h

3l 3j 3k

3a 2o 2o 1e, 1l 1e

3a-3m

1c

3b,3c, 3e, 3f 1h, 2i, 3i 1h, 2i, 3i 1n, 2h, 3l 1n, 2h, 3l 1m, 2i 1m, 2j

1e 1e, 3b 1d, 2c 2a 1a, 1d, 3c 2b, 2d, 2f

1b, 2i 1b, 2j

2l

2k

1l 1f

1a, 1b, 1d

Table 4: Summary of Program Objectives and Their Assessment.


Program Objectives Overarching Objective: Graduates will be in a profession or graduate program that utilizes their technical expertise. Objective 1: use the theoretical and technical CS knowledge to specify requirements, develop a design, and implement and verify a solution for computing systems of different levels of complexity. Objective 2: convey technical information in both oral and written formats. Measure Alumni Survey: Q2; Q3; and Q17i

Alumni Survey: Q4; Q7; Q17b, f, g, h, l, n, and o; Q19; Q20 Corporate Survey: c, d, e, k, t, and u Alumni Survey: Q17d and e; Q21c and d; Q22; Corporate Survey: n and o

Objective 3: work in teams.

Alumni Survey: Q17c; Q21a Corporate Survey: j

Objective 4: apply a professional code of ethics in the daily practice of their profession.

Alumni Survey: Q17k and o; Q18; Q21b Corporate Survey: l. m, q

Objective 5: stay current in their profession.

Alumni Survey: Q5; Q9; Q17i and m; Q21f Corporate Survey: p, q, s

Appendix VII-B. Assessment Instruments and Results


Alumni Survey Employers Survey (see http://216.235.248.162/report/129355/165000/8759) Senior Exit Interview (by department) Graduating Senior Survey (by university) Academic (Advising ) Survey

College of Engineering Computer Science Alumni Survey Fall 2006

This survey is being administered by the UTEP Center for Institutional Evaluation, Research, and Planning. Your responses will be completely confidential. If you have any questions or technical problems, please contact Denise Carrejo, Ph.D., by email at dcarrejo2@utep.edu or by phone at (915) 747-5117.
Please pick one of the answers below or add your own.

What year did you graduate from UTEP with your undergraduate computer science degree? 2001-2002 2002-2003 2003-2004 2004-2005 2005-2006 Other
...................................................................................................................................................................................................................................................................

Please pick one of the answers below or add your own.

What is your current occupational status? Employed full-time Employed part-time Not employed Self employed Other
...................................................................................................................................................................................................................................................................

Please pick one of the answers below.

Are you currently working in a computer science field (including education)? Yes No

Page 1 of 7

Please pick one of the answers below or add your own.

How would you characterize your current position? Technical Research Teaching Entrepreneurial Management/Administration Other
...................................................................................................................................................................................................................................................................

Please pick one of the answers below or add your own.

Where are you currently employed? El Paso-Cuidad Jurez Region Other Texas Southwest U.S. (NM, AZ, CA, CO) Other U.S. Outside the U.S. (Please specify)
...................................................................................................................................................................................................................................................................

Please pick one of the answers below or add your own.

What is your current educational status? Not currently enrolled in college Full-time graduate student seeking a degree Part-time graduate student seeking a degree Other
...................................................................................................................................................................................................................................................................

Please check all that apply and/or add your own variant.

Have you earned an advanced degree or certificate? (Please check all that apply.) Master's degree in computer science Master's degree in a different engineering discipline Master's degree in a discipline outside of engineering Ph.D. in computer science Ph.D. in a different engineering discipline Ph.D. in a discipline outside of engineering Other
...................................................................................................................................................................................................................................................................

Page 2 of 7

Please pick one of the answers below.

Have you pursued any type of professional and/or continuing education (other than an advanced degree)? Yes No

Please check all that apply and/or add your own variant.

What types of professional and/or continuing education have you sought, and how did you pay for them? (Please check all that apply.) University Courses; Paid By Self University Courses; Paid By Employer University Courses; Paid By Other Short Courses at your Worksite; Paid By Self Short Courses at your Worksite; Paid By Employer Short Courses at your Worksite; Paid By Other Other
...................................................................................................................................................................................................................................................................

Please mark the corresponding circle - only one per line.

Please indicate your level of involvement in any of the following computing, professional, or community organizations: Member
IEEE ACM UPE

Committee Service

Other

Please write your answer in the space below.

Please list any additional computer science, engineering, professional, or community organizations that were not listed above and indicate your level of involvement in each.
................................................................................................................................................................................................................................................................... ................................................................................................................................................................................................................................................................... ................................................................................................................................................................................................................................................................... ...................................................................................................................................................................................................................................................................

Please pick one of the answers below.

Rate the overall quality of your UTEP education. Excellent Good Below Average Poor Unsure

Page 3 of 7

Please pick one of the answers below.

Would you recommend UTEP to a friend or relative who is considering going to college? Definitely Yes Yes No Definitely No Unsure

Please pick one of the answers below.

Rate the overall quality of the computer science program at UTEP. Excellent Good Below Average Poor Unsure

Please pick one of the answers below.

If you had to do it over again, would you choose to pursue the same major at UTEP? Definitely Yes Yes No Definitely No Unsure

Please write your answer in the space below.

Please comment on your responses to the questions above regarding the computer science program at UTEP.
................................................................................................................................................................................................................................................................... ................................................................................................................................................................................................................................................................... ................................................................................................................................................................................................................................................................... ...................................................................................................................................................................................................................................................................

Page 4 of 7

Please mark the corresponding circle - only one per line.

Please rate your agreement with the following statements.The UTEP computer science program:
A Prepared me to apply math principles Prepared me to apply technical computer science knowledge Prepared me to work in teams Fostered my ability write effectively Fostered my ability speak effectively Developed my ability to apply theoretical methods Developed my ability to apply principles of software engineering Prepared me to model realworld processes and objects Encouraged me to attend graduate school Increased my awareness of contemporary technical issues Increased my awareness of contemporary societal issues Use computer science knowledge to specify requirements, develop a design, and implement and verify a solution for computing systems of different levels of complexity. Prepared me to keep up with changes in the field of computing Gave me the broad education necessary to understand the impact of computer science solutions
Page 5 of 7

in a global context Prepared me to serve as a productive computing professional in society Prepared me to serve as an ethical computing professional in society Prepared me for my current position

Legend for Rank Grid table: Please rate your agreement with the following statements.The UTEP computer science program: Columns:
A B C D E - Strongly Agree - Agree - Disagree - Strongly Disagree - Unsure

Please pick one of the answers below.

Have you designed a system, component, or process to meet specific needs? Yes No

Please pick one of the answers below.

Rate the quality of your preparation for this task as a result of the computer science program. Excellent Good Below Average Poor Unsure Not Applicable

Page 6 of 7

Please mark the corresponding circle - only one per line.

Rate the computer science program in terms of preparation for your career advancement. Excellent
Leadership Addressing ethical dilemas Public speaking Technical writing Pursuit of an advanced degree Independent learning

Good

Below Average

Poor

Unsure

Please write your answer in the space below.

Please add comments about any of your responses to the items above:
................................................................................................................................................................................................................................................................... ................................................................................................................................................................................................................................................................... ................................................................................................................................................................................................................................................................... ...................................................................................................................................................................................................................................................................

What were the major strengths and weaknesses of the UTEP computer science program?
Please write your answer in the space below.

Strengths:
................................................................................................................................................................................................................................................................... ................................................................................................................................................................................................................................................................... ................................................................................................................................................................................................................................................................... ...................................................................................................................................................................................................................................................................

Please write your answer in the space below.

Weaknesses:
................................................................................................................................................................................................................................................................... ................................................................................................................................................................................................................................................................... ................................................................................................................................................................................................................................................................... ...................................................................................................................................................................................................................................................................

Please write your answer in the space below.

How could the UTEP computer science program be improved?


................................................................................................................................................................................................................................................................... ................................................................................................................................................................................................................................................................... ................................................................................................................................................................................................................................................................... ...................................................................................................................................................................................................................................................................

When you click on the submit button, your answers will automatically be saved. You will see a Thank You message from the administrators of this survey, and then you may proceed to the UTEP home page.
Page 7 of 7

Final Results from The University of Texas at El Paso College of Engineering Computer Science Alumni Survey 2006-2007
The UTEP College of Engineering Alumni survey for Computer Science alumni was designed to assess the program's success in meeting its objectives through feedback from recent graduates. Items included on the Computer Science Alumni Survey of 2006-07 reflect the criteria specified by the Accreditation Board of Engineering and Technologys (ABET) Engineering Criteria 2000. Items were reviewed and approved by the UTEP College of Engineering administrators and are similar to those used in the 2001 administration of this survey. To facilitate communication with alumni in the future, the survey also included an item where respondents could choose to add or update their email address information. The UTEP Center for Institutional Evaluation, Research and Planning (CIERP) coordinated the administration of this survey and the preparation of reports.

Implementation Procedures

The 2006-2007 Computer Science Alumni Survey was distributed to individuals who graduated from UTEP with a baccalaureate degree in computer science between 2001 and 2006. (Alumni with degrees in other academic programs were invited to complete a separate survey from the College of Engineering.) Individuals who received graduate degrees from the College of Engineering were not included in this survey. Alumni were invited to complete this survey through an invitation sent in mid-December 2006 via email or letter. Those who received an emailed invitation received personalized Web links to complete the survey. Alumni who received a letter were directed to a webpage on CIERP's website where they could access a link to the password-protected survey.

Of the 226 computer science alumni on the contact list developed by the College of Engineering staff and the Office of Alumni Relations, email addresses were available for just 57. Due to time constraints, alumni without working email addresses received just one mailed invitation to complete the survey. Alumni with working email addresses who had not responded to the first invitation were sent a reminder to complete the survey on December 22, 2006. A final reminder was sent on January 18, 2007.
Page 1 of 19

Report Distribution

The College of Engineering Dean receives the overall College results and the results for each of the six College of Engineering academic programs. Each department chair receives the College results, as well as results for the academic program(s) directed by that department.

The results may include references to specific faculty and staff members. To preserve the confidentiality of respondents, it is strongly recommended that all academic leaders use discretion in making and distributing copies of the results.

Response Rate and Confidence Interval

The survey was closed on January 21, 2007 so that final reports of survey results could be generated. Of the 226 alumni CIERP attempted to contact, 37 responded to the survey, and 4 survey invitations were returned as undeliverable. The final response rate for the survey was 16.7%. Given the population size of 226 and sample of 37, the survey is estimated to have a confidence interval of +/-14.7% at a 95% confidence level. In brief , a confidence interval of +/14.7% at a 95% confidence level means that if the survey was administered 100 times, in 95 of those times, the results will fall within +/- 14.7% of the results shown in this report.

Please do not cite, disseminate, or reproduce these results without permission of UTEP's College of Engineering or the Center for Institutional Evaluation, Research and Planning (CIERP). If you have any questions, please contact Denise Carrejo, Ph.D. at CIERP, (915) 747-5117.

Page 2 of 19

What year did you graduate from UTEP with your undergraduate computer science degree?
2001-2002 2002-2003 2003-2004 2004-2005 2005-2006 Other

Response Percent

Response Total

24.3% 21.6% 29.7% 13.5% 8.1% 2.7%

9 8 11 5 3 1

1997 Total # of respondents 37. Statistics based on 37 respondents; 0 filtered; 0 skipped.

What is your current occupational status?


Employed full-time Employed part-time Not employed Self employed Other

Response Percent

Response Total

89.2% 2.7% 2.7% 0% 5.4%

33 1 1 0 2

Graduate Student Working on Master's degree with full ride scholarship Total # of respondents 37. Statistics based on 37 respondents; 0 filtered; 0 skipped.

Are you currently working in a computer science field (including education)?


Yes No

Response Percent

Response Total

97.1% 2.9%

34 1

Total # of respondents 37. Statistics based on 35 respondents; 0 filtered; 2 skipped.

Page 3 of 19

How would you characterize your current position?


Technical Research Teaching Entrepreneurial Management/Administration Other

Response Percent

Response Total

66.7% 11.1% 0% 0% 19.4% 2.8%

24 4 0 0 7 1

Project Management Total # of respondents 37. Statistics based on 36 respondents; 0 filtered; 1 skipped.

Where are you currently employed?


El Paso-Cuidad Jurez Region Other Texas Southwest U.S. (NM, AZ, CA, CO) Other U.S. Outside the U.S. (Please specify)

Response Percent

Response Total

58.3% 11.1% 13.9% 16.7% 0%

21 4 5 6 0

Total # of respondents 37. Statistics based on 36 respondents; 0 filtered; 1 skipped.

What is your current educational status?


Not currently enrolled in college Full-time graduate student seeking a degree Part-time graduate student seeking a degree Other

Response Percent

Response Total

78.4% 8.1% 10.8% 2.7%

29 3 4 1

Graduated from my Master in Information Technology Total # of respondents 37. Statistics based on 37 respondents; 0 filtered; 0 skipped.

Page 4 of 19

Page 5 of 19

Have you pursued any type of professional and/or continuing education (other than an advanced degree)?
Yes No

Response Percent

Response Total

48.6% 51.4%

18 19

Total # of respondents 37. Statistics based on 37 respondents; 0 filtered; 0 skipped.

Please indicate your level of involvement in any of the following computing, professional, or community organizations:
Member Committee Service Other Response Total

IEEE ACM UPE

42.9% (3) 56.2% (9) 70% (7)

0% (0) 6.2% (1) 0% (0)

57.1% (4) 37.5% (6) 30% (3)

7 16 10

Total # of respondents 37. Statistics based on 17 respondents; 0 filtered; 20 skipped.

Please list any additional computer science, engineering, professional, or community organizations that were not listed above and indicate your level of involvement in each.
SHPE/MAES Institute for Transportation Engineers (ITE) REALTOR N/A

Response Percent

Response Total

Total # of respondents 37. Statistics based on 4 respondents; 0 filtered; 33 skipped.

Rate the overall quality of your UTEP education.


Excellent Good Below Average Poor Unsure

Response Percent

Response Total

37.8% 56.8% 5.4% 0% 0%

14 21 2 0 0

Total # of respondents 37. Statistics based on 37 respondents; 0 filtered; 0 skipped. Page 6 of 19

Page 7 of 19

Would you recommend UTEP to a friend or relative who is considering going to college?
Definitely Yes Yes No Definitely No Unsure

Response Percent

Response Total

54.1% 40.5% 2.7% 2.7% 0%

20 15 1 1 0

Total # of respondents 37. Statistics based on 37 respondents; 0 filtered; 0 skipped.

Rate the overall quality of the computer science program at UTEP.


Excellent Good Below Average Poor Unsure

Response Percent

Response Total

29.7% 62.2% 8.1% 0% 0%

11 23 3 0 0

Total # of respondents 37. Statistics based on 37 respondents; 0 filtered; 0 skipped.

If you had to do it over again, would you choose to pursue the same major at UTEP?
Definitely Yes Yes No Definitely No Unsure

Response Percent

Response Total

54.1% 21.6% 10.8% 5.4% 8.1%

20 8 4 2 3

Total # of respondents 37. Statistics based on 37 respondents; 0 filtered; 0 skipped.

Page 8 of 19

Please comment on your responses to the questions above regarding the computer science program at UTEP.
The software engineering program and reserach group was excellent and provided the necessary tools for me to work in industry The CS program gave me a strong foundation of knowledge that has allowed me to succeed in every one of my professional endeavors. There is room for improvement. Now that I look back I feel I could have been more involved in knowing my teachers & fellow students, but I felt the environment was not very friend/group oriented. By knowing the teachers & students I would have probably done a better job at school and felt more comfortable there, but I did not. I always came home to do my work, because I was uncomfortable. Maybe if there would be some more involvment from the teachers to get students together, this might help to bring the program together. Perhaps the peer lead learning is the first step. The professors at UTEP are either amazing or mediocre. Most of the math professors were aweful! The only two math professors I had that were of value were Dr. Guthrie and Dr. Duval! Dr. [name deleted] was the worst professor I ever had. He did not teach us. We complained to the chair several times and other people in other departments complained but the math department did not care. I had private tutoring for discrete math and both my CS professors and my tutor (MS in Math) said Dr. [name deleted] was not teaching the material correctly. I feel he cheated me from having a solid understanding of discrete math, a course vital for sucess in computer science. I will never forgive UTEP's math department for allowing him to continue to teach even with so many students complaining. Great program. Some improvements in the diversity of the courses would make the program more attractive. Some (very few) CS instructors are simply outstanding, some are a ok, and others are simply not professional enough, i.e. discriminatory, feminist, mediocre, unprepared, or a mix of all. I did feel a harm done in my education at UTEP, and if it were not for some of those outstanding professors, I would have completely regretted my education at UTEP. The Computer Science department needs to do more research on what are employers working on and define from the beginning of the program if the student is going towards the development/management area of computer science or towards the research/education part of it. From my experience, 80% of what I am currently working on was learned outside the classroom, and this is a shame. However, I would not have this postion without an official degree. Now, this was a couple of years ago, maybe the department has changed since then. I would definetly like to explore other engineer field. I think the CS program is good but I do not think is not worthy of recommendation. I just realize that there are other disciplines that I enjoy as well. Thank you for a good program, and for helping to make me a competent programmer, developer, and engineer. I was able to experience going to a large University and going to UTEP as well. At UTEP the computer science department was smaller which made it more personalized and a better learning environment. I gained more from going to UTEP in the CS department than going to a larger more prestigious University because of that. Quality of the faculty body is really good, however the material being covered in

Response Percent

Response Total

16

Page 9 of 19

classes is not as good as them, there is important material/ technology that is not being covered (i.e. robotics, media technology, Web/ Grid services technologies) I wish there would be more diversity in the classes and research. They have been hiring professors in the past semesters, but most of them are doing research in the same areas other professors are. I think there are many interesting areas out there, and they should consider hiring someone with expertise in those areas World-class faculty! I rate the computer science program only as 'Good' due to a couple of classes that were not very challenging in comparison with the rest of the curriculum at the time. I'm sure this has improved as while I was still attending one of those classes was being revamped. While there were some good instructors in the computer science program, I would rate the overall program average or below average. When I was taking the senior project class (Software Engineering) I met a few people who knew very little about theory or practice of computer science and programming. How were they allowed to make it that far into the degree program? Because some of the classes were too easy and passing did not mean a student had to understand the material. I also remember a comment during my exit interview with the then chair of the computer science department: when we were talking about graduate school he mentioned that if I decided to pursue a higher degree that I should consider better schools. I believe that the program is great. However, I saw a number of the great teachers leave for different reasons during my stay there. UTEP is a school and should be treated as such. Therefore, the best TEACHERS should be held on to tightly. Great teachers mold great students!! I also feel that the content of the studies should focus a little more on real world topics, i.e. web pages, server management, OS details, etc. Overall though, I believe the program is a great one that I am glad to have had the opportunity to go through. Total # of respondents 37. Statistics based on 16 respondents; 0 filtered; 21 skipped.

Page 10 of 19

Please rate your agreement with the following statements.The UTEP computer science program:
Strongly Agree Agree Disagree Strongly Disagree 2.7% (1) 2.7% (1) Unsure Response Total

Prepared me to apply math principles Prepared me to apply technical computer science knowledge Prepared me to work in teams Fostered my ability write effectively Fostered my ability speak effectively Developed my ability to apply theoretical methods Developed my ability to apply principles of software engineering Prepared me to model realworld processes and objects Encouraged me to attend graduate school Increased my awareness of contemporary technical issues Increased my awareness of contemporary societal issues Use computer science knowledge to specify requirements, develop a design, and implement and verify a solution for computing systems of different levels of complexity. Prepared me to keep up with changes in the field of computing Gave me the broad education necessary to understand the impact of computer science solutions in a global context Prepared me to serve as a productive computing professional in society

32.4% (12) 56.8% (21)

56.8% (21) 37.8% (14)

2.7% (1) 0% (0)

5.4% (2) 2.7% (1)

37 37

48.6% (18) 29.7% (11) 24.3% (9) 45.9% (17) 56.8% (21)

43.2% (16) 45.9% (17) 37.8% (14) 37.8% (14) 40.5% (15)

5.4% (2) 16.2% (6) 24.3% (9) 2.7% (1) 0% (0)

2.7% (1) 5.4% (2) 8.1% (3) 2.7% (1) 2.7% (1)

0% (0) 2.7% (1) 5.4% (2) 10.8% (4) 0% (0)

37 37 37 37 37

45.9% (17) 43.2% (16) 22.2% (8) 13.5% (5) 62.2% (23)

35.1% (13) 32.4% (12) 55.6% (20) 37.8% (14) 32.4% (12)

16.2% (6) 8.1% (3) 19.4% (7) 27% (10) 0% (0)

2.7% (1) 8.1% (3) 0% (0) 16.2% (6) 2.7% (1)

0% (0) 8.1% (3) 2.8% (1) 5.4% (2) 2.7% (1)

37 37 36 37 37

30.6% (11)

50% (18)

13.9% (5)

2.8% (1)

2.8% (1)

36

29.7% (11)

51.4% (19)

10.8% (4)

0% (0)

8.1% (3)

37

48.6% (17)

42.9% (15)

8.6% (3)

0% (0)

0% (0)

35

Page 11 of 19

Prepared me to serve as an ethical computing professional in society Prepared me for my current position

54.1% (20)

35.1% (13)

2.7% (1)

2.7% (1)

5.4% (2)

37

35.1% (13)

43.2% (16)

13.5% (5)

2.7% (1)

5.4% (2)

37

Total # of respondents 37. Statistics based on 37 respondents; 0 filtered; 0 skipped.

Have you designed a system, component, or process to meet specific needs?


Yes No

Response Percent

Response Total

91.9% 8.1%

34 3

Total # of respondents 37. Statistics based on 37 respondents; 0 filtered; 0 skipped.

Rate the quality of your preparation for this task as a result of the computer science program.
Excellent Good Below Average Poor Unsure Not Applicable

Response Percent

Response Total

29.4% 61.8% 8.8% 0% 0% 0%

10 21 3 0 0 0

Total # of respondents 37. Statistics based on 34 respondents; 0 filtered; 3 skipped.

Rate the computer science program in terms of preparation for your career advancement.
Excellent Good Acceptable Poor Unsure/Not Applicable 2.7% (1) 5.4% (2) 2.8% (1) 0% (0) 0% (0) 0% (0) Response Total

Leadership Addressing ethical dilemas Public speaking Technical writing Pursuit of an advanced degree Independent learning

29.7% (11) 32.4% (12) 16.7% (6) 35.1% (13) 43.2% (16) 45.9% (17)

37.8% (14) 40.5% (15) 36.1% (13) 40.5% (15) 37.8% (14) 43.2% (16)

27% (10) 21.6% (8) 36.1% (13) 18.9% (7) 8.1% (3) 10.8% (4)

2.7% (1) 0% (0) 8.3% (3) 5.4% (2) 10.8% (4) 0% (0)

37 37 36 37 37 37

Total # of respondents 37. Statistics based on 37 respondents; 0 filtered; 0 skipped.

Page 12 of 19

Please add comments about any of your responses to the items above:

Response Percent

Response Total

5
The program was taught for technical purposes, book oriented, not real-world experience. Plenty of theory, but hardly any real-world application. Leadership, and public speaking seemed to be the downfall for computer science students. Hardly anyone was good at this. No one every told me how to keep up to date with the every changing world of technology. It seemed that independent learning is all that I learned how to do well. none Not too much emphasis neither on writing technical reports nor giving technical presentations As part of my undergraduate curriculum, I took a public speaking course, which was excellent. I cannot remember if this was a required course, or not. If it was not, it should be. N/A. Total # of respondents 37. Statistics based on 5 respondents; 0 filtered; 32 skipped.

What were the major strengths and weaknesses of the UTEP computer science program?

Page 13 of 19

Strengths:

Response Percent

Response Total

28
The professors experience and availability to assist the students. Good professors. Intersting classes. Lots of theory. Instructor to student ratio. Very well qualified professors, who knew a lot in there area of their expertise. Usually always available for questions. Several computers to work on for independent study. Teacher Aids were also very helpful and knowledgable. - Dr. K. Ward, Frank Fdz., Prof. Bell, Dr. Kreinovich, Dr. Roach, Dr. Teller - Good & caring professors, interested in student's learning

Relatively small classes Overall experience of working on a team yet being independent. Professors like Dr. Novick and Dr. Modave who encouraged formal education after graduation. These professors cared about the students and their success. addressing ethical dilemas, methodical analyzation Software Engineering Corse The great instruction and guidance in the software engineering area, specially in: - The extensive focus on correctness of software specifactions and requirements writing. - The amount of time dedicated to the software engineering life cycle and the focus on the planing and design steps. The UTEP computer science program provides a very strong technical foundation for students that intend to continue their studies, as well as those students that intend to enter the professional workforce to do software development. I think that the program, as it currently stands, provides an excellent balance between the two paths. Some of the "Strengths and Weaknesses" are relative to the Instructor that chance or luck delivered at the given time a student applied for a class, thus it really depended on how good a particular instructor is. Some of the "Strengths and Weaknesses" apply exclusively to the students will power to take advantage of the tools freely provided by the CS department, which were many, and this I do consider a big Strength of the CS Program, for it provided many tools for the willing student.

very proactive Good professors, Good equipment, Research grants, ACM. Knowledge of different softwares. The department prepares students to be self-reliant engineers. It gives students the tools to see patterns in the changing technology, and helps make them flexible to the rise of new technologies, so that while the department may not explicitly teach the up and coming trends in the technical world, the skills that are learned allow them to easily adapt and improve upon the technology. Small class sizes and individual attention to students. The availability of faculty and the undergrad research opportunties.

Page 14 of 19

The Software Engineering classes are challenging but they are a valuable learning experience and I have been able to use in my career. Diversity of Faculty Funding for Undergraduates

Friendly faculty, good structure in core classes Theoretical views of Software Design and implementation. Very strong technical and software engineering skills. Teaches more than the basics and creates a mindset of hunger for knowledge. Good software engineering course. Good math curriculum. Most other comp science classes were relevant, challenging and taught well. A few strong professors. Small enough that a student can interact with professors on a regular basis. Strengths are in the technical preparation of the student - algorithm development, programming, problem solving, mathematics, etc. - Coursework Total # of respondents 37. Statistics based on 28 respondents; 0 filtered; 9 skipped.

Page 15 of 19

Weaknesses:

Response Percent

Response Total

26
The availability of the classes being offered. The labs gradually improved and are top of the line at this point but at the beginning it was not the case. Too much theory too little real world experience. Alignment with technology based, high paying corporations Needs more real-world experience. More group activities, class work related as well as non-class related. I felt that it could use more exposure to Network Administration, because it seems this is an ever growing industry. - Technical infrastructure - Conservative degree (I didn't take a single class in latest technology e.g. Web development, PHP, JSP, XML, AOP) - Lack of emphasis in C/C++. I am not saying that Java is the wrong way to go, but at least one advanced class in C++ would have helped The environment is bland and ugly when it comes down to the interior of the building, no consistency of flooring and paint. International professors who did not speak english well. The math department was particularly bad. The Math professors public speaking and technical writing Need to have a classes that teach students to reuse code. This is a major aspect of my daily work and something that was missing from my UTEP studies Some classes are made to easy to everyone can pass. The lack to embrace new trends rather quickly, specifically practical courses. Specially courses that deal with emerging techology, new programming languages, new security policies, ethics and changes that affect the way computer scientist solve problems in the real world. The program is strong in providing students with the skills necessary to develop new software, but I think that the program could do more to prepare students to handle the challenges of enhancing legacy software; this might be handled by covering topics such as refactoring techniques, as well as providing students with the opportunity to learn how to perform a cost/benefits analysis. I think that the program could also do more to provide students with some experience in developing systems-of-systems. do not pay much attention to underrgad development. only to graduate students Not enough team work, some languages such as C#, ASP.NET (which are widely used now) were not taught, only one big project (Software engineering) C++ was used but not taught like Java was taught. The electives and a upper level undergraduate were limited. Often we were allowed to take a graduate course. However since the material was taught at an upper level it was hard to follow along and keep up. Lack of professional development instruction. For example tutorials on recent technologies. I noticed other universities offer Operating Systems as a requirement course, back then it was only an elective in the Computer Science Department. I wish I had taken this course because my other collegues use and understand more on threads, scheduling, etc. They told me they learn it in that course. I wish the networks course was more challenging in providing labs and hands-on to networking and hardware. Page 16 of 19

Degree Plan is not comprehensive enough Not enough technical practice I thihk math classes should be revised. There are good math classes that should be, if not required - at least recommended as optional; Not too much diversity of classes; once there was offered a course in Cryptography, and never offered again Creating solutions for real world application and needs A bit dated on the programming languages used as foundations. Lacks more core info security classes. A class or two were weak. Some courses were too easy. Lack of choice in electives. Weaknesses are in spoken language preparation, writing, editing, presenting, etc. - Need more real world experience - Loss of great TEACHERS!! Total # of respondents 37. Statistics based on 26 respondents; 0 filtered; 11 skipped.

Page 17 of 19

How could the UTEP computer science program be improved?

Response Percent

Response Total

23
More support for the outreach programs or efforts done by the students such as the acm student chapter and several other organizations. More on-hand approch to learning about the real world software engineering world. Work on the weakness above. All commented above. - Forget about the awful start with Scheme or other toy languages - A class that covers more practical latest tech. and trends, (AJAX instead of Quantum) - An advanced class in C++, OR (C++ instead of SmallTalk in the Design & Implementation) - Technical writing and technical public speaking - Take advantage of practically free Software provided by MS or IBM, and teach students how to use it - Teach real world conventions, (e.g. package naming, coding standards, SCM, source control) in more than one class, not just SE. In other words, make all this best practices second nature.

Use industry tools for hands on experience. Modernize the building by doing some remodeling and painting. Allow the CS department to teach discrete math. In many universities, this is a CS course. Math professors like [name 1 deleted] and [name 2 deleted] butchered the material. When several students complained, the math department ignored us. There was even a shirt made by the local ACM chapter that said "F is for [name deleted]". Focus more on public speaking and technical writing in early stages of program. Bring faculty that has more field experience, thus balancing the researchinvestigation and the practical computer science in the program. I would like to see the program provide a greater emphasis on the development and evaluation of algorithms. One improvement I would love to see done... is having the UTEP CS Program be truly selective on Instructors and their quality of instructing, not by mere awards given, or by status or title, but by actually attending on one of their classes and acknowledging whether they truly are good instructors or simply, by having an outside party rate their effectiveness and not some inner comrade that thinks X instructor is good or not. put mor effort into getting undergrad students involved in activities that increase their motivation to study deeper into topics for CS. Also, to guide them in ways that bring them closer to a graduate school degree. Every class should implement team work. It would help a lot if most classes would require a semester-long project. Most of my learning came from sitting in front of the computer and "creating" something, not from writing with a pencil (tests)... and although this would be impossible, I would increase the number of projects and decrease the number of paper tests. Most classes should require student presentations (i.e. PowerPoint) throughout the semester. Classes being offered more than just one time during the semester and being offered every semester. Include more electives offered and an undergraduate level while still keeping them Page 18 of 19

challenging. By adding more applied courses in relvent technologies. More hands-on, lab work, with the robotics, networks, databases. fix weaknesses Less theory more practical. Have classes specific to network topologies and how they are applied in the real world. Raise the standard for classes. (e.g., make some of them harder, don't make any classes easy, etc.). Make it easier to find out what kinds of research and project are ongoing. It would be nice if the CS home page had a link to a research and projects page. The better colleges make it easy to find out what work is being done by the professors and the students. UTEP CS should do that as well. - KEEP GREAT TEACHERS (Ward, Roach, Novick) - Add more real world experience Total # of respondents 37. Statistics based on 23 respondents; 0 filtered; 14 skipped.

Page 19 of 19

Senior Exit Interview

Name: Date:

Youve spent a lot of time in this department, so you maybe in a good position to give us some feedback so we can improve the department. 1. Personal history Please tell us about yourself, whatever youre willing to share. For example, where did you grow up? What are your parents doing? Where did you go to school? Have you been working? etc. 2. Why UTEP? Why did you choose UTEP? 3. Expectations for CS We view CS 1401 as the entrance into our program. As you were taking CS 1401, what did you expect about the rest of your program, and now that youre finishing, was the program the same as you expected? 4. Experiences with CS Would you share experiences you lived at UTEP that were especially good or especially bad? 5. Faculty Is there a faculty member that you considered especially good or especially bad? 6. Things to keep We go through many changes in the department over the years, and you probably witnessed some of those. Is there something you observed here that was so good that we should make sure to keep it through future changes? 7. Things to change If you were in the position of department head, what would you do to improve the department? 8. Plans What are your plans for when you graduate? 9. Objectives The department has some educational objectives. Can you tell us if we did a good job in teaching you the following: a. Theory and methods b. Applications c. Teamwork d. Ethics and society e. Life-long learning (did we teach you how to continue learning by yourself after you graduate?) f. Graduate school Did we tell you that graduate school is a possible next step in your career? 10. Other Is there anything you would like to add? We try to keep track of all our alumni. Beatriz agreed to keep a list of alumni up to date. Wed like to ask you to communicate any new e-mail or physical address change to her. We may use this list in the future for: organizing alumni reunions, help alumni keep in touch with each other, contact alumni for talking to new students, future surveys after youve been out for a while, fundraising. About fundraising, it is not your priority now. You need to pay off your loans, set up your retirement funds, perhaps raise a family. If they contact you too soon, you decline. But there is a time in your career when you are considering where to donate some of your money for maximum benefits to others. It may be 5, 10 or 15 years out. We hope you become successful and rich :-) and that youll remember us at that time. Good luck with the rest of your semester and in your career.

Summary Exit interviews, 05-06 academic year. Experiences in CS. Topics mentioned by at least 3 students: Good: software engineering class, making friends, architecture I class (robot), multicultural environment, challenging class assignments, professors, good TAs, research groups, involvement in ACM. Bad: trouble in early classes. Other topics mentioned: Good: team work, CS 123, being appreciated, learning java, being a peer leader, computer security, video game programming. Bad: architecture I class, faculty leaving, UTEP admin, parking, tuition increases, taking too many courses at once, scheduling, registration, time crunch, team work, witnessing cheating, some math courses, some professors not flexible, advising, math professors. Techniques that work. Topics mentioned by at least 3 students: Making difficult subject easy to understand, explain well, available and willing to help, personal approach (like friend), real world experience, interesting, challenging but doable, interest in student learning, enthusiasm, well organized, make students think, knows the material. Other topics mentioned: Doesnt just read from slides, industry experience, facilitate, advising help, patience, office hours, push students to their best, involvement in research, provides partly written programs for assignments, straight to the point, give inspiration, lots of small assignments following class material, open doors, power point slides, good exams, humor, personal experiences, smart, examples, high expectations, good focus, spend time to explain things, lectures followed by exercises, good feedback. Things to keep. The topics mentioned by at least 3 students: Faculty members, staff, resources availability, continued lab improvement, software engineering class, software engineering lab, curriculum, small size department, research groups. Other topics mentioned: Faculty interacting with students, beginning CS in Java, schedule, advising, web based computing, computer security, professional orientation, giving lots of assignments, teaching methods, strong background of professors, TA availability, talks/seminars, variety of topics, ACM student chapter, handson experience, invited speakers, student help in early classes, students concern being heard, social events. Things to change. The topics mentioned by at least 3 students: Extended labs hours, more student involvement in research, scheduling, merge Architecture I and II into one class, more special topics/electives, more hands-on in class, other programming languages like C++,

avoid instructors without Ph.D. or using Ph.D. students for instructors, lounge area for students, fix equipment. Other topics: More student involvement in activities, less turnaround in faculty, software engineering class, more computer security, add game programming class, add web based programming, send some professors to improve their teaching, more sections in some classes to help scheduling, consider interdisciplinary program, add mens room on 3rd floor, more classrooms, make it easier to recover after failing a class, teach more on software testing, more students to seminars, CS catalog descriptions, make different tracks in curriculum, coop participation, make OS optional, more programming languages, more technology, more practice class, parking, make SE shorter, some invited professors teach a class, more internet/network courses, more hardware classes, more group work, more TAs, improve TA interactions with students, building, better prerequisite for CS 3360, join rest of engineering, improve studentprofessor communication, service from front office, building security, not enough computers, ask for student evaluation during semester instead of at the end, discrete math more related to CS, more exposure to Unix. Plans for after graduation. Grad school: 15 Has work: 10 Looking for work: 24 Undecided: 6

Summary Exit interviews, 04-05 academic year. Experiences in CS. Topics mentioned by at least 3 students: Good: involvement in ACM, involvement in research, software engineering class, making friends, internship. Bad: none. Other topics mentioned: Good: projects, video game programming, technical electives, extracurricular activities, CS 1401, the available help, engineering expo, experience with Candle Lighters, variety of courses, robotics, work as a workstudy, automata, tutoring, being a peer facilitator, TCM, work with grad students, being a TA, Lockheed Martin experience. Bad: advising, parking, his poor course planning, Univ. not helping students, classes outside CS, hard assignments, commute, managing work and school. Things to keep. The topics mentioned by at least 3 students: The labs, the software engineering lab, research for undergrads, faculty members, open doors, software engineering class. Other topics: projects, group work, atmosphere, 1 language in 3 course sequence, help available, curriculum, ACES, Java as language, technical electives, assembler, UNIX and Linux, graphics, robotics, network administration, team teaching, personal experience in classroom, diversity in classroom, diversity in faculty members (age, background, experience, etc), 4390 courses, tutors, collaboration with other depts, diversity in topics. Things to change. The topics mentioned by at least 3 students: more electives, course scheduling, more exposure to languages other than Java, access to wireless. Other topics: better evaluation of teamwork, experience with writing and documentation before SE, interaction with Engineering, curriculum sequencing (be sure students know what theyre supposed to know), video game course, C and C++, real world experience, another lab, access to computers, more required courses, security courses, better adjustment of air conditioning, add labs to some courses, bring back robotics, better software engineering grading, fridge for students, more sections for large classes, more computers, go back to just a few advisors, slow software installation, change some 4390 to regular class, bigger building, encouragement of profs and students, more hands-on, less theory. Plans for after graduation. Grad school: 17 Has work: 5 Looking for work: 16 Undecided: 7

Educational objectives.

Fall 2004 Objective Theory and Methods Applications and teamwork Ethics and society Life-long learning Graduate school Positive 18 14 18 17 17 Negative 0 4 0 1 1 Positive 100% 78% 100% 94% 94% Goal 95% 95% 95% 95% 95% Outcome satisfied not satisfied satisfied not satisfied not satisfied

Spring/Summer 2005 Objective Theory and Methods Applications and teamwork Ethics and society Life-long learning Graduate school Positive 27 25 22 25 25 Negative 0 2 5 2 2 Positive 100% 93% 81% 93% 93% Goal 95% 95% 95% 95% 95% Outcome satisfied not satisfied not satisfied not satisfied not satisfied

Note: many students would like to answer "applications" and "teamwork" as different questions.

Recommendations. Continue our thrust to incorporate more exposure to languages other than Java. More exposure to Unix/Linux was also a problem we identified. Consider the scheduling of our courses and how it may conflict with required courses outside the department, especially for the first two years.

Educational Objectives.

Fall 2005 Objective Theory and Methods Applications Teamwork Ethics and society Life-long learning Graduate school Positive 21 20 17 20 21 21 Negative 0 1 4 1 0 0 % Positive 100% 95% 81% 95% 100% 100% % Goal 95% 95% 95% 95% 95% 95% Outcome satisfied satisfied not satisfied satisfied satisfied satisfied

Spring/Summer 2006 Objective Theory and Methods Applications Teamwork Ethics and society Life-long learning Graduate school Positive 35 31 34 34 33 33 Negative 0 4 1 1 2 2 % Positive 100% 89% 97% 97% 94% 94% % Goal 95% 95% 95% 95% 95% 95% Outcome satisfied not satisfied satisfied satisfied not satisfied not satisfied

Recommendations. Build on our strengths: students really value the quality of our faculty members, involvement in research, open door policy, software engineering class, small size department. This is well line up with our departments mission. We should keep this up. New concerns: The students seemed to have been affected by faculty turnaround. We need to consider students when making decisions that could increase faculty turnaround. Continued concerns: We should continue our thrust to incorporate more exposure to languages other than Java. Consider the scheduling of our courses and how it may conflict with required courses outside the department.

Summary Exit interviews, 03-04 academic year. Experiences in CS. Topics mentioned by at least 3 students: Good: The faculty and their availability. Research experience. Bad: none. Other topics mentioned: Good: ACM involvement, video game programming, atmosphere, his work for the department, collaboration between faculty, networks course, ACES, clean building, computer security, PACES lab, software engineering course, the curriculum, being a TA. Bad: the printer, software engineering too long and unfair grading, parking, witnessing a lot of cheating, registration, team taught courses, security on computers too restrictive. Things to keep. The topics mentioned by at least 3 students : availability of faculty and open doors (mentioned by a lot of students), software engineering, class size, ACES, the faculty, architecture class, course variety. Other topics: Java, curriculum, involvement in research, tutoring, website, small department, passwords in main lab, student advising, group work, Unix, graphics course, AI and robotics, assignments and projects, student involvement in faculty hiring, technology in classroom, ACM/UPE, department atmosphere, lab for data structures, CS 3360, labs for intro classes. Things to change. The topics mentioned by at least 3 students: more exposure to unix/linux, a couch or chairs where to sit, the building, more extracurricular activities, larger lab, more lab hours, more exposure to C and/or C++, more networks, more advanced classes and possibility of following tracks. Other topics: add graphics, web services, course on hardware, refrigerator for students, improve course conflicts, add wireless network, less math, more sections, more tutors, improve availability of TA and tutors, SSEAL computers, add robotics and AI, better TAs, more office hours, course variety, PACES computers, get rid of physics courses, software engineering worth more credits, another computer lab for networking, require internship, tutorials, faculty training (to be up to date with newer technology), building colors, ask TAs to attend classes, grading of group work, web design course, add wireless in the building, computer security in CS 1401, paint the building. Plans for after graduation. Grad school: 13 Has work: 9 Looking for work: 23 Undecided: 6

Educational objectives.
Fall 2003 Objective Theory and Methods Applications and teamwork Ethics and society Life-long learning Graduate school Positive 18 16 16 18 18 Negative 0 2 2 0 0 Positive 100% 89% 89% 100% 100% Goal 95% 95% 95% 95% 95% Outcome satisfied not satisfied not satisfied satisfied satisfied

Spring/Summer 2004 Objective Theory and Methods Applications and teamwork Ethics and society Life-long learning Graduate school Positive 32 31 28 29 32 Negative 0 1 4 3 0 Positive 100% 97% 88% 91% 100% Goal 95% 95% 95% 95% 95% Outcome satisfied satisfied not satisfied not satisfied satisfied

UTEP GRADUATING SENIOR SURVEY 2002-03


Results: University and Computer Science Totals RESPONSE RATES UTEP Total 2002-2003 Graduating Seniors 1851 Responses % 1329 71.8 Department of Computer Science Responses Total 2002-2003 Graduating Seniors % 46 32 69.6 UTEP n = 1285 156 502 627 % 12.1 39.1 48.8 Computer Science n = 31 % 1 3.2 15 48.4 15 48.4 UTEP 2. What is your major? See Table 2.1 for Responses UTEP 3. What is your second major, concentration, or specialization? See Table 3.1 for Responses UTEP 4. What is your minor? See Table 4.1 for Responses UTEP n = 1107 206 814 87 % 18.6 73.5 7.9 Computer Science n = 30 % 0 0.0 28 93.3 2 6.7 n = 757 n = 433 n = 1326

1. When do you plan to graduate? a. Summer 2002 b. Fall 2002 c. Spring 2003

5. Will you complete a minor in education? a. Yes b. No c. Unsure

UTEP GRADUATING SENIOR SURVEY 2002-03


Results: University and Computer Science Totals PLANS FOLLOWING GRADUATION 6. What are your plans after graduation? (mark all that apply)1 a. Continue working in present job b. Work in an advanced position for current employer c. Work in a job recently obtained d. Look for a job e. Start a business f. Attend graduate school g. Do volunteer work h. Enter military service i. Do not plan to work at this time j. Undecided k. Other:2 UTEP n = 1329 118 108 78 766 37 641 70 29 15 40 65 % 8.9 8.1 5.9 57.6 2.8 48.2 5.3 2.2 1.1 3.0 4.9 UTEP n = 1308 322 45 104 37 7 55 14 2 7 35 171 53 9 54 2 22 7 9 22 14 484 168 2 161 % 24.6 14.0 32.3 11.5 2.2 17.1 4.3 0.6 2.2 10.9 13.1 31.0 5.3 31.6 1.2 12.9 4.1 5.3 12.9 8.2 37.0 12.8 0.2 12.3 Computer Science n = 32 % 8 25.0 3 9.4 2 6.3 17 53.1 4 12.5 14 43.8 2 6.3 0 0.0 0 0.0 0 0.0 0 0.0 Computer Science n = 32 % 11 34.4 0 0.0 0 0.0 9 81.8 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 1 9.1 1 3.1 1 100.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 8 25.0 9 28.1 0 0.0 3 9.4

7. Do you have any immediate plans to attend graduate or professional school? a. Yes, plan to re-enroll at UTEP: Which UTEP college?3,4 College of Business Administration College of Education College of Engineering College of Health Sciences College of Liberal Arts College of Science Other Unsure No response b. Yes, plan to enroll at another institution: What university?5,6 Texas college or university NMSU/other New Mexico Out of state (not New Mexico) Interstate college (Phoenix, Webster) Law school Medical school Other Unsure No response c. Yes, but do not plan to enroll yet d. No, did not apply e. No, applied but was not accepted f. Undecided
1,3,5 2,4,6

Totals may exceed 100% due to multiple responses Individual comments are listed in Appendix A.

UTEP GRADUATING SENIOR SURVEY 2002-03


Results: University and Computer Science Totals PLANS FOLLOWING GRADUATION UTEP 8. Have you taken or have you registered to take any of the following exams? (mark all that apply)1 a. Graduate Record Exam (GRE) Yes No Unsure b. Graduate Management Admission Test (GMAT) Yes No Unsure c. Miller's Analogy Test (MAT) Yes No Unsure d. Law School Admission Test (LSAT) Yes No Unsure e. Medical College Admission Test (MCAT) Yes No Unsure % Computer Science n = 32 5 27 0 n = 25 0 24 1 n = 24 0 23 1 n = 24 0 24 0 0.0 100.0 0.0 n = 24 0 0.0 24 100.0 0 0.0 Computer Science n = 32 % 2 6.3 0 3 1 1 2 0 22 0.0 9.4 3.1 3.1 6.3 0.0 68.8 0.0 95.8 4.2 0.0 96.0 4.0 15.6 84.4 0.0 %

n = 1203 120 10.0 1059 88.0 24 2.0 n = 1081 7 0.6 1062 98.2 12 1.1 n = 1053 0 0.0 1049 99.6 4 0.4 n = 1083 35 3.2 1039 95.9 9 0.8 n = 1080 31 2.9 1045 96.8 4 0.4 UTEP n = 1329 86 47 41 82 21 73 45 904 % 6.5 3.5 3.1 6.2 1.6 5.5 3.4 68.0 UTEP n = 1284 596 171 110 407 % 46.4 13.3 8.6 31.7 UTEP n = 1304 871 244 189 % 66.8 18.7 14.5

9. If you are obtaining a new job soon, how did you obtain the position? a. UTEP Career Services (resume referral, career fair, on-campus interview) b. Direct contact using employer directories c. Internet/Web job announcements d. Through a previous internship, co-op, or research project e. Referral by a UTEP department or faculty member f. Networking through personal connections g. Other (newspaper, public employment services, etc) Specify2: h. Not applicable

10. If you plan to continue working in your present job or to start a new job soon, is it related to your major at UTEP? a. Yes, directly related b. Yes, somewhat related c. No, not related d. Not applicable

Computer Science n = 29 % 16 55.2 4 13.8 3 10.3 6 20.7 Computer Science n = 32 % 28 87.5 2 6.3 2 6.3

11. Are you WILLING to relocate for a job out of the El Paso/ Las Cruces/Ciudad Jurez area? a. Yes b. No c. Unsure
1 2

Totals may exceed 100% due to multiple responses Individual Comments are listed in Appendix A.

UTEP GRADUATING SENIOR SURVEY 2002-03


Results: University and Computer Science Totals UTEP n = 1243 421 469 353 % 33.9 37.7 28.4 Computer Science n = 31 % 13 41.9 6 19.4 12 38.7

12. Are you PLANNING to relocate for a job out of the El Paso/ Las Cruces/Ciudad Jurez area? a. Yes b. No c. Unsure UTEP EXPERIENCE

UTEP 13. Have your knowledge and skills been enhanced in the following areas as a result of your UTEP experience? a. Think critically Yes No Unsure b. Read with comprehension in English Yes No Unsure c. Express yourself through speaking in English Yes No Unsure d. Express yourself through writing in English Yes No Unsure e. Express yourself in a language other than English Yes No Unsure f. Understand math concepts Yes No Unsure g. Use math in your major/field Yes No Unsure h. Use computers Yes No Unsure i. Use the current technology in your major/field Yes No Unsure j. Understand science concepts Yes No Unsure %

Computer Science n = 32 30 1 1 n = 32 25 7 0 n = 32 24 8 0 n = 32 25 5 2 n = 32 9 23 0 n = 32 30 2 0 n = 32 28 2 2 32 0 0 27 3 2 29 1 2 87.5 6.3 6.3 n = 32 100.0 0.0 0.0 n = 32 84.4 9.4 6.3 n = 32 90.6 3.1 6.3 93.8 6.3 0.0 28.1 71.9 0.0 78.1 15.6 6.3 75.0 25.0 0.0 78.1 21.9 0.0 93.8 3.1 3.1 %

n = 1311 1261 96.2 35 2.7 15 1.1 n = 1311 1096 83.6 183 14.0 32 2.4 n = 1310 1091 83.3 190 14.5 29 2.2 n = 1307 1136 86.9 137 10.5 34 2.6 n = 1307 679 52.0 581 44.5 47 3.6 n = 1311 1049 80.0 189 14.4 73 5.6 n = 1312 942 71.8 287 21.9 83 6.3 n = 1309 1136 86.8 143 10.9 30 2.3 n = 1310 1092 83.4 151 11.5 67 5.1 n = 1306 998 76.4 211 16.2 97 7.4

UTEP GRADUATING SENIOR SURVEY 2002-03


Results: University and Computer Science Totals UTEP EXPERIENCE UTEP 13. Have your knowledge and skills been enhanced in the following areas as a result of your UTEP experience? (cont.) k. Use science concepts Yes No Unsure l. Use the library Yes No Unsure m. Understand behavioral/social science concepts Yes No Unsure n. Use behavioral/social science concepts Yes No Unsure o. Understand the arts and humanities Yes No Unsure p. Appreciate the arts and humanities Yes No Unsure q. Interact with people from different cultural backgrounds Yes No Unsure r. Live in a binational/multicultural/bilingual region Yes No Unsure s. Understand U.S./Mexico border issues Yes No Unsure t. Meet lifelong intellectual, ethical, and career challenges Yes No Unsure u. Function independently Yes No Unsure v. Function as a member of a team Yes No Unsure 947 262 100 % Computer Science n = 32 25 4 3 n = 32 19 11 2 n = 32 17 11 4 n = 31 16 11 4 n = 32 16 11 5 n = 32 18 10 4 n = 32 28 4 0 n = 32 25 7 0 n = 32 23 8 1 n = 32 27 2 3 n = 32 27 3 2 32 0 0 84.4 9.4 6.3 n = 32 100.0 0.0 0.0 84.4 6.3 9.4 71.9 25.0 3.1 78.1 21.9 0.0 87.5 12.5 0.0 56.3 31.3 12.5 50.0 34.4 15.6 51.6 35.5 12.9 53.1 34.4 12.5 59.4 34.4 6.3 78.1 12.5 9.4 %

n = 1309 72.3 20.0 7.6 n = 1307 1113 85.2 154 11.8 40 3.1 n = 1309 1054 80.5 164 12.5 91 7.0 n = 1304 996 76.4 201 15.4 107 8.2 n = 1305 971 74.4 231 17.7 103 7.9 n = 1302 980 75.3 239 18.4 83 6.4 n = 1310 1163 88.8 115 8.8 32 2.4 n = 1306 1092 83.6 172 13.2 42 3.2 n = 1303 1014 77.8 229 17.6 60 4.6 n = 1306 1140 87.3 103 7.9 63 4.8 n = 1309 1186 90.6 100 7.6 23 1.8 n = 1310 1186 90.5 92 7.0 32 2.4

UTEP GRADUATING SENIOR SURVEY 2002-03


Results: University and Computer Science Totals UTEP EXPERIENCE UTEP 13. Have your knowledge and skills been enhanced in the following areas as a result of your UTEP experience? (cont.) w. Clarify your values Yes No Unsure x. Clarify your ethical standards Yes No Unsure y. Be a leader Yes No Unsure z. Prepare for the job market Yes No Unsure aa.Prepare for graduate or professional school Yes No Unsure % Computer Science n = 32 26 4 2 n = 32 24 6 2 n = 32 28 4 0 n = 32 26 5 1 n = 32 27 3 2 84.4 9.4 6.3 81.3 15.6 3.1 87.5 12.5 0.0 75.0 18.8 6.3 81.3 12.5 6.3 %

n = 1306 1061 81.2 198 15.2 47 3.6 n = 1306 1045 80.0 207 15.8 54 4.1 n = 1308 1078 82.4 155 11.9 75 5.7 n = 1304 990 75.9 183 14.0 131 10.0 n = 1311 965 73.6 184 14.0 162 12.4 UTEP

Computer Science % n = 29 19 10 0 n = 24 10 14 0 n = 23 12 9 2 n = 24 13 10 1 n=8 7 1 0 n = 29 15 12 2 51.7 41.4 6.9 87.5 12.5 0.0 54.2 41.7 4.2 52.2 39.1 8.7 41.7 58.3 0.0 65.5 34.5 0.0 %

14. If you answered Yes to question 13, how much has your UTEP experience enhanced your skills and knowledge in each area? a. Think critically Very much Adequately Very little b. Read with comprehension in English Very much Adequately Very little c. Express yourself through speaking in English Very much Adequately Very little d. Express yourself through writing in English Very much Adequately Very little e. Express yourself in a language other than English Very much Adequately Very little f. Understand math concepts Very much Adequately Very little

n = 1218 56.5 42.4 1.1 n = 1064 549 51.6 479 45.0 36 3.4 n = 1054 554 52.6 458 43.5 42 4.0 n = 1078 579 53.7 456 42.3 43 4.0 n = 645 307 47.6 288 44.7 50 7.8 n = 1010 455 45.0 487 48.2 68 6.7 688 516 14

UTEP GRADUATING SENIOR SURVEY 2002-03


Results: University and Computer Science Totals UTEP EXPERIENCE UTEP 14. If you answered Yes to question 13, how much has your UTEP experience enhanced your skills and knowledge in each area? (cont.) g. Use math in your major/field Very much Adequately Very little h. Use computers Very much Adequately Very little i. Use the current technology in your major/field Very much Adequately Very little j. Understand science concepts Very much Adequately Very little k. Use science concepts Very much Adequately Very little l. Use the library Very much Adequately Very little m. Understand behavioral/social science concepts Very much Adequately Very little n. Use behavioral/social science concepts Very much Adequately Very little o. Understand the arts and humanities Very much Adequately Very little p. Appreciate the arts and humanities Very much Adequately Very little q. Interact with people from different cultural backgrounds Very much Adequately Very little r. Live in a binational/multicultural/bilingual region Very much Adequately Very little % Computer Science n = 27 13 13 1 n = 31 25 6 0 n = 26 15 9 2 n = 28 13 11 4 n = 24 12 11 1 n = 18 7 11 0 n = 16 6 7 3 n = 15 6 6 3 n = 15 4 11 0 n = 17 5 11 1 n = 27 17 8 2 n = 24 16 7 1 66.7 29.2 4.2 63.0 29.6 7.4 29.4 64.7 5.9 26.7 73.3 0.0 40.0 40.0 20.0 37.5 43.8 18.8 38.9 61.1 0.0 50.0 45.8 4.2 46.4 39.3 14.3 57.7 34.6 7.7 80.6 19.4 0.0 48.1 48.1 3.7 %

n = 918 48.1 46.5 5.3 n = 1100 600 54.5 459 41.7 41 3.7 n = 1057 546 51.7 460 43.5 51 4.8 n = 964 445 46.2 467 48.4 52 5.4 n = 913 435 47.6 430 47.1 48 5.3 n = 1074 543 50.6 454 42.3 77 7.2 n = 1014 464 45.8 483 47.6 67 6.6 n = 955 439 46.0 452 47.3 64 6.7 n = 936 452 48.3 415 44.3 69 7.4 n = 944 467 49.5 409 43.3 68 7.2 n = 1130 644 57.0 431 38.1 55 4.9 n = 1055 668 63.3 345 32.7 42 4.0 442 427 49

UTEP GRADUATING SENIOR SURVEY 2002-03


Results: University and Computer Science Totals UTEP EXPERIENCE UTEP 14. If you answered Yes to question 13, how much has your UTEP experience enhanced your skills and knowledge in each area? (cont.) s. Understand U.S./Mexico border issues Very much Adequately Very little t. Meet lifelong intellectual, ethical, and career challenges Very much Adequately Very little u. Function independently Very much Adequately Very little v. Function as a member of a team Very much Adequately Very little w. Clarify your values Very much Adequately Very little x. Clarify your ethical standards Very much Adequately Very little y. Be a leader Very much Adequately Very little z. Prepare for the job market Very much Adequately Very little aa.Prepare for graduate or professional school Very much Adequately Very little % Computer Science n = 22 9 10 3 n = 27 11 16 0 n = 26 14 11 1 n = 31 16 14 1 n = 25 10 13 2 n = 23 11 12 0 n = 27 12 14 1 n = 25 8 15 2 n = 26 8 15 3 30.8 57.7 11.5 32.0 60.0 8.0 44.4 51.9 3.7 47.8 52.2 0.0 40.0 52.0 8.0 51.6 45.2 3.2 53.8 42.3 3.8 40.7 59.3 0.0 40.9 45.5 13.6 %

n = 986 54.6 41.2 4.3 n = 1109 648 58.4 421 38.0 40 3.6 n = 1149 744 64.8 374 32.6 31 2.7 n = 1145 740 64.6 368 32.1 37 3.2 n = 1026 602 58.7 383 37.3 41 4.0 n = 1013 615 60.7 365 36.0 33 3.3 n = 1045 619 59.2 390 37.3 36 3.4 n = 964 488 50.6 424 44.0 52 5.4 n = 928 505 54.4 375 40.4 48 5.2 538 406 42 UTEP n = 1320 461 676 157 19 7 % 34.9 51.2 11.9 1.4 0.5

15. Rate the overall quality of the education in your major. a. b. c. d. e. Excellent Good Acceptable Poor Unsure

Computer Science n = 32 % 6 18.8 19 59.4 6 18.8 0 0.0 1 3.1

UTEP GRADUATING SENIOR SURVEY 2002-03


Results: University and Computer Science Totals UTEP EXPERIENCE 16. If you had to do it over again, would you choose the same major? a. Yes Why?1,2 Academic Quality/Coursework Choose Different Major/Field Faculty Issues General Satisfaction Job Opportunities Opportunities for Future Education Opportunities Not at UTEP Personal Interest/Growth Personal Satisfaction Satisfaction w/Department Satisfaction w/Major/Minor/Field Specific Individual Named Staff Unsure Other No Response b. No Why?3,4 Academic Quality/Coursework Choose Different Major/Field Faculty Issues General Satisfaction Job Opportunities Opportunities for Future Education Opportunities Not at UTEP Personal Interest/Growth Personal Satisfaction Satisfaction w/Department Satisfaction w/Major/Minor/Field Other No Response
1,3 2,4

UTEP n = 1322 1066 28 2 66 135 8 23 8 8 156 150 13 129 3 5 1 38 375 138 7 26 7 1 9 6 1 1 22 3 3 7 20 37 % 80.6 2.6 0.2 6.2 12.7 0.8 2.2 0.8 0.8 14.6 14.1 1.2 12.1 0.3 0.5 0.1 3.6 35.2 10.4 5.1 18.8 5.1 0.7 6.5 4.3 0.7 0.7 15.9 2.2 2.2 5.1 14.5 26.8

Computer Science n = 32 % 25 78.1 0 0 3 4 1 1 0 0 3 0 0 1 0 0 0 0 12 6 0 0 0 0 0 0 0 0 3 0 0 0 1 2 0.0 0.0 12.0 16.0 4.0 4.0 0.0 0.0 12.0 0.0 0.0 4.0 0.0 0.0 0.0 0.0 48.0 18.8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 50.0 0.0 0.0 0.0 16.7 33.3

Totals may exceed 100% due to multiple responses Individual comments are listed in Appendix A.

UTEP GRADUATING SENIOR SURVEY 2002-03


Results: University and Computer Science Totals UTEP EXPERIENCE 16. If you had to do it over again, would you choose the same major? (cont.) c. Unsure Why?,1,2 Academic Quality/Coursework Choose Different Major/Field Faculty Issues General Satisfaction Job Opportunities Opportunities for Future Education Opportunities Not at UTEP Personal Interest/Growth Personal Satisfaction Satisfaction w/Department Satisfaction w/Major/Minor/Field Staff Other No Response
1 2

UTEP n = 1322 118 2 12 7 1 2 3 1 1 17 2 1 8 1 19 51 % 8.9 1.7 10.2 5.9 0.8 1.7 2.5 0.8 0.8 14.4 1.7 0.8 6.8 0.8 16.1 43.2

Computer Science n = 32 % 1 3.1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 100.0 0.0

Totals may exceed 100% due to multiple responses Individual comments are listed in Appendix A.

17. Rate the overall quality of your UTEP education? a. b. c. d. e. Excellent Good Acceptable Poor Unsure 310 728 240 29 8

UTEP n = 1315 % 23.6 55.4 18.3 2.2 0.6

Computer Science n = 32 % 6 18.8 14 43.8 10 31.3 1 3.1 1 3.1

10

UTEP GRADUATING SENIOR SURVEY 2002-03


Results: University and Computer Science Totals UTEP EXPERIENCE 18. Would you recommend UTEP to a friend or relative considering going to college? a. Yes Why?1,2 Academic Opportunities Academic Quality Affordable Tuition Campus Climate/Friendly/Customer Service Depends on Major/Department Diverse Campus/Cross-Cultural Campus Facilities Faculty Good School Location Personal Growth/Good Experience Program Offerings/Academic Dept./Program Issues Staff Inconsistent Statement No Response b. No Why?3,4 Academic Quality Depends on Major/Department Facilities Faculty Location Program Offerings/Academic Dept./Program Issues Staff Inconsistent Statement No Response c. Unsure Why?5,6 Academic Quality Depends on Major/Department Facilities Faculty Location Program Offerings/Academic Dept./Program Issues Inconsistent Statement Staff No Response
1,3,5 2,4,6

UTEP n = 1317 1036 27 97 64 31 17 36 5 101 149 48 53 6 11 18 357 113 9 2 2 13 2 17 19 4 23 168 2 28 1 5 2 4 4 11 74 % 78.7 2.6 9.4 6.2 3.0 1.6 3.5 0.5 9.7 14.4 4.6 5.1 0.6 1.1 1.7 34.5 8.6 8.0 1.8 1.8 11.5 1.8 15.0 16.8 3.5 20.4 12.8 1.2 16.7 0.6 3.0 1.2 2.4 2.4 6.5 44.0

Computer Science n = 32 % 26 81.3 0 3 4 0 0 1 0 2 6 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 5 0 2 0 0 0 0 0 0 3 0.0 11.5 15.4 0.0 0.0 3.8 0.0 7.7 23.1 0.0 0.0 0.0 0.0 0.0 0.0 3.1 0.0 0.0 0.0 0.0 0.0 100.0 0.0 0.0 0.0 15.6 0.0 40.0 0.0 0.0 0.0 0.0 0.0 0.0 60.0

Totals may exceed 100% due to multiple responses Individual comments are listed in Appendix A.

11

UTEP GRADUATING SENIOR SURVEY 2002-03


Results: University and Computer Science Totals UTEP EXPERIENCE UTEP 19. How satisfied are you with the following aspects of your UTEP education? a. Quality of instruction by faculty in your major Very satisfied Satisfied Dissatisfied Very dissatisfied Unsure b. Access outside of class to faculty in your major Very satisfied Satisfied Dissatisfied Very dissatisfied Unsure c. Career advising by faculty in your major Very satisfied Satisfied Dissatisfied Very dissatisfied Unsure d. Quality of instruction by graduate teaching assistants in your major Very satisfied Satisfied Dissatisfied Very dissatisfied Unsure e. Access outside of class to graduate teaching assistants in your major Very satisfied Satisfied Dissatisfied Very dissatisfied Unsure f. Methods used to evaluate your academic performance in your major Very satisfied Satisfied Dissatisfied Very dissatisfied Unsure g. Availability of required courses offered in your major Very satisfied Satisfied Dissatisfied Very dissatisfied Unsure 471 765 54 12 10 % Computer Science n = 32 9 21 1 0 1 n = 32 10 19 2 1 0 n = 32 3 23 2 2 2 n = 32 1 20 5 2 4 n = 32 2 17 9 0 4 n = 32 6 19 5 0 2 n = 32 6 14 12 0 0 18.8 43.8 37.5 0.0 0.0 18.8 59.4 15.6 0.0 6.3 6.3 53.1 28.1 0.0 12.5 3.1 62.5 15.6 6.3 12.5 9.4 71.9 6.3 6.3 6.3 31.3 59.4 6.3 3.1 0.0 28.1 65.6 3.1 0.0 3.1 %

n = 1312 35.9 58.3 4.1 0.9 0.8 n = 1310 456 34.8 754 57.6 67 5.1 9 0.7 24 1.8 n = 1312 328 25.0 617 47.0 203 15.5 98 7.5 66 5.0 n = 1296 225 672 129 41 229 17.4 51.9 10.0 3.2 17.7 n = 1292 220 623 131 37 281 17.0 48.2 10.1 2.9 21.7 n = 1308 24.1 62.6 7.3 2.4 3.5 n = 1311 299 22.8 596 45.5 286 21.8 106 8.1 24 1.8 315 819 96 32 46

12

UTEP GRADUATING SENIOR SURVEY 2002-03


Results: University and Computer Science Totals UTEP EXPERIENCE UTEP 19. How satisfied are you with the following aspects of your UTEP education? (cont.) h. Size of classes in your major Very satisfied Satisfied Dissatisfied Very dissatisfied Unsure i. Classroom facilities in your major Very satisfied Satisfied Dissatisfied Very dissatisfied Unsure j. Laboratory facilities in your major Very satisfied Satisfied Dissatisfied Very dissatisfied Unsure k. Your sense of belonging to your major Very satisfied Satisfied Dissatisfied Very dissatisfied Unsure l. Concern for students by faculty in your major Very satisfied Satisfied Dissatisfied Very dissatisfied Unsure m. Concern for students by staff in your major or program office Very satisfied Satisfied Dissatisfied Very dissatisfied Unsure n. Your sense of belonging to your college Very satisfied Satisfied Dissatisfied Very dissatisfied Unsure 470 772 54 9 9 % Computer Science n = 32 7 22 3 0 0 n = 32 2 19 10 1 0 n = 32 4 19 8 1 0 n = 32 8 21 1 1 1 n = 32 9 17 4 0 2 n = 31 6 20 3 0 2 n = 31 5 19 6 1 0 16.1 61.3 19.4 3.2 0.0 19.4 64.5 9.7 0.0 6.5 28.1 53.1 12.5 0.0 6.3 25.0 65.6 3.1 3.1 3.1 12.5 59.4 25.0 3.1 0.0 6.3 59.4 31.3 3.1 0.0 21.9 68.8 9.4 0.0 0.0 %

n = 1314 35.8 58.8 4.1 0.7 0.7 n = 1314 354 26.9 756 57.5 144 11.0 47 3.6 13 1.0 n = 1304 281 21.5 667 51.2 179 13.7 67 5.1 110 8.4 n = 1313 557 42.4 637 48.5 69 5.3 24 1.8 26 2.0 n = 1311 439 33.5 673 51.3 119 9.1 39 3.0 41 3.1 n = 1312 398 690 126 44 54 30.3 52.6 9.6 3.4 4.1 n = 1313 456 34.7 675 51.4 99 7.5 38 2.9 45 3.4

13

UTEP GRADUATING SENIOR SURVEY 2002-03


Results: University and Computer Science Totals UTEP EXPERIENCE UTEP 19. How satisfied are you with the following aspects of your UTEP education? (cont.) o. Concern for students by staff in the dean's office of your college Very satisfied Satisfied Dissatisfied Very dissatisfied Unsure p. Campus computer facilities (hardware and software) Very satisfied Satisfied Dissatisfied Very dissatisfied Unsure q. Campus study areas Very satisfied Satisfied Dissatisfied Very dissatisfied Unsure r. Your sense of belonging to a campus community at UTEP Very satisfied Satisfied Dissatisfied Very dissatisfied Unsure n = 1307 349 668 124 43 123 26.7 51.1 9.5 3.3 9.4 n = 1316 405 30.8 721 54.8 117 8.9 45 3.4 28 2.1 n = 1313 386 29.4 722 55.0 123 9.4 50 3.8 32 2.4 n = 1308 365 27.9 682 52.1 125 9.6 55 4.2 81 6.2 UTEP n = 1320 395 670 125 64 66 % 29.9 50.8 9.5 4.8 5.0 2 23 2 2 2 n = 31 3 23 3 2 0 n = 31 3 25 2 1 0 n = 31 6 17 5 2 1 19.4 54.8 16.1 6.5 3.2 9.7 80.6 6.5 3.2 0.0 9.7 74.2 9.7 6.5 0.0 % Computer Science n = 31 6.5 74.2 6.5 6.5 6.5 %

20. How satisfied are you with the availability of your advisor(s)? a. b. c. d. e. Very satisfied Satisfied Dissatisfied Very dissatisfied Unsure

Computer Science n = 31 % 5 16.1 20 64.5 4 12.9 0 0.0 2 6.5

14

UTEP GRADUATING SENIOR SURVEY 2002-03


Results: University and Computer Science Totals UTEP EXPERIENCE UTEP 21. Rate the quality of information you received from your academic advisor(s) during this academic year. (mark all that apply)1 a. Faculty in your college Excellent Good Acceptable Poor Unsure Not advised b. Faculty in your major department Excellent Good Acceptable Poor Unsure Not advised c. Staff in your college Excellent Good Acceptable Poor Unsure Not advised d. Staff in your major department Excellent Good Acceptable Poor Unsure Not advised
1

Computer Science % n = 29 5 10 9 0 1 4 n = 31 11 12 5 2 1 0 n = 29 5 10 10 0 1 3 n = 29 10 8 7 2 1 1 34.5 27.6 24.1 6.9 3.4 3.4 17.2 34.5 34.5 0.0 3.4 10.3 35.5 38.7 16.1 6.5 3.2 0.0 17.2 34.5 31.0 0.0 3.4 13.8 %

n = 1298 31.4 39.5 16.8 4.8 1.5 6.1 n = 1310 494 37.7 478 36.5 171 13.1 95 7.3 14 1.1 58 4.4 n = 1299 359 27.6 514 39.6 248 19.1 82 6.3 17 1.3 79 6.1 n = 1299 416 32.0 464 35.7 225 17.3 93 7.2 23 1.8 78 6.0 407 513 218 62 19 79

Totals may exceed 100% due to multiple responses

15

UTEP GRADUATING SENIOR SURVEY 2002-03


Results: University and Computer Science Totals UTEP EXPERIENCE UTEP 22. Indicate your participation in the following: a. On-campus research, scholarly or creative arts projects with UTEP faculty for a purpose other than a grade Regularly Occasionally Never Didn't know about b. Off-campus research, co-op, internship, or practicum Regularly Occasionally Never Didn't know about c. Professional/academic organizations related to your major Regularly Occasionally Never Didn't know about d. UTEP student organizations or activities Regularly Occasionally Never Didn't know about e. Volunteer work on the UTEP campus Regularly Occasionally Never Didn't know about f. Off-campus community service or volunteer work Regularly Occasionally Never Didn't know about n = 1300 183 397 502 218 14.1 30.5 38.6 16.8 n = 1292 369 28.6 293 22.7 525 40.6 105 8.1 n = 1279 269 21.0 372 29.1 537 42.0 101 7.9 n = 1280 216 16.9 437 34.1 567 44.3 60 4.7 n = 1291 70 5.4 268 20.8 801 62.0 152 11.8 n = 1295 210 16.2 482 37.2 495 38.2 108 8.3 4 11 15 1 n = 31 3 9 19 0 n = 30 4 16 10 0 n = 31 6 15 10 0 n = 30 2 9 18 1 n = 31 1 11 15 4 3.2 35.5 48.4 12.9 6.7 30.0 60.0 3.3 19.4 48.4 32.3 0.0 13.3 53.3 33.3 0.0 9.7 29.0 61.3 0.0 % Computer Science % n = 31 12.9 35.5 48.4 3.2

16

UTEP GRADUATING SENIOR SURVEY 2002-03


Results: University and Computer Science Totals UTEP EXPERIENCE UTEP 23. If you answered Occasionally or Regularly to question 22, rate your experience: a. On-campus research, scholarly or creative arts projects with UTEP faculty for a purpose other than a grade Excellent Good Acceptable Poor Unsure b. Off-campus research, co-op, internship, or practicum Excellent Good Acceptable Poor Unsure c. Professional/academic organizations related to your major Excellent Good Acceptable Poor Unsure d. UTEP student organizations or activities Excellent Good Acceptable Poor Unsure e. Volunteer work on the UTEP campus Excellent Good Acceptable Poor Unsure f. Off-campus community service or volunteer work Excellent Good Acceptable Poor Unsure n = 549 161 277 95 11 5 283 253 73 13 5 179 284 117 24 3 168 311 116 21 5 92 160 57 6 3 241 322 75 14 2 29.3 50.5 17.3 2.0 0.9 n = 627 45.1 40.4 11.6 2.1 0.8 n = 607 29.5 46.8 19.3 4.0 0.5 n = 621 27.1 50.1 18.7 3.4 0.8 n = 318 28.9 50.3 17.9 1.9 0.9 n = 654 36.9 49.2 11.5 2.1 0.3 5 8 2 0 0 n = 12 8 4 0 0 0 n = 20 4 11 4 1 0 n = 21 5 10 5 1 0 n = 11 3 7 0 1 0 n = 12 1 8 3 0 0 8.3 66.7 25.0 0.0 0.0 27.3 63.6 0.0 9.1 0.0 23.8 47.6 23.8 4.8 0.0 20.0 55.0 20.0 5.0 0.0 66.7 33.3 0.0 0.0 0.0 % Computer Science n = 15 33.3 53.3 13.3 0.0 0.0 %

17

UTEP GRADUATING SENIOR SURVEY 2002-03


Results: University and Computer Science Totals UTEP EXPERIENCE 25. If you could change one thing about UTEP, what would it be?1,2 a. Academic Advising b. Academic Quality c. Academic Service Issues (not advising) d. Athletics/Sports e. Campus Police/Traffic f. Class Size g. Communication/Organization/Run around h. Computer Access/Technology i. Course Availability/Class Scheduling j. Customer Service k. Educational Costs l. Expand/Modify Academic Program Offerings m. Facilities/Equipment n. Faculty Issues o. Food Services p. Library/Library Staff q. Parking r. Sense of Belonging to UTEP s. Specific Academic Departments/Programs/Colleges Named t. Specific Individual(s) Named u. Staff Issues v. Student Services w. UTEP Image x. Univ. Class y. Don't Change Anything/Nothing z. General Statement zz.N/A aa.No Response
1 2

UTEP n = 1264 73 19 45 12 10 5 89 39 93 38 23 68 57 115 11 10 202 48 189 16 81 27 23 8 28 133 13 191 % 5.8 1.5 3.6 0.9 0.8 0.4 7.0 3.1 7.4 3.0 1.8 5.4 4.5 9.1 0.9 0.8 16.0 3.8 15.0 1.3 6.4 2.1 1.8 0.6 2.2 10.5 1.0 15.1

Computer Science n = 31 % 0 0.0 0 0.0 1 3.2 1 3.2 0 0.0 0 0.0 1 3.2 0 0.0 0 0.0 1 3.2 2 6.5 2 6.5 1 3.2 3 9.7 1 3.2 1 3.2 7 22.6 0 0.0 4 12.9 0 0.0 2 6.5 2 6.5 1 3.2 0 0.0 2 6.5 1 3.2 0 0.0 7 22.6

Totals may exceed 100% due to multiple responses Individual comments are listed in Appendix A.

STUDENT SUPPORT SERVICES & ACTIVITIES UTEP 26. Indicate your participation in the following activities or % your use of the student support services below: n = 1282 a. Career Services Regularly 98 7.6 Occasionally 454 35.4 Never 489 38.1 Didn't need 170 13.3 Didn't know about 71 5.5 n = 1284 b. Cashiers/Bursar's Office Regularly 511 39.8 Occasionally 646 50.3 Never 81 6.3 Didn't need 26 2.0 Didn't know about 20 1.6

Computer Science n = 32 3 19 9 1 0 n = 32 10 18 2 1 1 31.3 56.3 6.3 3.1 3.1 9.4 59.4 28.1 3.1 0.0 %

19

UTEP GRADUATING SENIOR SURVEY 2002-03


Results: University and Computer Science Totals STUDENT SUPPORT SERVICES & ACTIVITIES UTEP 26. Indicate your participation in the following activities or % your use of the student support services below: (cont.) n = 1285 c. Financial Aid Office Regularly 463 36.0 Occasionally 513 39.9 Never 224 17.4 Didn't need 74 5.8 Didn't know about 11 0.9 n = 1284 d. Food Services Regularly 191 14.9 Occasionally 686 53.4 Never 285 22.2 Didn't need 98 7.6 Didn't know about 24 1.9 n = 1286 e. Library Services Regularly 596 46.3 Occasionally 620 48.2 Never 50 3.9 Didn't need 15 1.2 Didn't know about 5 0.4 n = 1285 f. Touch-tone Registration Regularly 603 46.9 Occasionally 468 36.4 Never 165 12.8 Didn't need 44 3.4 Didn't know about 5 0.4 n = 1285 g. University Bookstore Regularly 723 56.3 Occasionally 526 40.9 Never 25 1.9 Didn't need 5 0.4 Didn't know about 6 0.5 n = 1286 h. Counseling Center Regularly 66 5.1 Occasionally 295 22.9 Never 681 53.0 Didn't need 189 14.7 Didn't know about 55 4.3 n = 1289 i. Recreational Sports & Facilities (Intramurals, Fitness Center, etc.) Regularly 234 18.2 Occasionally 458 35.5 Never 501 38.9 Didn't need 71 5.5 Didn't know about 25 1.9 n = 1284 j. Leadership Training (Student Development Center) Regularly 35 2.7 Occasionally 124 9.7 Never 827 64.4 Didn't need 122 9.5 Didn't know about 176 13.7

Computer Science n = 32 7 16 6 2 1 n = 32 5 19 3 3 2 n = 32 7 20 2 2 1 n = 32 8 17 5 2 0 n = 32 11 19 2 0 0 n = 32 0 5 19 6 2 n = 32 10 13 7 1 1 n = 32 0 6 20 4 2 0.0 18.8 62.5 12.5 6.3 31.3 40.6 21.9 3.1 3.1 0.0 15.6 59.4 18.8 6.3 34.4 59.4 6.3 0.0 0.0 25.0 53.1 15.6 6.3 0.0 21.9 62.5 6.3 6.3 3.1 15.6 59.4 9.4 9.4 6.3 21.9 50.0 18.8 6.3 3.1 %

20

UTEP GRADUATING SENIOR SURVEY 2002-03


Results: University and Computer Science Totals STUDENT SUPPORT SERVICES & ACTIVITIES UTEP 26. Indicate your participation in the following activities or % your use of the student support services below: (cont.) n = 1285 k. University concerts, plays, exhibits, and other cultural events Regularly 173 13.5 Occasionally 655 51.0 Never 374 29.1 Didn't need 48 3.7 Didn't know about 35 2.7 n = 1283 l. Student Health Center Regularly 65 5.1 Occasionally 438 34.1 Never 591 46.1 Didn't need 143 11.1 Didn't know about 46 3.6 n = 1285 m. Student Newspaper - Prospector Regularly 181 14.1 Occasionally 525 40.9 Never 486 37.8 Didn't need 70 5.4 Didn't know about 23 1.8 n = 1288 n. Student Union (study areas and facilities) Regularly 279 21.7 Occasionally 687 53.3 Never 253 19.6 Didn't need 61 4.7 Didn't know about 8 0.6 n = 1290 o. Tutoring and Learning Center Regularly 126 9.8 Occasionally 534 41.4 Never 487 37.8 Didn't need 122 9.5 Didn't know about 21 1.6 n = 1287 p. Women's Resource Center Regularly 16 1.2 Occasionally 78 6.1 Never 897 69.7 Didn't need 176 13.7 Didn't know about 120 9.3

Computer Science n = 32 3 17 11 1 0 n = 31 1 13 13 2 2 n = 31 3 14 12 1 1 n = 31 5 21 5 0 0 n = 31 2 16 10 2 1 n = 30 0 0 23 4 3 0.0 0.0 76.7 13.3 10.0 6.5 51.6 32.3 6.5 3.2 16.1 67.7 16.1 0.0 0.0 9.7 45.2 38.7 3.2 3.2 3.2 41.9 41.9 6.5 6.5 9.4 53.1 34.4 3.1 0.0 %

21

UTEP GRADUATING SENIOR SURVEY 2002-03


Results: University and Computer Science Totals STUDENT SUPPORT SERVICES & ACTIVITIES UTEP 27. If you answered Occasionally or Regularly to question 26, % rate your experience: n = 527 a. Career Services Excellent 118 22.4 Good 276 52.4 Acceptable 104 19.7 Poor 24 4.6 Unsure 5 0.9 n = 1111 b. Cashiers/Bursar's Office Excellent 162 14.6 Good 500 45.0 Acceptable 333 30.0 Poor 112 10.1 Unsure 4 0.4 n = 936 c. Financial Aid Office Excellent 186 19.9 Good 380 40.6 Acceptable 242 25.9 Poor 124 13.2 Unsure 4 0.4 n = 836 d. Food Services Excellent 124 14.8 Good 388 46.4 Acceptable 242 28.9 Poor 79 9.4 Unsure 3 0.4 n = 1150 e. Library Services Excellent 373 32.4 Good 534 46.4 Acceptable 208 18.1 Poor 31 2.7 Unsure 4 0.3 n = 1023 f. Touch-tone Registration Excellent 274 26.8 Good 476 46.5 Acceptable 207 20.2 Poor 63 6.2 Unsure 3 0.3 n = 1176 g. University Bookstore Excellent 241 20.5 Good 574 48.8 Acceptable 291 24.7 Poor 66 5.6 Unsure 4 0.3 n = 329 h. Counseling Center Excellent 82 24.9 Good 158 48.0 Acceptable 65 19.8 Poor 23 7.0 Unsure 1 0.3

Computer Science n = 22 4 11 6 1 0 n = 27 4 11 9 3 0 n = 23 3 10 4 6 0 n = 23 4 9 8 2 0 n = 26 6 12 8 0 0 n = 24 3 12 5 4 0 n = 29 4 11 12 2 0 n=5 1 2 0 2 0 20.0 40.0 0.0 40.0 0.0 13.8 37.9 41.4 6.9 0.0 12.5 50.0 20.8 16.7 0.0 23.1 46.2 30.8 0.0 0.0 17.4 39.1 34.8 8.7 0.0 13.0 43.5 17.4 26.1 0.0 14.8 40.7 33.3 11.1 0.0 18.2 50.0 27.3 4.5 0.0 %

22

UTEP GRADUATING SENIOR SURVEY 2002-03


Results: University and Computer Science Totals STUDENT SUPPORT SERVICES & ACTIVITIES UTEP 27. If you answered Occasionally or Regularly to question 26, % rate your experience: (cont.) n = 654 i. Recreational Sports & Facilities (Intramurals, Fitness Center, etc.) Excellent 277 42.4 Good 299 45.7 Acceptable 64 9.8 Poor 13 2.0 Unsure 1 0.2 n = 153 j. Leadership Training (Student Development Center) Excellent 35 22.9 Good 85 55.6 Acceptable 26 17.0 Poor 5 3.3 Unsure 2 1.3 n = 779 k. University concerts, plays, exhibits, and other cultural events Excellent 283 36.3 Good 412 52.9 Acceptable 80 10.3 Poor 2 0.3 Unsure 2 0.3 n = 477 l. Student Health Center Excellent 154 32.3 Good 225 47.2 Acceptable 75 15.7 Poor 22 4.6 Unsure 1 0.2 n = 678 m. Student Newspaper - Prospector Excellent 104 15.3 Good 355 52.4 Acceptable 160 23.6 Poor 55 8.1 Unsure 4 0.6 n = 922 n. Student Union (study areas and facilities) Excellent 182 19.7 Good 509 55.2 Acceptable 205 22.2 Poor 23 2.5 Unsure 3 0.3 n = 623 o. Tutoring and Learning Center Excellent 142 22.8 Good 301 48.3 Acceptable 131 21.0 Poor 44 7.1 Unsure 5 0.8 n = 83 p. Women's Resource Center Excellent 28 33.7 Good 39 47.0 Acceptable 12 14.5 Poor 2 2.4 Unsure 2 2.4

Computer Science n = 22 7 10 4 1 0 n=6 1 2 2 1 0 n = 18 5 12 1 0 0 n = 14 2 8 3 1 0 n = 17 3 8 5 1 0 n = 26 3 16 5 2 0 n = 18 2 10 3 3 0 n= 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 11.1 55.6 16.7 16.7 0.0 11.5 61.5 19.2 7.7 0.0 17.6 47.1 29.4 5.9 0.0 14.3 57.1 21.4 7.1 0.0 27.8 66.7 5.6 0.0 0.0 16.7 33.3 33.3 16.7 0.0 31.8 45.5 18.2 4.5 0.0 %

23

UTEP GRADUATING SENIOR SURVEY 2002-03


Results: University and Computer Science Totals STUDENT SUPPORT SERVICES & ACTIVITIES UTEP n = 1264 28. Please add any comments about Student Support Services % & activities here1,2 a. Academic Services Issues 9 0.7 b. Bookstore 15 1.2 c. Computer/Technology in Student Support Services 5 0.4 d. Customer Service - General 16 1.3 e. Did not use/Did not know about 16 1.3 f. Health and Fitness Centers 15 1.2 g. Food Services/Union 38 3.0 h. Library/Library Staff 8 0.6 i. More involvement/advertisement of Student Support 25 2.0 Services/Activities j. More/Better Student Support Services/Activities 18 1.4 k. Parking 2 0.2 l. Specific Individual(s) Named 4 0.3 m. Other Student Support Services/Activities/Programs Named 82 6.5 n. Tutoring and Learning Center 8 0.6 o. General Statement 134 10.6 p. None or N/A 64 5.1 q. No Response 875 69.2
1 2

Computer Science n = 31 % 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 2 6.5 0 0.0 0 0.0 1 0 0 0 0 2 4 22 3.2 0.0 0.0 0.0 0.0 6.5 12.9 71.0

Totals may exceed 100% due to multiple responses Individual comments are listed in Appendix A.

UTEP CAMPUS ATMOSPHERE 29. How satisfied are you with UTEP's customer service focus? Please explain your rating a. Very Satisfied b. Satisfied c. Dissatisfied d. Very Dissatisfied e. Unsure UTEP n = 1286 130 859 149 47 101 % 10.1 66.8 11.6 3.7 7.9 Computer Science n = 32 % 1 3.1 19 59.4 10 31.3 0 0.0 2 6.3

24

UTEP GRADUATING SENIOR SURVEY 2002-03


Results: University and Computer Science Totals UTEP CAMPUS ATMOSPHERE 29. How satisfied are you with UTEP's customer service focus? Please explain your rating: 1,2 a. Negative Customer Service Statement Academic Advising Bookstore Bureaucracy/Red tape/Runaround Bursar's/Cashier's Campus Police Communication between Departments/Colleges/Offices Faculty Financial Aid Food Services Helpfulness/Friendliness Improvements Seen Information Lack of Individual Attention Library Monetary Financial Concerns Needs Improvement Parking Registrar's Office/Registration Satisfactory Overall/Okay Specific Academic Program/Department/College Named Specific Non-academic Program/Department/Office Named Staff Timeliness General b. Positive Customer Service Statement Bookstore Bureaucracy/Red tape/Runaround Bursar's/Cashier's Communication between Departments/Colleges/Offices Excellent/Good Service Faculty Financial Aid Helpfulness/Friendliness Improvements Seen Information Library Monetary Financial Concerns Needs Improvement Parking Registrar's Office/Registration Satisfactory Overall/Okay Specific Academic Program/Department/College Named Specific Non-academic Program/Department/Office Named Staff Timeliness No Problems/No Complains General
1 2

UTEP n = 802 n = 261 4 3 32 12 3 5 7 10 3 35 1 43 7 1 9 27 1 14 4 14 9 82 18 56 2 3 3 2 84 7 6 78 10 13 1 2 30 1 1 108 6 14 29 12 29 64 1.5 1.1 12.3 4.6 1.1 1.9 2.7 3.8 1.1 13.4 0.4 16.5 2.7 0.4 3.4 10.3 0.4 5.4 1.5 5.4 3.4 31.4 6.9 21.5 n = 412 0.5 0.7 0.7 0.5 20.4 1.7 1.5 18.9 2.4 3.2 0.2 0.5 7.3 0.2 0.2 26.2 1.5 3.4 7.0 2.9 7.0 15.5 %

Computer Science n = 21 % n=7 0 0.0 0 0.0 2 28.6 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 1 14.3 0 0.0 2 28.6 0 0.0 0 0.0 1 14.3 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 1 14.3 0 0.0 1 14.3 n = 12 0 0.0 0 0.0 0 0.0 0 0.0 4 33.3 0 0.0 0 0.0 0 0.0 1 8.3 1 8.3 0 0.0 0 0.0 1 8.3 0 0.0 0 0.0 4 33.3 0 0.0 1 8.3 0 0.0 0 0.0 0 0.0 3 25.0

Totals may exceed 100% due to multiple responses Individual comments are listed in Appendix A.

Note: Respondents often expressed both positive and negative comments. Therefore, n's in the sub-groups may not reflect the true number of respondents.

25

UTEP GRADUATING SENIOR SURVEY 2002-03


Results: University and Computer Science Totals UTEP CAMPUS ATMOSPHERE 29. How satisfied are you with UTEP's customer service focus? Please explain your rating:1,2 (cont.) c. General or Inconsistent Customer Service Statement Academic Advising Bookstore Bureaucracy/Red tape/Runaround Bursar's/Cashier's Campus Police Communication between Departments/Colleges/Offices Course Availability/Scheduling Excellent/Good Service Faculty Financial Aid Food Services Helpfulness/Friendliness Improvements Seen Information Lack of Individual Attention Needs Improvement Parking Satisfactory Overall/Okay Specific Academic Program/Department/College Named Specific Non-academic Program/Department/Office Named Staff Timeliness No Problems/No Complains General Other N/A or None
1 2

UTEP n = 802 n = 129 1 1 5 1 2 2 1 3 3 3 5 8 4 1 1 9 2 8 6 5 14 2 1 62 9 7 0.8 0.8 3.9 0.8 1.6 1.6 0.8 2.3 2.3 2.3 3.9 6.2 3.1 0.8 0.8 7.0 1.6 6.2 4.7 3.9 10.9 1.6 0.8 48.1 7.0 5.4 %

Computer Science n = 21 % n=2 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 1 50.0 0 0.0 0 0.0 0 0.0 0 0.0 1 50.0 0 0.0 0 0.0 0 0.0 1 50.0 0 0.0

Totals may exceed 100% due to multiple responses Individual comments are listed in Appendix A.

Note: Respondents often expressed both positive and negative comments. Therefore, n's in the sub-groups may not reflect the true number of respondents.

30. The educational level of your parents (or legal guardians) is: a. Neither parent ever attended college b. Neither parent graduated, but one attended college c. Neither parent graduated, but both attended college d. One parent graduated from college e. Both parents graduated from college f. Unsure

UTEP n = 1296 546 150 70 317 197 16 % 42.1 11.6 5.4 24.5 15.2 1.2

Computer Science n = 31 % 12 38.7 3 9.7 1 3.2 8 25.8 7 22.6 0 0.0

26

2005 SPRING ACADEMIC SURVEY


STRONGLY AGREE 8 10 7 7 9 AGREE 5 2 4 3 2 STRONGLY DISAGREE

I appreciate being advised. I respect my advisor. I have good rapport with my advisor. The alloted time is sufficient. I mystified with the advice I receive

When student meet with his advisors, which of the following topics were discussed?

YES Academic performance Carreer goals Student to organization Undergraduate research Doing an Internship Interview for a Job Applying to Graduate School Being Profesional about my work 9 6 3 1 1 1 1 6

NO 4 8 10 12 12 12 12 7

FALL 2007 ACADEMIC SURVEY


STRONGLY AGREE 15 11 12 11 17 16 AGREE 3 5 5 4 3 2 NEUTRAL DISAGREE 2 1 4 1 1 3 4 1 1 0 0 1 STRONGLY DISAGREE 0 0 1 1 0 1

My advisor guides me on course selection. My advisor provides useful feedback on my academic progress. My advisor has helped me set my career goals My advisor informs me of opportunities in and ouside the dept. I communicate well with my advisor. The alloted time is sufficient.

When student meet with his advisors, which of the following topics were discussed?

ALWAYS Academic performance Carreer goals Student to organization Undergraduate research Carreer Services(interview preparation; resum writing) Graduate school Financial Aid/Scholarship Internships 8 9 4 5 4 4 4 3

FREQUENTLY RARELY 10 2 5 4 4 8 4 10 7 7 7 7 3 9 4 11

NEVER 1 3 5 2 3 3 5 3

COMMENTS: 1. Dr. Modave is great at keepimg me on track for my graduation plan. Great at maintaining my schedule for each semester 2. Dr. Modave is a great advisor, always informative and encouraging 3. I cannot imagne having a better advisor then Dr. Taufer. She is extrmely helpful and aware of the CS standards. -I definitely dont think 15 minutes is enough time. Especially for upper division advising. 4. I really appreciate how helpful my advisor has been. 5. He's really good and helps me in making smart choices (Modave)

Appendix VII-C. Committee Summaries and Reports


Computer Science Undergraduate Program Evaluation Report CQI Summary Reports CQI Report, Fundamentals, 2005 CQI Report, Systems, 2005 CQI Report, Languages, 2006 CQI Report, Software, 2006 CQI Report, Fundamentals, 2007 See http://www.cs.utep.edu/vladik/2007/tr07-02.pdf for CS0 Evaluation Report, January 2007 January 2006 Retreat Reports Undergraduate Curriculum Proposal, Evaluation Summary, Retreat Day 1, January 2006 Software Curriculum Coverage of CC2001-Recommended Core Hours Curriculum Committee Recommendations for 120 Hour Curriculum, 2007 University of Texas at El Paso, Quality Enhancement Program (QEP) report summary; refer to http://sacs.utep.edu/qep for the full report

Computer Science Undergraduate Program Evaluation Report Ann Q. Gates, Patricia J. Teller, and Rolfe Sassenfeld July 21, 2004 Purpose This report documents the process and results of an evaluation of UTEPs Department of Computer Science undergraduate program that was undertaken by Drs. Gates, Teller, and Sassenfeld in May-July 2004. The evaluation was initiated to evaluate the quality of the Computer Science undergraduate program. Process The evaluation focused on the core courses in the undergraduate curriculum: CS1401 (Intro. to CS), CS2401 (Elem. Data Structures/Algorithms), CS2402 (Data Structures), CS3320 (Comp. Arch. II), CS3331 (Adv. OO Programming), CS4375 (Operating Systems), CS3350 (Automata/Computability/Formal Lang.), CS3360 (Design/Implementation Prog. Languages), CS3432 (Comp. Arch. I), CS4310 (Soft. Eng.: Requirements Engineering), and CS4311 (Software Eng: Design and Implementation).The process included the following activities: Examine course outcomes and sequences Review course content, assignments, and exams (this was not completed; such a review requires assignment of content specialists) Review faculty course assessments Interview students and faculty members In addition, the team reviewed the course grade distributions and pass rates. After collecting the data, the evaluation team summarized the results and documented the recommendations. Results

Course Outcomes and Sequences


This section discusses the review of the course outcomes. A course outcomes document describes the knowledge and skills that a student is expected to possess when entering the course and those that the student will possess upon passing the course. The documents that were reviewed were the 2001 version. The review revealed the following: Some course outcomes documents are missing. The preconditions given for most courses are not described in terms of mastery level. Preconditions at mastery level 3 were included as a knowledge/skill target in courses, e.g., CS3320 with respect to Boolean logic, basic logic design, and assembler language. It is difficult to understand at what point in the curriculum knowledge and skills are mastered at level 3 and if there is a logical progression to this level of mastery. Noteworthy examples of essential skills that must be mastered are iteration, recursion, problem-solving skills, and programming skills. It is not apparent which outcomes are meeting the departmental objectives for graduates from the undergraduate program. General Recommendations: Store course outcome documents in a central location accessible to all faculty members and students. Lack of access to these materials may result in lack of compliance. As a result, students will not

develop the specified knowledge and skills, and the expected preconditions for course sequences will not be met. Review and update course outcomes documents every two years. Each instructor should be reminded of the following: o design the course so that it provides students with opportunities to develop the targeted knowledge and skills, and o develop and use assessment tools that evaluate the extent to which students who pass the course have gained the requisite level of knowledge and skills. Create a dependence tree of courses and indicate on its edges the preconditions and outcomes.

Course Content
This section documents the review of course syllabi that professors provided or that were included in the notebook. The syllabus for a course is a contract between the students and instructor. As such, it should specify the expected course outcomes, the tools that will be used to assess student success with respect to meeting these outcomes, and how the assessment tools will be used to determine final grades. Currently the information in syllabi varies considerably. For example, some syllabi list topics, while others list objectives or outcomes. General Recommendations: Provide faculty members with a syllabus template that forms the basis of any syllabus. Distinguish between objectives and outcomes. Provide a repository to store course history so that a professor can refer to syllabi, text books, and materials used in the past.

Faculty Course Assessments


This section discusses the end-of-the-course assessments that were completed by the professors that taught the courses. The departments current CQI process requires an assessment of all courses each semester. Each faculty member uses their own method to assess her/his course with respect to the course outcomes. The assessments are kept in a notebook. Other information that is maintained is: student course evaluation data that is administered by the Deans office, data from the graduate student survey that is conducted by CIERP, and graduating student exit interviews that are conducted by the Chair. Currently, the CQI process is under development. Examination of the CQI process used to date revealed the following: Not all faculty members submitted assessment reports. Systematic review of the reports is difficult because the reporting varies from course to course in quantity, quality, and detail. This variability makes it difficult, if not impossible, to compare assessment and outcomes across courses, and even among different instances of the same course. The reports reviewed range from page with no analysis to 3 pages with careful analysis. As a result, the reports are not effective at providing CQI at the departmental level. In reports that include suggestions, e.g., review of content by the curriculum committee, it is not clear to a reviewer if and how these concerns were addressed. There is not a procedure to report whether pre-conditions have been met.

The pass-fail rates for courses were analyzed from Fall 1999 to Spring 2004 for the core courses. There was little that could be gleaned from the data. Rates varied widely from semester to semester and instructor to instructor, although there are instances of courses with unusually high pass rates and unusually high fail rates compared to other offerings of the course. A brief summary is given below. The pass rates were calculated by dividing the total number of students who passed the course with A-C by n, the total number registered for the course less those students who received an N, I, or W.

COURSE

MIN PASS RATE n

MAX PASS RATE n

MEDIAN PASS RATE

MEAN PASS RATE

CS1401 CS2401 CS2402 CS3320 CS3331 CS3335 CS3350 CS3360 CS3432 CS4310 CS4311

55% 50% 67% 60% 83% 79% 69% 69% 64% 81% 78%

42 12 54 30 29 29 36 13 25 16 28

100% 85% 100% 97% 87% 100% 94% 94% 97% 96% 100%

43 34 16 36 46 37 31 37 36 27 22

74% 72% 78% 83% 85% 93% 83% 88% 86% 93% 92%

76% 72% 80% 82% 87% 92% 79% 84% 81% 93% 92%

Other concerns: Supplementary material covered in courses where the main outcomes do not seem to be mastered. For example, refer to CS3320 and courses that assess high in team or communication skills but not in core competency. Students may not: o have much programming practice throughout the curriculum, o be challenged with large, complex programming assignments until software engineering where they work in teams, o have developed problem solving and strong programming skills, and o have developed sufficient communication skills throughout the curriculum.

General Recommendations: Provide faculty with a template course assessment report. The report should list preconditions and outcomes, as well as the associated mastery levels, evaluate outcomes with respect to all employed assessment tools, indicating if the results are acceptable, discuss shortcomings of the course with respect to expected outcomes, and, when shortcomings exist, suggest possible ways to address these shortcomings. In addition, also it should indicate the number of students registered in the course, the number who withdrew, and the number who passed the course, as well as the grade distribution.

The course assessment report should be stand-alone, i.e., a report should be self contained and understanding it should not require reference to other documents, which are not included in the report. Define a CQI process that uses the course outcomes assessment reports and sample assessment tools.

Faculty Interviews
The interview results reflect the opinions of ten faculty members. The faculty was asked to comment on the causes that comprise the Cause Effect Graph shown in Fig. 1. A summary of the common themes that arose from the interview is given first followed by the actual comments of the faculty organized by the major causes of the Cause Effect Graph. The causes Laboratory and Assignments were grouped as one since the majority did not have additional comments for the Assignments cause.

Fig. 1: Cause Effect Graph used in faculty interview. Summary of Common Themes The following points are the common themes that arose from the faculty interviews. The individual remarks of faculty are provided in the remaining sections. Many faculty members do not know where to find current course outcomes. Faculty members are unclear of the relationship of their courses with others in the department. Coverage of essential skills is problematic, in particular problem solving and programming skills. There is large overhead in teaching an object-oriented language as the first language. TAs are prepared, although supervision is needed. Its important to hold students accountable for their learning and turning assignments in on time. Pair teaching has been effective. Course Content Course outcomes The differences between course outcomes and objectives are unclear. Course outcomes are well defined for CS1401 and CS2401. The faculty member reported that s/he had access to the course outcomes. The faculty member believes that some outcomes are inappropriate and need to be changed. The faculty member did not have outcomes for course (Data Structures) when s/he taught it.

Although the outcomes are well-defined for the main courses, they are not maintained and accessible to all faculty members. I am not aware that the course outcomes for individual courses have ever been evaluated with respect to the program objectives. I dont understand what things students are supposed to be learning in which courses. Relationship to core courses There needs to be a more systematic way to hand-off courses. Courses should be coordinated so that the relationships are clear. I am not convinced that faculty members are aware of the dependencies between courses. Some institutions have coordinators for sets of courses. The coordinators are responsible for maintaining consistency across sections of a sequence of courses. For example, we could have someone monitoring the CS1/2/3 sequence and someone else monitoring the Arch I/II sequence. This does require more work for the coordinators, but it appears to be a successful model elsewhere. Core concepts It is important to avoid overcomplicating what is being taught; OO is simple and should be taught simply and cleanly; do not throw in too much interface; stick with core concepts. Teaching problem-solving skills are as important as designing a solution. Students need to write a lot of programs. Testing is a problem in the CS1 course. Felt that core concepts were covered in Data Structures. The CS1 course should concentrate on core concepts (such as logic, conditional and iterative constructs) and less on the language; is it possible to have a 1-hour follow-up course that covers interfaces and encapsulation. I am not sure how problem solving or reasoning skills are taught and practiced throughout the program. My impression is that the students coming out of data structures are quite intimidated by the prospect of writing programs. I think that by their fourth semester, students should be pretty confident that they can take well-defined, moderately sized, academic problems, decompose them, and write code to solve them. The students I see in the upper division courses are not able to do this. Specific courses The coverage of core concepts in CS1401 is fine. Students going into CS2401 from CS1401 are missing recursion; this concept is not carrying over. There are competing visions of what the entry courses should contain; its important to have a common vision. Students in an upper division course were not able to write a program with loops. Students with programming experience are more likely to complete the entry-level courses. OO is harder than imperative programming; may not be the right language to start with because of the overhead; there is a desire to keep students in one language through the three semesters; there may be a need for a CS-0 course. The course content of CS1 is too much; it takes too much time to teach the OO philosophy. Is it appropriate to spend time on code standards and comments in the entry level courses? Teaching Java in CS1 is giving students a firmer grounding, although language causes problems with students learning the material. With the change made to CS1, it is now possible to cover core concepts in CS2.

Students in data structures had little understanding of basic data structures with respect to what and when to use. There seems to be more focus on code and documentation than problem solving in the entry level courses. Laboratory/Assignments Preparedness of TAs Preparation of TAs would be helpful. The TAs should be informed of the expectations of the professors and the courses. There are not any problems with the TAs. CS1-2 has the best prepared TAs. TAs are good and dedicated. TAs do not seem to be motivated to assist in meeting departmental goals. The TAs are qualified. TAs are qualified; nevertheless, there should be some supervision of the grading and instruction. I am not aware of training for the TAs. Ive trained my TAs. The expectations vary substantially from instructor to instructor, and TA positions are not awarded on the basis of performance as a TA. TA oversight There is a hands-off style. Faculty in CS1401 met weekly with TAs. The faculty did not observe TAs in the laboratory and did not provide detailed grading instructions. There are regular meetings with TAs at which goals and grading criteria are discussed. Trusted grading of TA although may need to check more closely. TAs knew what was expected. The instructors had weekly meetings with TAs; reviewed test cases with TAs. Assignments and assessment of labs Problem-solving is missing in laboratory assignments. Assignments are not an issue. Its important to have a progression from small to large programs going from CS1 to Data Structures. Upper division courses, including Automata, should include laboratory assignments. It saves time in the long run to have TAs grade the students on the spot. It is necessary to tell TAs explicitly to remove points. Some TAs do not give assessments back in timely manner. There are no quizzes in labs. Labs supported the course goals. Students write 1-3 programs every week [CS1-2]. Have invested time in setting up CS1-3 courses; question that needs to be answered is whether we want flexibility. There is inadequate assessment, but problem is lack of time. Not enough assignments may be a problem. In Data Structures there were no labs because it was summer, but students had a lab that they built upon.

The laboratory assignments in the beginning courses should be straight forward and focused on building the students understanding of the core concepts; the interface should be emphasized less. It does not appear that assignments systematically progress to higher complexity either in particular courses or over the program. Other The TAs typically work more than 20 hours per week. There has been a reduction in TAs, but not in the lab sections. There are 2 TAs for CS1 with 63 students. TAs report that they spend a lot of time with students. TAs give some lecture. TAs are critical because they have one-on-one contact with students. More TA support in entry courses would be helpful. Collected feedback from students and gave them back to the TAs. Lab availability may be a problem; the labs are not open on Sunday and the Saturday hours have been reduced. Students need to be questioned more to ensure their understanding. Its important to encourage group learning in the laboratory, but students must be held accountable for their learning. Students Preparedness Students do not know the structure of the curriculum after CS1401. Students are aware of context; the topics are motivated. The CS1-2 courses motivated the CS curriculum. Students see relationship between previous courses. Students lack context for understanding importance of data structures. Students do not have basic understanding of discrete math. Students do not seem to enjoy the field; theyre doing too many things and taking too many courses. Students I see in upper division courses seem surprised when I describe to them the landscape of technology jobs and the relationships between what we try to show them in the program and what they may need to know in the workforce. They also seem surprised when I tell them I expect them to have working code by the deadline. Students have passed ESOL courses but cannot pass English. There is a delicate balance between retaining average or under-prepared students and challenging the good and fully prepared. I have seen a number of very good senior students with very bad grades simply because they were too bored with the course work. At UT Austin, they face a similar problem. They have instituted a type of honors course specifically to challenge the better students. I doubt if we have the resources for such a thing here, but we should be thinking of how to keep the level of excitement high for the better students while not losing the majority. Cheating Cheating does not seem to be a problem in the entry-level courses. Accountability/Motivation

There is tension in accountability. Its important to hold students accountable. Students should be held accountable. Students must be held accountable for their learning. Students can be motivated by the instructor and TAs.

Homework/Study habits Study habits of students are a problem; those that have good study habits do well and those that dont have good study habits will not pass. Problem with homework being turned in on time. The study and work habits of students are lacking. Students need to realize how hard that they have to work. It is important to be strict on late assignments and on grading. Students lack motivationturn in assignments late and have excuses for not doing homework. Students need to realize that turning work in late is unacceptable without a valid excuse. Instruction Motivation to meet departmental goals TAs are not motivated to meet the departmental goals. This may be a problem. For new faculty, there may be a problem with motivation for meeting goals and awareness of core courses. Its not clear that the TAs are aware of the departmental goals. Not all of the instructors (faculty, instructors, TAs) are motivated to meet the stated department goals. Faculty need to be on board to understand course objectives and outcomes. The educational mission and objectives do not match. Content/Teaching There is at least one question on the exams that pushes students into deeper thought Students have a practice exam before the final Instructors taught the core concepts and invested a lot of time into explaining material. Not all faculty members have a strong background on the core concepts. In pair teaching, more experienced teacher takes on OO concepts. Pair teaching works. There should consistency on who teaches the courses. Some professors do not share the same thoughts on how the core classes should be taught. It would be helpful to have a discussion with other instructors over ones course outcomes and assessment in order to put the course in perspective and understand what could be improved; this also will help with defining the relationship with other courses. I do not understand the goals of each course in the program. I think I understand how my courses fit into the needs of following courses. I am not surprised to see different results from different instructors. I dont think there is general agreement on what capabilities students should demonstrate before passing a course, even among those instructors teaching the same course. I can think of times when instructors were encouraged to pass students who may not have been prepared for the next course. While we all are collecting data on assessment, it does not appear to be common to evaluate the data in an effort to identify and rectify weaknesses.

Remedial Assistance Remedial or additional assistance is available but students are not seeking it. It would be helpful to have best students spending 1-2 hours a week to help other students. There is a problem with remediation and additional assistance. Departmental tutoring is not available. It would be helpful to have a culture in which more senior students help students coming into the program. Students who volunteer for peer tutoring should be acknowledged.

Other Comments Faculty members are overburdened; need to prioritize the steps to be taken. Arch. I could be pre-requisite to the CS 3360 course. It is difficult to find a qualified TA for CS3360. Faculty should not be given core classes when they first come; pairings are important when teaching core classes. There does not appear to be any reward for faculty who spend the time to do a good job teaching. Institutionally, mediocre teaching is acceptable, and anything better than mediocre is unrecognized. While my course assessments (and my student evaluations) indicate that I should spend more time teaching, I am being told to spend less time teaching. (Thus, not only is mediocre teaching acceptable, it is encouraged.) Did I misread the mission statements?

Student Interviews
The comments given were recorded by Kay Roy during a discussion with Software Engineering students regarding coding strengths/weaknesses as related to the CS curriculum, and the impact of coding and scheduling issues on their projects. Inconsistent lower-level courses. Some of them require a lot of code and some dont. Depends on the professor. Dont throw [students] right into coding during the first courses. [The professors] need to talk about concepts, design, and pseudo-code. In response to the question of why their teams test cases used hard-coded values: In no class was there a focus on the way you should plan and design a project, [such as] how to approach the problem. Need more problem-solving. As seniors, havent coded in awhile. Upper [classes] need more [programming assignments]. There is a lot of cheating. (Other students seemed to agree with this.) (About amount of coding in earlier courses): Depends on the professor. With some you learned a lot about assembler, but with some you did not. In Data Structures, we did not get a lot of coding. (About how to avoid last-minute code/integration/test problems on their projects): [In Software Engineering] Maybe configuration management should be taught earlier in the course. In the fall? {In Software Engineering) Maybe have checkpoints/deliverables for code segments. Pacing [of the second semester] doesnt seem as good as in the fall. (About how lower-level CS students can be motivated): Need to be turned on to enjoyment of coding and excited about it instead of dreading and avoiding it. Where in the coursework are general good programming practices taught? Issue of TA accountability (check students to make sure they do their own coding).

Summary and Recommendations 1. Teaching. Pair teaching has provided an effective approach for preparing new professors to teach a course. Faculty members report that this is working well. To help with the wide variations in how courses are taught and to create an additional resource for instructors, it is recommended that course histories be maintained in a central place. It also is essential for courses that are not pair taught and for cases when a new faculty member must pick up a course unexpectedly. The history should include syllabi, course preconditions and outcomes, outcomes assessment reports, text books, homework assignments, laboratory assignments, lecture notes, handouts, and exams. An on-line repository or shared directory could be helpful for this purpose. Also, Connexions at Rice University is a system that could be helpful. Action Items. a. Request approval of faculty for creating a course material repository. b. If approved, brainstorm on ways repository can be created and discuss content of repository and assign task to appropriate faculty member(s). 2. Course Outcomes. The Curriculum Committee should be responsible for making the latest course preconditions and outcomes accessible to faculty members and students. The Committee has had discussions on creating a common repository. The evaluation committee is asking the Curriculum Committee to consider a repository on the departmental web site. The Committee should review and update course outcome documents every two years and discuss proposed changes with faculty. The Committee should ensure that each course provides mastery level 3 of some knowledge and skills and outcomes do not include preconditions at mastery level 3. Action Items. a. Request approval of faculty to make course outcomes available to students. b. Determine where the outcomes will be stored and how they will be maintained. 3. Honors Course. Check the feasibility of instituting an honors course designed to challenge the better students. This will address the issue of preparedness of students. In particular, it provides a way to keep the level of excitement high for the better students while not losing the majority. Action Item. Assign a faculty member the task of determining the feasibility of instituting a CS honors course. 4. CQI. Set an informal and formal process for course assessment. The informal process will consist of a report-out at an end-of-semester faculty meeting of what worked well in the course, what did not work well, suggestions and action items, and other general observations. The formal process will consist of a formal report that documents a comprehensive review of the assessment results. The reports for a course will be due every two years. 5. Action Items: a. Request faculty approval for a staggered schedule to review core courses every second year; thus, sample assessment results would be collected every other year or each time the course changes as a result of a new instructor or new syllabus. b. Request faculty approval to assign an assessment evaluation team for each of the following clusters: Fundamentals (even year fall semester): CS1401 (Intro. to CS), CS2401 (Elem. Data Structures/Algorithms), CS2402 (Data Structures)

c.

Systems (odd year spring semester): CS4375 (Operating Systems), CS3320 (Comp. Arch. II), CS3432 (Comp. Arch. I) Languages (odd year fall semester): CS3350 (Automata/Computability/Formal Lang.), CS3360 (Design/Implementation Prog. Languages) Software (even year spring semester): CS3331 (Adv. OO Programming), CS4310 (Soft. Eng.: Requirements Engineering), and CS4311 (Software Eng: Design and Implementation) Rolfe will develop a template for the outcomes assessment report that at a minimum will consist of the following information:

Number of registered students; number and % of withdrawals; number and % of students passing course (of total and non-withdrawals) Distribution of grades actual numbers, % of passing students, % of all students Preconditions and expected outcomes with mastery levels Assessment results and analysis Suggestions and action items Rolfe will define a CQI process to complete the feedback loop. Request faculty approval for a neutral person, possibly from the Deans Office, who will interview graduating seniors. 6. Curriculum. Many changes have been made to the curriculum in the last five years. It is critical that before further changes are made that the department review and update the departmental-level student outcomes. It is recommended that the department follow the Guidelines for Constructing the Curriculum as defined by the IEEE-CS/ACM Computing Curriculum (Software Engineering has an excellent guide). Many of the students, faculty, and the evaluators expressed the need to focus on problem-solving skills and strategies as well as laboratory assignments that hone fundamental programming skills. Action Items: a. Set a date for a mini-retreat to determine departmental-level student outcomes. b. Request faculty approval that the Curriculum Committee create a plan to evaluate the curriculum using IEEE-CS/ACM Computing Curriculum guidelines; the plan should include clusters of faculty (as described in CQI) to assist in the evaluation.

CQI Report Fundamentals Curriculum


August 1, 2005
Prepared by: Ann Q. Gates

Committee Members: Vladik Kreinovich (chair of subcommittee), Yoonsik Cheon, Leticia Sifuentes, Martine Ceberio, Eric Freudenthal, and Ann Gates.

Overview
Ceberio, Freduenthal, and Gates reviewed the instructors assessment, which are based on course outcomes and student performance, course material, and examinations. The assessment is included in the appendix of this document. The recommendations are those made by the professor and some of the committee members.

CS1401
Summary of Course. This is the first course for students majoring in Computer Science. It provides an introduction to problem solving with computers, including representation, control structures, and software development methods; programming environments; closed laboratory and programming assignments in a high-level language; social and ethical aspects of computing. This course has been taught by Dr. Kreinovich and K. Roy. Analysis of Assessment. The summary is based on the grades of the corresponding problems in the final exam. While the exam was comprehensive and the vast majority of the topics were covered by the problems presented on the final exam. The number of problems had to be much smaller than the overall number of topics. As a result, each problem usually covered several topics. Within each problem, it is often difficult to gauge to what extent an error was caused by the inadequate skills in different subtopics covered by this problem. We, therefore, used the average grade for this problem as a gauge for the students' knowledge is all covered topics. Because of this methodology, when a problem included several topics of somewhat different complexity (e.g., if-then statements and nested if-then statements) we feel that we probably underscored the students' knowledge of the simpler task. Grades based on the labs, quizzes, and midterm exams were rounded to the nearest 5; grades for the final exam are given as is, but, because of the limited sample size, the accuracy of these average grades is, in effect, equivalent to a similar rounding. From this viewpoint, 77/100 and 78/100 are clearly the same result. The results showed that students did not score 75 or better on the following:

commonly-used built-in reference types, e.g., single-dimension arrays, strings; result 70/100 (Problems 2 and 9) design simple ADTs to solve a problem similar to one seen before; result 74/100 (Problem 4) apply testing and debugging strategies, including black-box and white-box testing, test drivers, stubs, and test suites, to identify software faults; result 64/100 (Problem 2) describe numeric data representation and number bases, and convert numbers between bases; result 45/100, with extra credit 58/100 (Problem 10) implement simple ADTs incorporating multiple primitive instance variables and at least one reference instance variable, with appropriate accessor and modification methods; result 74/100 (Problem 4) describe or identify basic social and ethical implications of computing, including basic intellectual property issues and historical examples of software risks; result 45/100, with extra credit 58/100 (Problem 10) identify major figures in computing and describe, at a high level, their contributions; result 72/100, with extra credit 94/100 (Problem 1) document methods in terms of preconditions, postconditions, returns; this material was not covered in class describe, at a high level, major programming paradigms; this material was not tested in tests, result 50/100, based on TA evaluation Recommendations. Assessment. An alternative possible approach to evaluate the outcomes of the course would be to use the grade for the first quiz or homework in which a similar topic occurred, but that would also underscore the grades, because that grade would reflect the students' knowledge the first time they countered the corresponding simpler notion; in our experience, by the time the students get to the final exam, their original knowledge of simple notions improves drastically. In the future, for the ease of assessment, we may want to divide each problem to a larger number of subproblems are grade each subproblem separately. Built-in reference types: consider introducing this topic earlier in the semester so that students can revisit the topic throughout the semester. ADT and pre- and post-conditions: investigate the possibility of introducing pre- and postconditions with ADTs. Does the book support this or does it have to be supplemented? Provide 6-12 contact hours devoted to other paradigms. Social and ethical implications: add an in-class exercise on this topic;

CS2401
Summary of course. The instructors that regularly taught the course are no longer in the department. The course was taught in the spring semester by Dr. Roach and Leticia Sifuentes. See course assessment report in the Appendix. Processing (Roach). The observations made by Dr. Roach follow: Topics not covered in class: Multidimensional arrays Memory allocation for simple data types Space complexity

Hashing Topics covered well: Recursion Sorting Linked lists Stacks Queues Binary trees Game trees and alpha-beta search Problem solving Testing

Topics not covered well: Inheritance and class hierarchies Impressions: The students coming into 2401 in general had a very difficult time reading and tracing java code. They seemed to lack a clear understanding of the model of computation provided by the JVM, and they clearly had no notation for keeping track of program state. They were mostly uncomfortable with recursion, even after several weeks of working on it. (Intellectually, they understood what was supposed to happen. However, they were unable to decompose problems into base and recursive cases and had great difficulty tracing and writing recursive Java code.) The drop rate was much higher than I had hoped. Peer facilitation on the weekends was a great success. However, we still lost nearly half of the incoming students. Many of the students liked the cooperative exercises. My intent during the semester was to lecture over fundamental ideas, have the students work out basic Java concepts in the labs, and then to provide the students with many programming assignments, some of which are non trivial. For example, one of the programming assignments required them to generate a number of random data sets and time various implementations of sorting algorithms. While none of the algorithms is particularly difficult (and can be readily obtained from the internet), implementing each of them, instrumenting them, and comparing the execution times for each of them requires understanding of the algorithms and the implementations to a significant degree. Things I would change: The labs. The time in the lab is not as well spent as it should be. Approachability: Many students hesitated to come see me about programming assignments, even after requiring all programs be completed in order to pass. Recommendations. Students do not have any background in C and this provides some difficulty for them. Task the undergraduate curriculum committee to address the lack of background in C programming (see Operating Systems summary) The course needs to emphasize memory management systems more. Note: E. Freudenthal and N. Ward made the following observation regarding outcomes for 2401 that are essential prerequisites for 2402:

(A student entering 2402) must be able to ... program in java including knowing use of: private, public, protected, static keywords write recursive programs comfortably build and use lists and binary search trees and their iterators explain how address computation (array indexing) is constant time and cheaper than traversing many pointers, and that this is why hashing (part of CS2) approximates constant time complexity 5. explain and understand deeply two representative sorting algorithms (for example, simple bubble sort and simple sort by stuffing and then enumerating the contents of a binary search tree), and not more, so that these can be explained properly in 2402 6. understand the relationship between log2(x) and exp2(x), and be able to use this to relate the capacity of a binary tree to its height. This relationship is so fundamental to so much of the analysis in 2402 that it ought to be reviewed every time it is relevant in the curriculua for discrete & 2401. 1. 2. 3. 4.

CS2402: Data Structures


Summary of Course. This course is a survey of classic algorithms and data structures, useful for sorting, manipulating graphs, storing data collections and mappings. Students acquire an understanding of generalization techniques for evaluating the complexity of these algorithms, and they apply these algorithms to a wide range of computer science problems. Introductory techniques for determining correctness and evaluating complexity are presented. Students are expected to master basic skills and to develop an intuitive understanding of how the survey analysis techniques are commonly used. The course has been taught by different instructors. Dr. Ceberio taught the course in Fall 2004 and Dr. Eric Freudenthal taught it in Spring 2005. The following is a summary of Dr. Freudenthals evaluation of his course. The outcomes should include dynamic programming and amortized analysis Students have trouble with inverse relationship of log and exp. The TAs can be better used; structure of lab assignments should be assessed. Unclear about how much on design patterns should be covered. Improve the granularity of assessing exams (Freudenthal) Emphasize the following: algorithm and data structure selection, pre-, in-, and post-order traversals; the interaction between algorithms and architecture

Recommendations. Push C programming into earlier courses. Continue to use strategies for group work and presentations that involve students. Provide instructor with a template for recording mapping from outcomes to assessments. From N. Ward and E. Freudenthal: to keep things straight, we propose the following slogan: "2401 is programming and elementary data structures; 2402 is problem solving, advanced data structures, algorithms and complexity." Note that this matches the catalog descriptions fairly well. Other recommendations:

Nigel Ward: students do not know how to program in C, are weak in Unix, and have never heard of a makefile.

CQI Report Systems Curriculum August 1, 2005


Prepared by: Ann Q. Gates Committee Members: Patricia Teller (chair of subcommittee), Eric Freudenthal, Michela Taufer, Rodrigo Romero, Rolfe Sassenfeld, and Ann Gates (program head)

Overview
The committee members reviewed the instructors assessment, which are based on course outcomes and student performance, course material, and examinations. The assessment is included in the appendix of this document. The recommendations are those made by the professor and the committee members.

CS3432: Architecture I
Summary of Course. This course has been taught by different professors over the last two years. Dr. Rodrigo Romero taught the course in Spring 2005 using the course material (lecture notes, viewgraphs, exercises, lab book and assignments, and tests) that had been prepared by Drs. Patricia Teller and Steve Roach. The summary below is based on his feedback. Instructor was able to cover the required material. Book current book does not align with the prepared viewgraphs and as result students became confused; readiness assessment also does not match lecture. It would be desirable to have a better book that is focused more on CS. Areas of difficulty for students Do not come into course knowing pointers. Weak in recursion. Lack understanding of stacks, queues, and actual architecture. No exposure to activation records and are intimidated by stack frames. Control flow: had trouble with while and repeat Trouble with subroutine calls and parameters Unclear whether TA workload is 20 hours. Recommendations. Place course material into mySpace. Create a master repository. Coordinate with CS2 instructors to address the areas that students are having difficulty. Have curriculum committee review course outcomes for CS2 and 3432 to address the areas of difficulty. Meet with Eric McDonald and Moya in ECE to see if this course could be coordinated with their department.

CS3320: Architecture II

Summary of course. The course has been taught regularly by Dr. Brian dAuriol. The spring semester was his last semester at the university. The course will be taught by Dr. Michela Taufer. See course assessment report in the Appendix. Students performed inadequately in programming. Areas of difficulty for students Writing systems level code. Basic skills such as unions, bit shifting, and bit masking

Recommendations. Students do not have any background in C and this provides some difficulty for them. Task the undergraduate curriculum committee to address the lack of background in C programming (see Operating Systems summary) The course needs to emphasize memory management systems more.

CS4375: Operating Systems


Summary of Course. The course was taught by Dr. Eric Freudenthal both in Fall04 and Spring05. The course has recently become a required course for students. Based on analysis of exam performance, Dr. Freudenthal made the following observations: During the earlier term, students had trouble mastering concepts related to process scheduling, synchronization & deadlock. As a result, Dr. Freudenthal changed his presentations of these materials, and student mastery, as measured by exams, was substantially improved. Student understanding of I/O management and device scheduling remained shallow. In the coming term, new independent and in-class collaborative exercises will be employed. Dr. Freudenthal attended CETAL workshops on effective pedagogy. He reports that inclass group work exercises have been very effective. Dr. Freudenthal also developed a successful technique for group work, where each group prepares transparencies to explain their work; this saved time and permitted more meaningful student involvement in lectures. Dr. Freudenthal reports that, due to his ability to modify explanations in response to student questions, blackboard presentations are frequently more effective than pre-prepared slides for this material. Several of this courses lab assignments require mastery of the C programming language. Most students attending this course have only a superficial level of understanding of this language and its semantics and are, thus, under-prepared for these labs. As a result, students who attended the course in the earlier semester had substantial difficulty with the required labwork. The latter semester, Dr. Freudenthal assigned a C programming lab on the first day of class that forced the students to identify and address their weakness in C. This tactic was successful in that students quickly gained mastery of the C language and had far less difficulty with labwork than the previous term. Recommendations: Student mastery of C is essential: it would be helpful if previous coursework to include more extensive coverage. It is essential that the course include an early lab assignment that permits students to evaluate their skill levels and, if necessary, improve them. Continue to use group work & other active student engagement.

Networks
Summary of course. This course has been taught regularly by Dr. Rolfe Sassenfeld. When using a 75% threshold the results of the outcomes analysis shows that the course met all of its learning objectives. However, some of the outcome objectives, 1b. Future Technology and 1d. Probabilistic Models, measured right on the threshold. These areas will need to be reviewed next time the course is taught in order to emphasize the appropriate material and bring the two objectives in question more in line with the norm.
Instructors Observations (when the course was taught in the summer session) The class time was rescheduled due to faculty availability. This caused difficulties for some of the students that were presented with scheduling conflicts. Class enrollment decreased as some students dropped the class while others dropped the conflicting course. Overall, the 19 remaining students seemed to prefer the accelerated pace (8 weeks versus 16 week). The two hour class format allowed the necessary time for in depth group work assignments. During lectures the students were very interactive with the instructor and participated in class discussions. Many of the students asked insightful questions that helped to illuminate certain topics of discussion. The students did well in their group work assignments demonstrating knowledge, comprehension, synthesis, and application of Computer Networks in their learning process. One downside is that repeated student absenteeism can hurt grades when requiring group work of all students. I was impressed with the high class participation level of the undergraduate students. Recommendations. Scheduling: Course scheduling changes should be minimized by ensuring faculty availability for scheduled courses. Update students to any scheduling changes as soon as possible since course scheduling changes adversely affect enrollment numbers. Summer class should be offered in the 4 week semester format (summer 1 or summer 2). Course content should be extended to include: Ports TCP/IP UDPID Sockets programming Other Recommendations received during the year: Mary Payne (Masters student December 2004): commented that we need to teach RPC and RMI (Javas Remote Method Invocation) Note: The outcomes for Systems courses are analyzed formally in the spring semester of odd years; however, I strongly encourage all instructors to evaluate their systems courses each semester and to share results with your colleagues. Please collect graded tests for students who score high, average, and low in the course in the semester that the course will be evaluated formally.

DRAFT

CQI Report Languages Curriculum


Francois Modave, Martine Ceberio, Yoonsik Cheon, Luc Longpr January 19, 2006

Overview
The committee members reviewed the instructors assessment, which are based on course outcomes and student performance, course material, and examinations. The assessment is included in the appendix of this document. The recommendations are those made by the professor and the committee members.

CS3350: Automata, Languages and Computability


Summary of the course: the objective is this course is to present the students with the fundamentals ideas and models of computation. The following models will be presented Part I: finite-state automata and regular languages Part II: pushdown automata and context-free languages Part III: Turing machines and introduction to computability, algorithms, and ChurchMarkov-Turing Thesis At the end of this course, students will be able to build a FSA (resp. PDA) for a regular language (resp. CFL) and vice versa, convert a non-deterministic FA into an equivalent deterministic one, show that a language is or is not a regular language or a context-free language using the different pumping lemmas, build parse trees and derivations, Turing machines for recursive languages. Finally, students will be able to understand the inherent limits of Computer Science through the introduction of computability. This course has been taught by either Luc Longpr or Francois Modave in the last 4 years. Instructors were able to cover the required material. The course was also offered during the summer, over an 8 week period. Students did not have more problems assimilating the material than over a regular semester. A good understanding of discrete mathematics is necessary for this class. The vast majority of the students taking CS3350 have usually taken discrete mathematics more than one year ago. As a consequence, they struggle with mathematical formalism and notation, with proofs and with conceptual constructions. Quizzes scores tend to be low. This is consistent with the impression of the instructors that reading assignments are not done. This also explains why students struggle with the concepts presented in this class. 1

DRAFT Regular languages are introduced first followed by context-free languages. Even though CFL are structurally more complicated, Students often do better in the second section of the class. This is likely due to the surprise of having their first theoretical class in Computer Science, which takes many students aback in the first few weeks before they adjust. In class group works have a very positive impact. For the best students, it helps them reinforce what they have understood. For the weaker students, the interaction with stronger students allows them to ask questions they may be intimidated to ask in class, and therefore allow them to understand the concepts introduced. Students fail to see the applications of this class.

Recommendations: Work on the curriculum to have students take discrete mathematics and CS3350 in sequence. Possibly introduce a new CS2350 class to create a CS2350/CS3350 theory sequence. Introduce quizzes based on the reading assignments before it is covered in details in class Spend the first hour of class explaining students that this class may have a different flavor as it is more theoretical, and that, despite the fact that there are not so many programming assignments, a lot of work is required. Present more applications and connections with other classes such as finite automata and state transition diagrams, a brief introduction to Lex and Yacc, extracting keywords from a text.

CS3360: Design and Implementation of Programming Languages (cross listed with the software committee)
Summary of course: In this course, the students study concepts and examples of programming languages with the goal of acquiring the tools necessary for critical evaluation and rapid mastery of programming languages and constructs. The course surveys the constructs and capabilities typically found in modern programming languages, and several languages of different programming paradigms are presented in detail. The summary below is based on the last two offerings (Fall 2005 and Spring 2005) by Cheon. Cheon made the following observations: It was hard to meet the learning objectives stated in the Course Outcomes due to time constraints. This is partly because the course has two different goals: to learn languages of different programming paradigms and to study language fundamentals and design/implementation. In each offering, four new programming languages were introduced, and due to time constraint, the depth was sacrificed. In both offerings, concurrency structures and exception handling were not covered, although they both appear in the Course Outcomes. This is again was due to time constraints. 2

DRAFT Some examples of imperative language constructs and concepts had to be recast in Java, as most students are not exposed to imperative or procedural languages. Virtual machines are a core topic of PL in CC2001 document, but are not included in the learning objectives. Students have difficulty understanding formal approaches to defining programming language semantics, such as axiomatic semantics and denotational semantics. They dont seem to be equipped with necessary mathematical background, including functions and first-order predicate logic. Homework scores were better than exam scores, which may be a matter for concern. Students are more enthusiastic about learning practical programming languages such as PHP and AspectJ, rather than more theory-oriented languages such as Haskell and Prolog. Recommendations: Consider splitting the course into two: one for studying languages of different programming paradigms and the other for studying language fundamentals and design/implementation. The first course shall cover one representative language from each programming paradigm, including imperative (C), functional (Scheme, ML, or Haskell), logic (Prolog), and scripting (Python or PHP). It can also accommodate language requirements of upper-division courses. If course splitting is not possible, find a way to cover more core topics recommended by CC2001, such as language translation, virtual machines, and object-oriented programming. Examine if virtual machines are taught in other core courses; if not, add it to the learning objectives of this course. Allocate more time on language translation. Add coverage of concurrency and exception handling or revise the learning objectives to fix mismatch between them. Try pair programming for homework or programming assignments, where each pair includes a struggling student and an outperforming student. Examine whether students coming out of this course are adequately prepared for upper-division courses regarding programming language requirements.

CQI Report Software Curriculum


Yoonsik Cheon, Nigel Ward, Ann Gates, and David Novick January 12, 2006

Overview
The committee members reviewed the instructors assessment, which are based on course outcomes and student performance, course material, and examinations. The assessment is included in the appendix of this document. The recommendations are those made by the professor and the committee members.

CS3331: Advanced Object-Oriented Programming


Summary of Course: This course provides an in-depth exposure to the object-oriented programming paradigm, which builds upon programming experience gained in lower-level computer science classes. The course emphasizes on programming in an object-oriented language with which students are already familiar, and on requirements, testing, code reading, and comprehension. The course has been taught by four different professors over the last two years: Delgado, Novick, Cheon, and Sifuentes. The summary below is based on Outcomes Evaluations by Delgado and Cheon. Instructors were able to cover the required material. In one offering students seemed to have trouble writing formal pre- and post-conditions. In one offering students seemed to have difficulty understanding and applying design patterns. Homework scores are better than exam scores, which may be a matter for concern. Pair programming, where each pair included a struggling student and an outperforming student, was tried for two assignments in Fall 2004, and seemed to work well. There is a mismatch between the latest Course Outcomes statement on our Web site and the content of the course as recently taught; in particular coverage of C has been lacking.

Recommendations: Add coverage of C, focusing on the features which are most different and most needed for success in subsequent courses, namely pointers. Adopt a book which explains design patterns better, e.g. Horstmann. Use pair programming extensively. Examine whether students coming out of this course are adequately prepared for 4310, Software Engineering, 3360 Design and Implementation of Programming Languages, and other advanced courses.

CS3360: Design and Implementation of Programming Languages


Summary of course: In this course, the students study concepts and examples of programming languages with the goal of acquiring the tools necessary for critical evaluation and rapid mastery of programming languages and constructs. The course surveys the constructs and capabilities typically found in modern programming languages, and several languages of different programming paradigms are presented in detail. The summary below is based on the last two offerings (Fall 2005 and Spring 2005) by Cheon. Cheon made the following observations:

It was hard to meet the learning objectives stated in the Course Outcomes due to time constraints. This is partly because the course has two different goals: to learn languages of different programming paradigms and to study language fundamentals and design/implementation. In each offering, four new programming languages were introduced, and due to time constraint, the depth was sacrificed. In both offerings, concurrency structures and exception handling were not covered, although they both appear in the Course Outcomes. This is again was due to time constraints. Some examples of imperative language constructs and concepts had to be recast in Java, as most students are not exposed to imperative or procedural languages. Virtual machines are a core topic of PL in CC2001 document, but are not included in the learning objectives. Students have difficulty understanding formal approaches to defining programming language semantics, such as axiomatic semantics and denotational semantics. They dont seem to be equipped with necessary mathematical background, including functions and first-order predicate logic. Homework scores were better than exam scores, which may be a matter for concern. Students are more enthusiastic about learning practical programming languages such as PHP and AspectJ, rather than more theory-oriented languages such as Haskell and Prolog. Recommendations: Consider splitting the course into two: one for studying languages of different programming paradigms and the other for studying language fundamentals and design/implementation. The first course shall cover one representative language from each programming paradigm, including imperative (C), functional (Scheme, ML, or Haskell), logic (Prolog), and scripting (Python or PHP). It can also accommodate language requirements of upper-division courses. If course splitting is not possible, find a way to cover more core topics recommended by CC2001, such as language translation, virtual machines, and object-oriented programming. Examine if virtual machines are taught in other core courses; if not, add it to the learning objectives of this course. Allocate more time on language translation. Add coverage of concurrency and exception handling or revise the learning objectives to fix mismatch between them. Try pair programming for homework or programming assignments, where each pair includes a struggling student and an outperforming student. Examine whether students coming out of this course are adequately prepared for upperdivision courses regarding programming language requirements.

CS4310 and CS4311: Software Engineering I and II


Summary of Course: These are a sequence of software engineering courses spanning over two semesters. These courses together cover major software engineering topics, including (1) methodologies, approaches, and techniques associated with software requirements analysis and definition, (2) process for defining requirements of a system including feasibility study, requirements elicitation, formal specification, modeling, validation, verification, and documentation, and (3) other topics such as cooperative teamwork and project management. The courses attempt to balance theory and hands-on experience. Students participate in a two-semester team project in which they work with a customer. Each student performs different roles in the team. These courses have been taught by Gates, Roach, and Cheon.

The observations below are based on an analysis of the course outcomes of Fall 2004 offering of CS4310 by Gates and Cheon and Spring 2005 offering of CS4311 by Gates and Cheon. Overall, the course was successful in attaining the main educational outcomes. In CS4310, the learning objective regarding societal issues was not met. However, the topic was later covered in the ethics and professionalism lecture of CS4311. In CS4311, students also worked on an in-class assignment concerning societal, ethical, and professionalism issues. In CS4311, the outcomes dealing with PSP and cost estimation were not met because there was not enough time to include the material in the lecture. The students ability to construct software from a design seemed to be weak. All teams successfully implemented the GUI part of the application, but they couldnt make a significant progress on the business logic behind the GUI. Its interesting that most teams chose C# as their implementation languages, though C# had not been taught in any CS courses. The quality of code was not up to the expectation, and students in general didnt appear to have strong programming skills. Students seemed to have difficulty scheduling and meeting outside class for team/project work. Some teams used JUnit or NUnit as their testing framework. Recommendations: Continue to use the team/project-based curriculum and allocate more time for in-class project or group work. Examine whether students coming to these courses are adequately equipped with programming skills; if not, develop a scheme to improve them in collaboration with prerequisite courses. Consider to incorporate an incremental or iterative development approach, as team projects (in particular, implementation) seem to be always behind schedule. Consider to develop UML-centric course materials and incorporate more support tools, such as UML, unit testing, and version control.

CS 3331 Advanced Object-Oriented Programming Spring 2006 Course Outcomes Rodrigo Romero
Introduction This document presents an analysis of the course outcomes as measured by average student scores in tests and project work. Course Catalog Description An in-depth exposure to the object-oriented programming paradigm, which builds upon programming experience gained in lower-level Computer Science classes. Emphasis on programming in an object-oriented language with which students are already familiar and on requirements, testing, code reading, and comprehension. Course Objectives The main course objectives are to acquire the knowledge and skills needed to develop quality Java programs, in particular, by using UML notations, design patterns, and application frameworks. An additional objective is that students acquire software design, development, and modularization skills programming in C. Course Outcomes At the end of the course, students will: 1. Be able to model system structures and behaviors with UML 2. Be able to program using advanced features of Java 3. Write program documentation and design by contract 4. Conduct unit testing 5. Be familiar with and apply design patterns 6. Use application frameworks 7. Be able to write programs in C Outcome Analysis The letter grade distribution for the 25 students registered for the course is the following: two students dropped the course, three students obtained an A, eight students obtained a B, four students obtained a C, five students obtained a D, and three students obtained an F. Considering that a grade of C or better is required to pass the course, 15/23 or 65.2% of students obtained a passing grade. The overall course average was 72.3.

Table 1. Average grade per outcome Outcome short description Average Evaluated by Questions/Problems/Project *T2:8-10,12,17-19. MT1:3,4,7-9,11,12,15,23,24. F:3,14. P. 1. UML modeling 77.0 *T2:3,5,6-9,10,15-18. MT1:1-4,7-9,12,19. F:6-8,11-20,28. P. 2. Advanced Java programs 83.9 *T2:1,2,4,11-14. T3:8-20. MT2:7-11. F:4-6,10-12,16-19 P. 3. Documentation/Design by contract 74.1 *T2:14. T3:12,14. MT1:18 P. 4. Unit testing 69.9 *T5:1-16. MT2:11,12,14-16. F:9,24-27,29,30 5. Design patterns 63.0 *T4:9-15. T5:7,8,14,17,18. MT2:5,19,20. F:8,23 6. Use application frameworks 68.4 *T7:1-18. T8:1-18. F:31-55 7. C programming 74.6
* TX stands for test Test number X, MT for midterm test, F for final test, and P for project.

Observations and Recommendations This semester of CS3331 was a transition in at least two ways. First, as documented in the attached Course Redesign Notes written by Nigel Ward, this course bridges CS3 and Software Engineering. Second, this course introduced C programming as a course outcome. Aiming at achieving two of the redesign key topics, big programs and C pointers, the course included a final project in Java and three and a half weeks of programming in C material. To support progressing from CS3 to Software Engineering, the final project was structured with a series of deliverables for the various phases of project development. Table 2 illustrates the plan for the final project. Having deliverables for each development phase helped to keep students focused on each stage of the effort and avoided overwhelming them with a long, monolithic project. Table 2. CS 3331 Final Project Plan Phase Tools &Techniques Analysis Use cases or User manual or SRS Design CRC Cards UML Diagrams Implementation Eclipse Java API Test JUnit Documentation Javadoc Word Release Eclipse Due Deliverable Project name, goal, description, and functional specs CRC Cards and UML Diagrams 1st milestone = 70% Fully Functional 2nd milestone = done Software Test cases Javadoc Documentation & User manual April 28 Jar file

Students responded very well to C language lectures and assignments. Although the time allocated was modest, a lot of ground was covered. Knowing Java really helped them to

understand and apply the new material very quickly. My recommendation would be to offer a special topic course on C for Java programmers. This special topic would use as leverage all the Java and data structures knowledge that CS students have. This course would prepare students both for systems-related courses and good opportunities in the regional market place.

CS 3331, Advanced Object-Oriented Programming

Course Redesign Notes


Nigel Ward Oct. 28, 2005 Based on the Course Outcomes Draft downloaded from the CS Web Site in October 2005, plus discussions with Yoonsik, Ann, Eric, and Leticia Originally this course was the third semester in the Java sequence, since CS1 was in Scheme. At that point a key aim was to reinforce Java. Currently CS1, 2, and 3 are all in Java, meaning that that aim is now less important. However coming out of CS3 most students use Java inn largely procedural way, so some teaching of design, especially object-oriented design, will be good for them. Consistent use of Java in the curriculum raises a new problem: for accreditation purposes we need to teach a second language, so this course also needs some non-Java coverage: specifically a procedural language, e.g., C, as specified in the course outcomes. Pedagogically speaking, the key difference between Java and C is pointers. Being able to use pointers is of great value in OS and Systems programming and other high-value activities which our students need in later courses, and which our systems faculty, and other employers of our students, greatly value. (Of course, we could teach C++ instead of C, which would better fit in with the title of the course, but which would have no other advantage.) Another aim of the course is to provide a bridge between CS3 and Software Engineering. In the former students get good at clearly delimited, structured assignments, but are not yet experienced, confident programmers. In particular, they lack experience writing large programs (>200 lines), experience designing large programs, experience refactoring large programs, and experience re-using existing code. To do these things they need to use a language which is familiar and friendly. Thus this part of the course needs to be done in Java. Thus we can summarize the key topics of the course as big programs and pointers in C. The other landmark topics of the course are design patterns and UML. To learn the concepts underlying big programs, students will need a textbook, but the primary learning experiences will be writing, and rewriting ones own code. In the process the instructor will help them discover that they are using, or should be using, various design patterns. One possible vehicle for this would be a battleships gameplayer, where students start out by writing a simple client, the clients are matched in a series of tournaments, and after each tournament students discover and share best-

practice in design and code, and changed or additional requirements are added and new techniques are introduced. Another important learning experience will be reading exemplary code, mostly from the textbook. Thus much of lecture time will be devoted to code reading, where students read out-loud their code, or code from the book, explaining it line-by-line. Another major activity in lecture will be review at a higher level, in terms of examples of design patterns, modules, and UML diagrams, both student-generated and found in the textbook. The book which best supports this is Cay Horstmanns Object-Oriented Design and Patterns. This is similar in coverage to the previous text, Jia, in that it covers both design patterns and UML, and has code examples in Java. The strength of Jia is some realistic examples and an extended refactoring example. The advantages of Horstmann are that the code examples are more concise and focused, the writing is clearer, there are 2 fewer unnecessary chapters, and the book is lighter and $6 cheaper. For C coverage, the textbook will probably be Practical C Programming by Oualline or the C Programming Language by Kernighan and Ritchie. To provide coverage of how to design, modularize, and refactor in C, a supplement is needed, for example, Chapter 4 (Interfaces) of The Practice of Programming by Brian W. Kernighan and Rob Pike. Having two textbooks will be somewhat of a financial burden for students. The two cost a total of $110 new on Amazon. (K&R is probably widely available.) However there is no book which teaches both O-O design and C, so we have no alternative. The other topics of the course will fit naturally into the above activities. The course outcomes in particular include include unit testing and documentation. Another priority topic is GUI programming. As Yoonsik notes, the best way of learning object-oriented programming is using a well designed code library, such as Swing. Students also like GUI programming. Other topics which have been covered in this class in the past, namely exception handling, concurrent programming, and distributed programming, will be covered if time permits, perhaps in the course of illustrating design patterns or providing familiarization with C. Possible Time Allotment 1 week on UML 1 week on Class Design Generalities 8 weeks on Design Patterns, interleaved with projects, etcl 1 week on basic C 2 weeks on C pointers and common uses 1 week on modular design in C

Course Outcomes: CS 4310 Spring 2006 Course Title: Software Engineering I Course Instructors Thamar Solorio Course Description: CS4310: Design techniques including top-down design and development, information security, and stepwise refinement. Organizing and managing software system development including milestones, estimating, teams, walk-throughs, and documentation. Goals: To provide computer science students with software requirements and design techniques that result in the development of maintainable and reliable software that meets the customers needs. In practical terms, this and CS4311 are meant to provide students with an approximation of a real-world experience of software development. CC2001 recommends the following core hours: SE1 Software processes and metrics (6) SE2 Software requirements and specifications (6) SE3 Software design and implementation (6) SE4 Software validation (6) SE5 Software tools and environments (3) SE6 Software engineering project methodologies (3) SP4 Professional and ethical responsibilities (3) SP5 Risks and liabilities of computer-based systems (2) Course Contact Hours: 45 Learning Outcomes 1. Knowledge and Comprehension a. Identify major issues related to developing a human-computer interface b. Aware of basic societal issues regarding software development c. Know the purpose of audits, inspections, and walk-throughs d. Define basic software engineering concepts and principles (abstraction, cohesion and coupling, decomposition, encapsulation, information hiding, modularity, partitioning, stepwise refinement, and separation of concerns) e. Define quality attributes such as availability, correctness, efficiency, interoperability, maintainability, portability, reliability, reusability, security, simplicity, testability, and usability f. State the main features of process improvement models, e.g., CMM, ISO, PSP, QPI, TPI, CQI, Plan-Do-Check g. Discuss in general terms the main factors in cost estimation h. Discuss basic concepts in project management and team, including elements of a cooperative teams i. Describe basic concepts in requirements engineering. j. Define the basic elements and purpose of modeling 2. Application and Analysis a. Determine which life cycle model to use by analyzing different scenarios

b. Apply techniques for eliciting requirements, including conducting interviews and developing a throw-away prototype c. Analyze requirements to determine if they meet the attributes of well-written requirements d. Differentiate between audits, inspections, and walk-throughs e. Explain the steps for conducting a technical review, e.g., inspections, walkthroughs and audits f. Assess risks in software development and project management g. Apply project management techniques. h. Differentiate among modeling techniques. 3. Synthesis and Evaluation a. Construct a feasibility report b. Construct a software requirements specification c. Analyze and model aspects of a problem by applying object modeling d. Analyze and model aspects of a problem by applying data-flow diagrams e. Analyze and model aspects of a problem by applying state transition diagram f. Develop use cases and scenarios g. Organize and present technical work orally h. Write technical documents that are grammatically correct and technically sound.

Table 1: Summary of Outcomes and Assessment


Outcome Identify major issues related to human-computer interface Aware of societal issues Know the purpose of audits, inspections, and walk-throughs
Level* 1 T1** T2 Q5:4 2.9/4 Other Project Prototype assign. Project Project Q31 Q32 Q33 Q34 Final present. Q14 Q16 Q18 Final** Comments Met

1 1

Not Tested To be practiced in 4311

Knows basic software engineering concepts and principles Know quality attributes State the main features of process improvement models Discuss main factors in cost estimation Define basic concepts in project management Describe basic concepts of requirements engineering Define the basic elements and purpose of modeling Determine which life cycle model to use by analyzing different scenarios Apply techniques for eliciting requirements Analyze requirements to determine if they meet the attributes of well-written requirements Differentiate between audits, inspections, and walk-throughs Explain the steps for conducting a technical review Assess risks in software development Apply project management techniques Differentiate among modeling techniques

Q2:9 4.3/6

Q11:5 3.3/4

Met

1 1 1 1 1 1 Q1: 6 5.6/5.5 Q6: 8 7/8 Final present. Project Final present. HW In class assign. Q11 Project In class assignm. Project Final present. Reading assignm. Reading assignm. Project Project

Q13: 12 5/5 Q15: 6 2.6/2 Q10: 6 3.4/3

Met Met Not tested

Q11: 5 3.3/4 Q12: 6 2.3/2 Q5: 16 7.5/6

Met Met Met

Q5: 24 17/18 Q6: 8 7.4/8

Met

2 2

Q4: 9 5.6/6 Q1: 15 7.3/6

Q9: 6 3/3

Met Met

2 2 2

Not tested Not tested Q7: 6 3/3 Q8: 12 9.2/10 Met

2 2

Q4: 4 2.8/4

Project Q18 Project Final present. Q17 Q41 Project Project Final present. In class assign. Project Final Q1: 4 2/2

Met Met

Construct a feasibility report Construct an SRS Analyze and model aspects of a problem by applying object modeling

3 3

Q3: 6 5.7/6

Met Q2: 4 1/0 Q3: 6 3/4 Q18a: 7 4.6/4 Q18b: 7 5.4/6 Met

Q7: 25 23.6/24

Met

present.

Analyze and model aspects of a problem by applying DFD

Analyze and model aspects of a problem by applying STD

Q8: 30 16.9/15

Develop use cases and scenarios

Q7: 23 17.7/18

In class assignm. Project Final present. Q41 In class assignm. Project Final present. In class assignm. Project Final present. Project Final present. Project

Q18c: 7 6/7 Q18d: 7 3.9/3 Q18e: 7 5.7/7 Q18f: 7 6/7 Q16a: 30 21/22 Q16b: 10 5.8/5

Met

Q4: 3 2/3 Q17: 18 12/12

Met

Met

Organize and present technical work orally Write technical documents that are grammatically correct and sound.
*

Met

Met

Level: 1 Knowledge/Comprehension 2 Application/Analysis 3 Synthesis/Evaluation Note: Q2:3 2.5/3 means that Question 2 is worth 3 points; the mean is 2.5 and the median is 3.

**

Note: In the Other column Q11, means that question 1 was included in Quiz 1 where the specific topic was part of a reading assignment.

***

Analysis:

Table 1 presents the results of mapping educational outcomes to assessment. Met in the last column indicates that for a question the mean or median is 75% or better. Overall, the course was successful in attaining the main educational outcomes. Four outcomes did not map to a question on a quiz, exam, or homework: 1) Aware of societal issues, 2) Discuss main factors in cost estimation, 3) Differentiate between audits, inspections, and walk-throughs
and 4) Explain the steps for conducting a technical review. Number 1 will be covered in the ethics and professionalism lecture of the second course, and students will work on an in-class

assignment concerning societal, ethical, and professionalism issues. As part of the project, the students developed a feasibility study where they discussed some aspects of cost estimation. Finally, for outcomes number 2 and 3, the students had a reading assignment where these topics were covered. However, in the second course they will have to perform a walkthrough and an inspection for the project.

Course Outcomes: CS 4311 Spring 2006 Department and Course Number: CS4311 Course Title: Software Engineering II Course Instructor: Ann Q. Gates, Salamah I. Salamah Course Description: Implementation of the project designed in CS 4310 providing practical experience in the design and implementation of large programming projects. Course Goals: To provide computer science students with software requirements and design techniques that result in the development of maintainable and reliable software that meets the customers needs. In practical terms, this and CS4311 are meant to provide students with an approximation of a real-world experience of software development. Course Outcomes: 1. Knowledge and Comprehension Upon successful completion of this course, students will be able to: a. Define and relate basic software engineering concepts and principles (abstraction, cohesion and coupling, decomposition, encapsulation, information hiding, modularity, partitioning, stepwise refinement, and separation of concerns) b. Express the need to conduct audits, inspections, and walk-throughs c. Describe different categories of test coverage of code d. Describe different test levels (unit, integration, system, acceptance) e. Define quality attributes such as availability, correctness, efficiency, interoperability, maintainability, portability, reliability, reusability, security, simplicity, testability, and usability f. Describe design approaches other than responsibility-driven objectoriented design g. State the main features of PSP h. Relate the main factors in cost estimation i. Discuss different approaches to process and product measures j. Discuss the issues related to maintenance k. Discuss different software architectural styles such as blackboard, event systems, layered system, pipe and filters l. Recognize the term software architecture patterns m. Discuss the main components of the Software Engineering Code of Ethics 2. Application and Analysis Upon successful completion of this course, students will be able to: a. Differentiate between audits, inspections, and walk-throughs b. Apply different diagramming techniques for an architectural design, including class diagrams, CRC cards, module diagrams, structure charts, and subsystem diagrams

c. Apply different diagramming techniques for producing a detailed design of a system, including collaboration diagrams, decision tables and diagrams d. Relate general strategies for creating a design of a system e. Distinguish between the different levels of cohesion and coupling f. Apply project management techniques g. Use software development and maintenance tools (creation and editing of software documents), GUI generators, comprehension tools, supporting activities tools (configuration management tools), verification and validation tools 3. Synthesis and Evaluation Upon successful completion of this course, students will be able to: a. Conduct a technical review d. Implement a configuration management plan and versioning control e. Define database tables f. Create an architectural design and detailed design for a large system g. Develop a design that anticipates change h. Construct software from a software design i. Develop white-box and black-box test cases j. Conduct unit and integration testing k. Develop a test plan for a large system l. Organize and present technical work orally m. Write technical documents that are grammatically correct and technically sound
Table 1: Summary of Outcomes and Assessment
Outcome Knows basic software engineering concepts and principles Level* 1 T1** Q10:4 2.26/2, Q11:3 2.8/3, Q7:4 2.66/4 T3*** Q2:6 4.89/6, Q5:7 3.91/4 Other Project: Final Presenta tion Final** Q1:5 4.6/5, Q2:2 1.5/2, Q3:3 1.5/1a,Q3 b:3 1.2/1, Q7:6 4/5, Q8a:2 1.6/2, Q8b:2 2/2, Q8c:2 2/2 Q4a:2 .9/1, Q4b:2 .3/0 Comments Met

Express the need to conduct audits, inspections, and walkthroughs Describe different categories of test coverage and test levels Know quality attributes

Project: SCM Project: Testing Plan

See Analysis

Q6b:2 1/1
Q8a:2 1.6/2, Q8b:2 2/2,

Met

Met

Q8c:2 2/2 Describe different types of design approaches Distinguish main features of PSP Discuss main factors in cost estimation Discuss different approaches to process and product measures Discuss the issues related to maintenance Discuss different software architectural styles 1 1 1 Q12:4 2.77/3 Project: SDD Q5:4 3/3 Met Met See analysis

1 1 1 Q1a:4 2.74/3, Q1b:4 2.63/4 Q1a:4 2.74/3, Q1b:4 2.63/4 Project: SDD Project: SDD

Q11:5 3.5/4 Q8b:2 2/2

Met Met Met

Recognize the term software architecture patterns

Project: SDD

Met

Discuss the main components of the Software Engineering Code of Ethics Differentiate between audits, inspections, and walk-throughs

Covered in CS4310 Project: SCM, Final Presenta tion Project: SDD Q4a:2 .9/1, Q4b:2 .3/0 See analysis

Apply different diagramming techniques for an architectural design Apply different diagramming techniques for a detailed design

Relate general strategies for creating a design of a system

Distinguish between the different levels of cohesion and coupling

Q5:4 2.74/3, Q9:4 2.74/3 Q13a:10 8.3/7, Q13b:1 0 9.88/10, Q13c:10 9.22/10, Q13d:6 4.29/5 Q7:4 2.66/4, Q8:3 2.89/3, Q10:4 2.26/2 Q2a:4 3.08/4, Q2b:4 2.77/4, Q3a:3 1.23/0, Q3b:3 1.37/0,

Project: SDD

Q12:4 .7/0, Q15:20 15/15 Q15:20 15/15

Met

Met

Project: SDD

Met

Project: SDD

Q9a:3 2.6/3, Q9b:3 2.5/2

Met

Apply project management techniques Use software development and maintenance tools

2 2

Q3c:3 0.97/1, Q3d:3 0.94/0, Q3e:3 1.94/3, Q4a:2 1.6/2, Q4b:2 1/1, Q10:4 2.26/2 Q6:3 1.57/1

Conduct a technical review

Implement a configuration management plan and versioning control Define database tables

Project: SCM Project: SCM, Implem entation Project: Implem entation Demo Project: SCM Project: Implem entation Project: SDD

Q11:5 3.5/4

Met Met

Met

Met

Met

Create an architectural design and detailed design for a large system

Develop a design that anticipates change Construct software from a software design Develop white-box and blackbox test cases

3 3

Q13a:10 8.3/7, Q13b:1 0 9.88/10, Q13c:10 9.22/10, Q13d:6 4.29/5 Q8:3 2.89/3

Q10:4 3.1/3, Q15:20 15/15

Met

Q1a:6 4.34/4, Q1b:6 4.51/4, Q3a:8 6.46/8, Q3b:6 4.5/4, Q3c:6 6/6, Q4 :8 7.8/8, Q6a:5

Project: SDD Project: Implem entation Project: Testing Plan

Met Met

Q12:4 .7/0, Q13a:4 3.5/4, Q13b:3 2.7/3, Q13c:5 3.1/3, Q14:12 6.2/7

Met

3.91/4, Q6b:5 2.89/3 Conduct unit and integration testing Develop a test plan for a large system Organize and present technical work orally 3 3 Project: Testing Project: Test Plan Project: Final Presenta tion Project: SDD Met Met

Met

Write technical documents that are grammatically correct and technically sound
*

Met

Level: 1 Knowledge/Comprehension 2 Application/Analysis 3 Synthesis/Evaluation Note: Q2:3 2.5/3 means that Question 2 is worth 3 points; the mean is 2.5 and the median is 3. Note: Test 2 was a makeup exam; therefore not all students took it.

**

***

Analysis:

The outcome dealing with cost estimation was not met this semester because there was not enough time to include the material in the lecture. Students had trouble defining the need for audits and differentiating them from walkthroughs. Additionally, students had trouble in choosing the most appropriate template for test cases. The course needs to incorporate more hands-on practice in using audits and creating templates for test cases.

CQI Report 2007 Fundamentals Curriculum


Prepared by: Olac Fuentes Committee Members: Olac Fuentes (chair of subcommittee), Martine Ceberio, Eric Freudenthal, Vladik Kreinovich, Rodrigo Romero and Thamar Solorio.

CS1401: Introduction to Computer Science


Course Description:
First course for students majoring in Computer Science. Introduction to problem solving with computers, including representation, control structures, and software development methods; programming environments; closed laboratory and programming assignments in a high-level language; social and ethical aspects of computing. Prerequisite: MATH 1508, with a grade of C or better.

Knowledge and abilities required before the students enter the course:
Students entering the course are assumed to have no background in computer science or programming. They should be familiar with running software applications and using a computer, and they should be familiar with topics from pre-calculus including algebraic functions and proofs, and base representations of numbers.

Learning Outcomes
Level 3: Synthesis and Evaluation There are no level 3 outcomes for this course. Level 2: Application and Analysis a. use the syntax and semantics of a higher-level language to express their solutions to programming problems, including the correct use of: * variables and assignment to variables result 88/100 (based on Problem 4-5 from Test 1) * primitive types, e.g., integer, character, floating-point variable types result 88/100 (based on Problem 4-5 from Test 1) * commonly-used built-in reference types, e.g., single-dimension arrays, strings result 85/100 (based on Problem 3 from Test 3)

* selective control structures, e.g., if, switch result 84/100 (based on Problem 6 from final exam) * logical and arithmetic operators result 86/100 (based on Problem 3 from Test 2) * iterative control structures, e.g., for, while result 83/100 (based on Problem 4 from Test 2) b. use functions and parameter passing involving both primitive types and reference types result 76/100 (based on Problems 3 and 4 of Test 3) c. apply problem-solving strategies to design a solution to a problem similar to ones seen before result 80/100 (based on Problems 2, 4, 6, and 7 from the final exam) d. design simple ADTs to solve a problem similar to one seen before result 97/100 (based on Problem 3 from the final exam) e. apply testing and debugging strategies, including black-box and white-box testing, test drivers, stubs, and test suites, to identify software faults result 58/100 (Problem 8 from the final exam) f. describe numeric data representation and number bases, and convert numbers between bases result 75/100 (based on Problem 5 from Test 2) g. formulate complex logical expressions involving multiple and/or/not combinations result 86/100 (based on Problem 3 from Test 2) h. implement nested if statements result 100/100 (based on homework problems for Assignment 4) i. formulate complex arithmetic expressions involving operators of differing precedence and associativity, and understand the order of evaluation of sub-expressions

result 92/100 (based on homework problems for Assignment 2) j. implement simple ADTs incorporating multiple primitive instance variables and at least one reference instance variable, with appropriate accessor and modification methods. result 97/100 (based on Problem 3 from the final exam) k. use dynamic memory allocation, e.g., new, to create new objects result 97/100 (based on Problem 3 from the final exam) l. use simple I/O to read and write character and numeric data to and from files, keyboard, and display result 88/100 (based on Problem 4-5 from Test 1) m. use predefined or built-in exceptions to handle violation of preconditions result 64/100 (based on Problem 5 from Test 4) n. use standard documentation to determine the use of an unfamiliar class or method result 96/100 (based on Problem 5 from Test 3 concerning GUI; GUI was barely covered in class, mainly learned from documentation) o. use teamwork roles and methods in the classroom result 80/100 (based on groupwork experience in the class, in the labs, and in the peer lead sessions) Level 1: Knowledge and Comprehension a. explain the role of algorithms in the problem-solving process result 83/100 (based on the first lab) b. define the concepts of data and process abstraction, including the concept of an abstract data type result 83/100 (based on Problem 2 from Test 3) c. describe, at a high level, memory hierarchy and storage systems result 83/100 (based on Problem 2 from Test 3, especially part c of this problem)

d. describe, at a high level, data representation in memory, particularly the difference between the representation of primitive types and reference types and representation of non-numeric data result 83/100 (based on Problem 2 from Test 3, especially part c of this problem) e. describe or identify basic social and ethical implications of computing, including basic intellectual property issues and historical examples of software risks result 107/100 (based on Problem 10 from the Final Exam) f. identify major figures in computing and describe, at a high level, their contributions result 105/100 (based on Problem 1 from Exam 1) g. define and explain basic software processes and metrics such as the software life cycle result 58/100 (based on Problem 8 from final exam) h. describe the role of software standards and documentation in creating robust and maintainable software result 75/100 (based on the corresponding aspect of the labs, where students had to explain their design) i. document methods in terms of preconditions, postconditions, returns this material was not covered in class j. describe, at a high level, major programming paradigms this material was not tested in tests, result 50/100, based on TA evaluation k. be familiar with the use of programming environments (integrated editors, compilers, interpreters, debuggers) result 83/100 (based on the first lab) l. be familiar with the types of knowledge and skills required of a computer scientist and with the major career options available to

computer science graduates result 77/100 (based on the research reports)

Conclusions:
Based on these statistics, we have the following serious deficiencies: In terms of specific programming: * students are not very good in testing * students are not very good in using exceptions In terms of more general knowledge: * students are not very familiar with major programming paradigms * students are not very familiar with the software cycle * we did not cover pre- and post-conditions in this class

Analysis:
We had a meeting with TAs and peer leaders, and our conclusion is that the main deficiency of students is that they do not feel comfortable hand-tracing their code step by step. Consistently, on the exams, tracing got low grades. If a student does not understand what exactly is happening at each line of code, then this student is prone to mistakes; this explains why they are not good in testing and in exceptions, because they do not fully understand what happens. We therefore plan to put even more efforts into tracing. This is a dynamical phenomenon; it is difficult to learn it by reading a book, we need to guide the students step by step. Another problem - somewhat hidden in the above statistics - is that students are not very good in communicating their thoughts. This prevents them from asking good questions, and from explaining things to each other. One thing we have been doing to improve their communication skills is to ask them for reports of research seminars. However, these reports are only read by faculty, and we cannot provide all the detailed feedback -- and our opinion is not always the most authoritative. In Spring 2007, we therefore decided to ask students to "vet" their reports with a colleague student before submitting the report to us. This way, students will better learn how to make themselves understood.

CS2401: Elementary Data Structures and Algorithms


Course Description:

This is the second course for students majoring in Computer Science. Students will learn about fundamental computing algorithms, including searching and sorting; elementary abstract data types including linked lists, stacks, queues and trees; and elementary algorithm analysis.

Knowledge and abilities required before the students enter the course:
Students are assumed to be comfortable programming in Java. Students should be able to code basic arithmetic expressions, define simple classes, use strings, code loops and conditional statements, write methods, create objects from classes, invoke methods on an object, perform basic text file input and output, and use arrays.

Learning Outcomes
Level 3 Outcomes: Synthesis and Evaluation Identify, implement and use: a. Multi-dimensional arrays. b. Lists implemented as arrays or linked lists. c. Stacks. d. Queues. e. Binary trees and binary search trees. f. Simple hashes Level 2 Outcomes: Application and Analysis a. Use Big-O notation to express the best-, average- and worst-case behaviors of an algorithm b. Explain the structure and use of activation records c. Determine the best, average and worst-case behaviors of an algorithm d. Assess time and space trade-offs in algorithms. e. Explain, code, and use quadratic and O(n log n) sorting algorithms f. Implement recursive algorithms over natural numbers, lists, and trees g. Define and use classes, subclasses and inheritance. h. Implement a simple graphical user interface i. Perform string manipulation and simple parsing j. Implement and use multidimensional arrays k. Describe the importance of encapsulation and information hiding l. Implement applications and simulations of the data structures identified above. m. Implement simple sequential and binary search algorithms n. Implement quadratic sorting algorithms o. Describe memory allocation of integers, real numbers, arrays and objects Level 1 Outcomes: Knowledge and Comprehension a. Explain basic and introductory-level notions of a virtual machine b. Explain the concept of polymorphism c. Use class browsers and related tools

d. Identify class hierarchies e. Recognize the standard terms associated with particular data structures e.g. head/tail, push/pop/peek
Table 1: Summary of Outcomes and Assessment
Outcome Explain basic and introductory-level notions of a virtual machine Explain the concept of polymorphism Use class browsers and related- tools Level* 1 T1** T2 T3 Other Hwk Assignment 1 Final** Comments Met

1 1 Lab Assignments 2-6 TA Assesment:80% Lab Assignments 2-6 TA Assesment:80% Q6:8 5.1/7 Q9: 8 7.42/8 Q1:12 4.1/4 Q2:12 8.3/8 Q9:24 21.29/24 Q8:24 20.1/24 Q1:12 4.1/4 Q2:12 8.3/8 Lab Assignment 3 Mean:77 Median:100 Q2:10 7.2/7 Lab Assignment 3 and 5 Lab Assignments 2, 3, 5, and 6

Q1:6 2.63/3

Met Met

Identify class hierarchies

Met

*Recognize the basic terms associated with particular data structures e.g. head/tail, push/pop/peek Use Big-O notation to express the best-, averageand worst-case behaviors of an algorithm Explain the structure and use of activation records

Met

Q13:8 6.27/6

Met

Q4:8 6.69/8

Met

*Determine the best, average and worst-case behaviors of an algorithm * Asses time and space trade-offs in algorithms. Explain, code, and use quadratic and O(n log n) sorting algorithms Implement recursive algorithms over natural numbers, lists, and trees

Q13:8 6.27/6

Met

Met

Q10:4 3.8/4 Q3:12 9.57/12 Q8:10 9/10 Q9:12 9.17/8 Q6:8 3.55/3 Q7:8 4.45/4

Met

Q7:14 11.35/12 Q9: 14 11.8/13

Q4:15 10.7/1 0.7 Q5:12 6.6/7.5 Q6:12 9.2/12

Met

Define and use classes, subclasses and inheritance. Implement a simple graphical user interface Perform string

2 2 Q5:14

Lab Assignments 2-6 TA Assesment:75% Lab Assignment 2 Lab Assignments Q12:8

Met

Met Met

manipulation and simple parsing Implement and use multidimensional arrays 2

7.73/8.5 Q6:14 8.9/12 Q5: 14 11.2/12 Q3:12 9.57/12 Q4:12 6.87/8

2, and 4

6.91/8

Lab 1

Q2:10 7.07/7 Q1:8 5/5

Met

Describe the importance of encapsulation and information hiding Implement applications and simulations of the data structures identified above. Implement simple sequential and binary search algorithms Implement quadratic sorting algorithms Describe memory allocation of integers, real numbers, arrays and objects Multi-dimensional arrays.

Q1:6 2.63/3 Lab Assignments 1, 3, 4, 5, and 6 78/100 Q5: 14 11.2/12 Q11:8 3.27/2 Q7:10 4.5/5 Lab assignments 3 and 4 Q7: 10 4.9/4

Met

Met

Not Met

2 2

Met Not met

Q5: 14 11.2/12 Q3:12 9.57/12 Q4:12 6.87/8 Q1:10 7.76/8 Q2:12 11.3/12 Q3:12 10/10 Q4:12 7.9/8 Q5: 12 6.6/5.5 Q8:14 10.5/11 Q9:8 7.42/8 Q6: 8 5.1/7 Q7: 14 9.8/10 Q6:12 9.2/12 Q7:8 8/8 Q8:8 7.2/8 Q9:8 7.2/8

Lab 1

Q2:10 7.07/7 Q1:8 5.5/5

Met

Lists implemented as arrays or linked lists.

Lab Assignment 3

Q3:8 5.8/5

Met

Stacks

Q4:8 6/8 Q6:10 8/9 Q5:8 5.6/6 Q6:10 8/9 Q6:8 3.6/3 Q7:8 4.5/4

Met

Queues

Met

Binary trees and binary search trees.

Met

Simple hashes

Q8:8 7.1/8 Q11:4

Met

3.73/4
*

Level: 1 Knowledge/Comprehension 2 Application/Analysis 3 Synthesis/Evaluation


**

Note: Q2:3 2.5/3 means that Question 2 is worth 3 points; the mean is 2.5 and the median is 3.
***

Note: In the Other column Q11, means that question 1 was included in Quiz 1 where the specific topic was part of a reading assignment. Analysis: Table 1 presents the results of mapping educational outcomes to assessment. Met in the last
column indicates that for a question the mean or median is 75% or better. Overall, the course was successful in attaining the main educational outcomes. In particular, all level 3 outcomes were tested at least twice to ensure compliance and were met. Two problems were detected: 1. Outcome o, from level 2, Describe memory allocation of integers, real numbers, arrays and object was not met. Although the topic will be covered again in Data Structures and in more detail in Computer Architecture, it is suggested the instructors ensure that least an elementary understanding is attained. The main problem here is that this topic has tested only once, and in an indirect manner. A homework relating to this topic and exam questions addressing it directly are suggested. 2. Outcome o, from level 2, was partially met. The part regarding sequential search was met, but the part regarding binary search was not. We recommend that the outcome be split into two so that emphasis can be placed on presenting and evaluating each part. Additionally, we recommend: 1. Outcomes related with specific abilities, such as outcome c, level 1, using class browsers and related tools, should be tested be means of in-lab quizzes, where the TA can assess the students' proficiency directly. 2. Work on finding ways to help students improve their communication skills. Currently we ask them to explain their labs to their TA in a five minute individual session, but we are considering requiring a written report in addition to that. We also suggest increased use of teamwork.

CS2402: Data Structures and Algorithms


Course Description:
The definition and implementation of abstract data types; representation of data using sets, lists, trees, and graphs; the design and implementation of traversal, search, and sort algorithms; and the space and time analysis of algorithms.

Learning Outcomes
Level 3: Synthesis and Evaluation A. specify data structures and operations associated with abstract data types * in each lab assignment * Problems in Midterm 3 and Final exam Result = 76/100 B. define the signature and pre- and post-conditions for operations of an abstract data type * in each lab assignment * Problems in Midterms 2 and 3, and Final exam (questions on algorithms) Result = 73/100 C. given a scenario, describe the abstract data types that could be created * in each lab assignment Result = 77/100 D. implement binary and binary search trees, using pre-, post-, or in-order traversals as appropriate for a given situation * lab 3 * Midterm 2 and Final exam Result = 83/100 E. judge which data model (list, tree, graph, or set) is appropriate for solving a problem * labs 3 and 4 * Midterm 3 Result = 70/100 F. justify the choice of a data structure to solve a problem based on issues such as time, and space, of the data structure * in each lab assignment Result = 77/100 G. judge which implementations are best suited for an application that requires a list data model: lists, circular lists, circular queue, or generalized list * not covered in graded material

H. judge whether an array or linked implementation is best suited for an application that requires a data model * Midterms 1, 2 and 3 Result = 70/100 I. judge which graph representations (adjacency list, adjacency matrix, edge list) are appropriate for solving a problem * lab 4 Result = 80/100 J. develop algorithms that are based on depth- and breadth-first traversals of general trees, binary trees, and graphs * lab 1, 3 and 4 Result = 72/100 K. judge which sort algorithm (insertion, selection, mergesort, heapsort, quicksort, radix) is appropriate for solving a problem * Midterm 3 and Final exam Result = 81/100 L. judge which search algorithm and data structure is appropriate for solving a problem * Midterm 1, 3 and Final exam Result = 62/100 (due to a bad result in Midterm 1) M. implement a recursive solution to a problem * labs 1 and 3 Result = 77/100 Level 2: Application and Analysis A. categorize algorithms based on programming strategy, i.e., divide-and-conquer, greedy, backtracking, and dynamic programming strategies * covered in class, not covered in any graded material B. analyze iterative and recursive algorithms with respect to time and space * lab 1 * all midterms and Final exam Result = 72/100 C. describe the applications for a dictionary/map ADT, e.g., the application of a symbol table * covered in class with exercises, not in any graded material D. give representations for and operations on a binary tree, general tree, threaded tree, heap, binary search tree, B-tree, quadtree, and graphs

* lab 3 and 4 * Midterms 2 and 3, and Final exam Result = 81/100 E. determine the order for a B-tree based on memory issues * not covered F. apply graph algorithms for determining shortest paths (Dijkstra s and Floyds algorithms), minimal spanning tree (Prims and Kruskals algorithms), transitive closure (Floyds algorithm), and topological sort * lab 4 * Midterm 3 and Final exam Result = 79/100 G. select an appropriate sorting algorithm for a given situation and defend the selection * Midterm 3 and Final exam Result = 81/100 H. explain differences and similarities among approaches for resolving collisions in hash tables, e.g., linear probing, quadratic probing, double hashing, rehashing, chaining * covered in class, not covered in any graded material I. apply design methods and other problem-solving strategies. Examples might include (but are not limited to) functional decomposition, design patterns, top-down design, abstraction, CRC * in labs only, not particularly emphasized nor graded Level 1: Knowledge and Comprehension Level 1s outcomes are those in which the student has been exposed to the terms and concepts at a basic level and can supply basic definitions. The material has been presented only at a superficial level. On successful completion of this course, students will be able to: A. describe the characteristics of static, stack, and heap allocation * covered in class, not covered in any graded material B. explain issues related to disk read/write time * covered in class, not covered in any graded material C. define strategies for balancing a binary search tree * lab 3 * Midterm 2 and Final Result = 82/100 D. define the algorithms for implementing B-tree operations

* not covered E. define the procedure for conducting an external sort * covered in class, not graded Recommended laboratory assignments: The following list represents a set of suggested assignments for this course. It is not intended to be comprehensive and may be modified at the instructors discretion. 1. Implement a discrete simulation to model queuing systems * lab 2: DES of elevators 2. Write a parser that stores the results in a data structure, allowing the user to query the structure * lab 2 requires to analyze data stored from past simulations * lab 3 on trees 3. Write a program in which the central data structure is a graph * lab 4 4. Write a program that collects empirical data (e.g., number of collisions in a hash table or execution time for a sort algorithm) and analyze the results from the program * lab 1 on Kakuro and time complexity of different algorithms

Conclusions:
Some of the material was not covered: B-Trees: not covered Design methods and other problem-solving strategies. Examples might include (but are not limited to) functional decomposition, design patterns, top-down design, abstraction, CRC: not particularly emphasized, not part of any grade. Overall, by looking at the grades, and from discussions with the TA and Peer-Leaders, it appears that students have difficulties in: More abstract and theoretical topics: such as complexity (time, space, ...) Implementation: not particularly reflected on the grades, but reported from TA, and also shown on all exams containing algorithms to trace -> they have troubles designing and understanding simple pseudo-code for instance. As reported from labs, Students still struggle with coding in java. Students do not understand the concept of testing, even though covered a lot in this class. They do not value this stage of their labs, and this affects their grades a lot.

They also are not very good at writing reports for their labs (a report is required for each lab): they do not value or understand the importance of being able to clearly communicate their work and results.

Actions to take:
1. Include B-trees, and grade more systematically all items of the outcomes 2. Put emphasis on designing pseudocode, and coding as well: more tutorials in labs on simple concepts, make use of PLTL sessions to review the unclear points of java implementation. 3. Provide even more guidance in writing reports, and emphasize the importance and technique of testing their programs.

General Comments Regarding CS1401-2401-2402 Sequence


Recommendations
Emphasize tracing of code in all three courses A consistent policy regarding written reports for programming assignments is desirable. Currently reports are required in CS2402 but not in CS2401 or CS1401. Given that students have trouble communicating their results and ideas, written reports appear to be a good way to address this problem. A practical problem has to do with the large number of students taking CS1401 and CS2401, which makes difficult to provide meaningful feedback. We are currently analyzing ways to address this. Preliminary results suggest that adopting a common textbook for CS1401 and CS2401 and the use of mandatory PLTL session have yielded positive results. A more thorough evaluation is recommended.

Analysis of CC2001-Recommended Core Hours


An analysis was made to determine if our CS1-2-3 sequence outcomes cover the CC2001 recommendations. It was determined that our sequence satisfies the minimum core
requirements in every topic except for the following: AL5. Basic Computability (CC2001 1hour, our curriculum 0 hours) AR3. Assembly level machine organization (CC2001 2hours, our curriculum 0 hours) PL1. Overview of programming languages (CC2001 2hours, our curriculum 1 hour). PL3. Introduction to language translation (CC2001 2hours, our curriculum 1 hour).

Each of the topics that are not covered with the minimum number of recommended hours in the fundamental sequence falls within the scope of an upper-level course to be taken later on. Thus, the AL5 units will be covered in CS 3350-Automata, Computability, and Formal Languages, the AR3 units with be covered in CS 3432-Computer Architecture I:

Basic Computer Organization and Design, and the PL1 and PL3 units will be covered in CS 3360-Design and Implementation of Programming Languages. Therefore, we dont believe it is necessary to make any substantial changes in the 1401-2401-2402 sequence in order to comply with the CC2001 recommendations. We suggest that we consider changing the names of the CS2401 and CS2402 courses to Data Abstraction and Object-Oriented Programming and Data Structures and Algorithms, respectively, in order to better match the course tittles suggested in CC2001.

Undergraduate Curriculum Proposal Evaluation Summary of January 2006 Retreat Day 1 M. Ceberio, Y. Cheon, E. Freudenthal, O. Fuentes, A. Gates, F. Modave, P. Teller Proposal 1:
1. Adopt Proposal A1 as the degree plan, with the following changes: Eliminate MATH 2313 Calculus III as a required course. This will allow a decrease in the total number of credit hours in the degree without significant adverse effects in the students preparation for upper-level CS courses. Eliminate MATH 1312 Calculus II as a prerequisite for MATH 3323 Linear Algebra, and make MATH 1411 Calculus I a prerequisite for MATH 3323. This will allow students to take MATH 3323 earlier in their studies, which will decrease the potential for bottlenecks, as MATH 3323 is a prerequisite for a required and an elective course. Make CS2401 a prerequisite for CS3350 Automata. This will allow the CS3350 Automata instructor the possibility of assigning more complex programming assignments in the course. Make CS2401, instead of CS4375 Operating Systems, a prerequisite to CS4316 Computer Networks. This will allow students to take CS4316 earlier in their studies. 2. Adopt the proposed 23XX course, where students will learn to program in one imperative, one declarative, one functional and one scripting language. 3. Move the topics in 3360 that will not be covered in the proposed 23XX course to CS4352 Compiler Construction, which will then become a required course. We believe that the advanced topics offered in a compiler class, as well as the additional practice in developing a large software system, will be of great value to students. Adopt the proposed CS0 course. However, we are concerned about the differences that it may create in the backgrounds of students coming to CS1401.

4.

Proposal 1 ABET QEP Exit Interviews

Pros Proficiency in several languages Removes bottlenecks Closer to 120hrs CS0 course offered Class with more than 1 language Less mathematics

Cons

Industry Feedback

Case studies (software engineering)

CC2001

Discrete structures introduced early

Adding compiler as required course increase hours to graduation Compilers required means less technical electives Unix, Linux, C, C++, Web services, Computer Security, Databases Broader understanding of development Understanding open source/standard Mainframe C, Unix, Emb. SQL needed Automata+programming assignments (no time)

General comments:
1. We do not really have a say on course prerequisites in the Math department

2. CS3350 does not allow for more programming assignment at this stage 3. Having CS2402 as a prerequisite defeats the purpose of a discrete structure sequence.

Suggestion 2:
1. Adopt proposal A1 as the degree plan It is possible for a student to go through the plan in 4 years only It is consistent with the different criteria set forth Run a parallel sequence of CS2-3 and Discrete structures/Automata removing Calc I as a prerequisite for Discrete structures (discrete mathematics). This will give the redundancy needed for students to absorb difficult concepts, both from a theoretical perspective and from a programming/practical perspective, in particular, recursion. This will also remove a significant bottleneck. Make CS2402 a CS2302 class (open lab instead of closed lab) 2. Adopt C/C++ as the languages for the introductory sequence in CS1-2-3 (no consensus) C/C++ are languages needed in the industry. It will prevent students from going through a CS curriculum without seeing tricky concepts that are hidden (pointers, cost of garbage collection etc.) when seeing Java as a main language Removes some of the problems in architecture/systems/OS where proficiency is needed in C 3. Remove Calculus III Not necessary for the vast majority of CS students. Can be taken as a technical elective 4. Remove Numerical Analysis Not necessary for the vast majority of CS students. Can be taken as a technical elective Pros Proficiency in several languages Removes bottlenecks Reduces time to graduation Down to 122hrs for graduation Cons

ABET

QEP

Exit Interviews

Industry Feedback

Includes C/C++ and therefore more time to present Unix Removes 2 math courses Reintroduces Logic early in the curriculum C/C++ and Unix in the curriculum Case studies (software engineering Data structures taken early in the curriculum

Not enough manpower to teach DS in CS C/C++ may affect negatively student retention CS0 not offered Not addressing Database Not addressing lack of technical electives Not addressing .Net and C#, Computer security Broader understanding of development is not taken into consideration Mainframe

CC 2001

General comments:
1. teaching C/C++ in CS1-2-3 was a suggestion of one team member only 2. it addresses several points made in the industry feedback and exit interviews, however, it may affect student retention 3.

Proposal 3: 1. Adopt proposal A2 with the following changes

Remove Calculus III and Numerical Analysis from the core courses Replace Object-Oriented Programming with the new Programming Languages course proposed by Cheon, and make it a prerequisite of both Architecture II and Operating Systems. Combine Software I and II into a single course and introduce a new Project course to accommodate projects in different areas, particularly in other focal research areas such as systems, theory, and HCI. Remove the dependency between CS3 and Compiler.

CS0

precalc

Proposal A2 (1/06) Calc 1


ept ath d by m Reqd

Cs1 Digital Cs2

Discrete

Phys 1

Calc 2

Arch 1

Automata PL-0

Cs3

Phys 2

Calc 3

ProbMeth

LinAlg (Matrix)

Arch 2

OS

Compile Nets

P-L

SWEng 1 P-Orient SWEng 2

SysProg

Elective Graphics Numeric SpTop Soft AI DB

Project

Proposal 3 ABET

Pros Covers several programming languages

QEP

Gets down to 122hrs

Exit Interviews

Removes two math classes

Industry Feedback

Cons Graduation time may be an issue Language survey in P-L. Covers the other languages in an elective? Complicates the tree with several prereqs. For a given class (arch II, OS) Not convince this will accelerate graduation time Does not address C/C++, Unix, Database, security, extra electives asked by students Does not address .Net and C# Students have very positive comments regarding Software engineering despite the workload Broader understanding of development Understanding open source/standard Mainframe C, Unix, Emb. SQL needed. Software Engineering I-II in sequence is highly viewed outside UTEP. Case studies would not be addressed

CC 2001

anymore (they are in S.E) Discrete structures is not introduced earlier in the sequence

Proposal 4:
1. Adopt proposal A2 with the following changes and the following comments Remove calculus III Systems programming only requires CS2402 Networks only requires CS2402 Discrete mathematics required for CS3 but can be taken concurrently Discrete mathematics introduced in CS1 or prerequisite for CS1 Information and Database management becomes a core class Survey of programming languages in CS2 with an emphasis on C/C++ Concern: getting rid of technical electives CS3360 based on Yoonsiks recommendation (break the class in two parts with the second part being an elective Technical electives added regularly: Security, Parallel and distributed computing 2. General recommendations Coordinate lab assignments among courses, both in sequences and between sequences Design courses with pre and post-requisites Develop threads that help join courses Develop and integrative curriculum Motivate future courses, tutoring and mentoring Pros Proficiency in several languages with C/C++ and Yoonsiks suggestion for CS3360 Goes down to 125hrs Removes bottlenecks Shorten the height of the tree Limits prerequisites Shorten graduation time Removes one math class Coverage of C/C++/Unix Coverage of Information management Motivate future courses could help retaining students Addresses security Covers C/C++ and therefore more on Unix in OS Broader integration is tackled in general recommendation Introducing discrete math in CS1 introduces discrete structures early in the curriculum Cons

Proposal 4 ABET

QEP

Unsure what do do with discrete math

Exit Interviews

Removes technical electives (to cover information management) C/C++ in CS2 may be an issue to retain students

Industry Feedback

Work needed to coordinate and integrate

CC 2001

General comments: 1. combination of proposal 4 and proposal 2 (to address the theory issue) could be very good 2. we need to address how to coordinate labs and to integrate the topics covered

General notes during the initial discussion Cluster reports 1. Fundamentals Olac presents the report from the Fundamentals group. Eric presents the multimedia class proposal. Paulo says that this may not be seen again in the future and that this may mislead students as to what they will do later. It makes sense at GTech because of the graphics content. We need to do something UTEP like. Cutting edge technology introduced in class to attract people Michela comments that we need time to do this. Ann comments that there are grants that are available for course release to precisely do this.

2. Software Yoonsik presents the report from the Software group. It seems that the points missing (from the CC2001 document) are actually covered in fundamentals, and also in digital systems and architecture. CS3331, advanced OO programming is in C!? Discussion about languages: which languages to teach? Proficient in which language? David: we cannot have only electives that cover other languages than Java 3. Systems Michela presents the report from the Systems group. No comments after the presentation.

4. Languages Francois presents the report from the Languages group. Issue with the discrete structures class. In Math? In CS? Later? Earlier? Yoonsik talks about the compilers and interpreters class. 2nd recommendation is hard to parse.

5. Electives Martine presents the report from the Electives group. It seems that there are no conflicts with this area. Databases need to be updated.

Notes from January 2006 Retreat Day 2


Discussion on the proposals Proposal 1 There is consensus on removing calculus III. Some faculty expressed concerns because the proposal didnt seem to reflect the discussion they had in their group. However, everyone seemed to approve running a parallel sequence between CS1-2-3 and discrete structures, discrete math. Proposal 2 The key question that came out of this proposal is: what are the fundamentals? This needs to be addressed early to go any further (no matter which proposal or which combination of proposals we agree upon). Logic, architecture, testing seemed to be critical and should be introduced progressively in the CS1-2 classes. Proposal 3 The main point discussed in this proposal was what to do with the software engineering sequence. Only 3 faculty were defending removing the second part. It was suggested to have the two semester sequence with a faculty from another research area as the customer. It was also mentioned that this would be a rather heavy workload added. The key justification for this was to have students having more time for research however, this does not agree with our educational objectives. Another discussion point was to increase the credit hours for software engineering. Some suggested that their classes were as demanding and therefore, it wasnt justified. The bigger picture was to know who was asking what from students to adjust our schedules. That way, students would not get several time consuming project deadlines at the same time Proposal 4 The key idea of this proposal was: how do we make our curriculum more integrative. How do we motivate future courses? What is the process and the timeline to make our curriculum more integrative? The discussions on proposals stayed more on the how rather than the what however, except when discussing proposal 4. Discussion on technical electives Paulo suggested to include reading research papers at the UG level Prototypes to work on and expose them to what is being done in the industry, other schools etc. Questions

Do we have too many technical electives? Do we need to have threads in technical electives (for instance security and cryptography) Do we want to remove some technical electives to avoid a patchwork type degree? Are there technical electives that should become core (information management for instance) When are they taught and who will? Do we need to include what technical elective will be taught when and by who early in the catalog? Do we want to bring in more current topics that the industry needs? How do we decide on these topics? Who will teach them and how frequently. Define a process to answer the questions above

Software Curriculum Coverage of CC2001-Recommended Core Hours


Yoonsik Cheon, Nigel Ward, Ann Gates, and David Novick January 14, 2006

Summary
This document summarizes our findings on the coverage of CC2001-recommended course hours (refer to http://www.sigcse.org/cc2001/) by the following software courses: CS3331. Advanced Object-Oriented Programming CS3360. Design and Implementation of Programming Languages CS4310. Software Engineering I CS4311. Software Engineering II

The findings are based on our review of the course outcomes, course syllabi, and course material such as lecture notes, assignments, and examinations. Appendix A summarizes the coverage as a table and Appendix B provides details of the mapping and coverage for each course.

Software Core Units


It is our view that the software courses should provide at least the CC2001-recommended minimum level of coverage on two areas: Programming Languages (PL, 21 core hours) and Software Engineering (SE, 31 core hours). These two areas consist of the following core units, respectively. PL1. Overview of programming languages (2 core hours) PL2. Virtual machines (2 core hours) PL3. Introduction to language translation (2 core hours) PL4. Declarations and types (3 core hours) PL5. Abstraction mechanisms (3 core hours) PL6. Object-oriented programming (10 core hours) SE1. Software design (8 core hours) SE2. Using APIs (5 core hours) SE3. Software tools and environments (3 core hours) SE4. Software processes (2 core hours) SE5. Software requirements and specifications (4 core hours) SE6. Software validation (3 core hours) SE7. Software evolution (3 core hours) SE8. Software project management (3 core hours)

Covered Core Units and Hours


Table 1 shows a summary of CC2001-recommended core unit coverage by software courses, and we made the following conclusions: Except for PL2 (virtual machines) and PL3 (introduction to language translation), the minimum level coverage of all PL cores units is met in term of core hours. Except for SE1 (using APIs), the minimum level coverage of all SE cores units is met in terms of core hours.

Those units that meet the minimum level coverage are adequately covered in that in most cases the same material is covered more than one courses. This is particularly true for SE units, as CS3331 covers a significant numbers of SE units. The courses also provide some coverage on the following core units outside PL and SE areas: o DS2. Basic logic (1 core hour of 10) o PF1. Fundamental programming constructs (4 core hours of 9) o PF3. Fundamental data structures (5 cores hours of 14) o PF4. Recursion (1 core hour of 5) o PF5. Event-driven programming (1 core hour of 4) o AL5. Basic computability (1 core hour of 5) o OS3. Concurrency (1 core hour of 6) o NC4. The web as an example of client-server computing (0.5 core hour of 3) o HC1. Foundations of human-computer interaction (2 core hours of 6) o HC2. Building a simple graphical user interface (2 core hours of 2) o IM1. Information models and systems (1 core hour of 3) o IM3. Data modeling (12 core hour of 4) o SP2. Social context of computing (0.5 core hour of 3) o SP3. Methods and tools of analysis (6 core hours of 2) o SP4. Professional and ethical responsibilities (2 core hours of 3) o SP5. Risks & liabilities of computer-based systems (2 core hours of 2)

Based on the above observations, we recommend: To revise the course outcomes of CS3360 to provide the minimum level coverage for PL2 (1 core hours) and PL3 (2 core hours) and make appropriate change to the course syllabus and schedule. To examine if PL core units are also covered by fundamental courses to make the same or similar material be covered by more than one core course. To examine if SP4 (professional and ethical responsibilities) be covered in SE and, if so, revise the course schedule of CS4310 or CS4311 to allocate at least one more core hour.

Appendix A
Table 1: Coverage of CC2001 core hours by software courses

CS3360Prog. Lang.

Advanced OOP

CS 4310 SE I

Core units (core hours) \ Software courses DS1. Functions, relations, and sets DS2. Basic logic (10) DS3. Proof techniques DS4. Basics of counting DS5. Graphs and trees DS6. Discrete probability PF1. Fundamental programming constructs (9) PF2. Algorithms and problem-solving PF3. Fundamental data structures (14) PF4. Recursion (5) PF5. Event-driven programming (4) AL1. Basic algorithmic analysis AL2. Algorithmic strategies AL3. Fundamental computing algorithms AL4. Distributed algorithms AL5. Basic computability (5) AR1. Digital logic and digital systems AR2. Machine level representation of data AR3. Assembly level machine organization AR4. Memory system organization and architecture

0 1 1 0 0 0 0 4 4 0 1 4 1 1 0.5 5 1 1.5 0 0 0 0 1 1 0 0 0 0 -4 -9 -4 -3 -5 -9

Extra Hours

CS 4311

CS3331

Total

SE II

AR5. Interfacing and communication AR6. Functional organization AR7. Multiprocessing and architectures

0 0

alternative 0 0 0 1 1 0 0 0 0 0 0.5 2 0.5 2 0 1 3 1 8 3 3 2 1 1 1 3 4 11 2 2 0 0 -2 0 -1 -1 0 1 1 -4 0 -5

OS1. Overview of operating systems OS2. Operating system principles OS3. Concurrency (6) OS4. Scheduling and dispatch OS5. Memory management NC1. Introduction to net-centric computing NC2. Communication and networking NC3. Network security NC4. The web as an example of clientserver computing (3) PL1. Overview of programming languages (2) PL2. Virtual machines (1) PL3. Introduction to language translation (2) PL4. Declarations and types (3) PL5. Abstraction mechanisms (3) PL6. Object-oriented programming (10) HC1. Foundations of human-computer interaction (6) HC2. Building a simple graphical user interface (2) GV1. Fundamental techniques in graphics GV2. Graphic systems IS1. Fundamental issues systems

in

intelligent 0 0 and 0 1 1 0 12 12 0 8 -2

IS2. Search and constraint satisfaction IS3. Knowledge representation reasoning IM1. Information models and systems (3) IM2. Database systems IM3. Data modeling (4) SP1. History of computing

SP2. Social context of computing (3) SP3. Methods and tools of analysis (2) SP4. Professional and ethical responsibilities (3) SP5. Risks & liabilities of computer-based systems (2) SP6. Intellectual property (3) SP7. Privacy and civil liberties SE1. Software design (8) SE2. Using APIs (5) SE3. Software tools and environments (3) SE4. Software processes (2) SE5. Software requirements specifications (4) SE6. Software validation (3) SE7. Software evolution (3) SE8. Software project management (3) Total core hours per course 25 23 5 4 1 3 4 and 1 1 1 3 40 9 2 2

0.5 6 2 1 1 0.5

0.5 6 2 2 0.5 0

-3 4 -1 0 -3

12

19 4

11 -1 4 3 7 6 1 2 -7

3 1 1 6 3 2 40

7 5 11 9 4 5 128

Appendix B CS3331: Advanced Object-Oriented Programming


The content of this course mostly fits in the unit SE1 Software Design (Core, minimum core coverage time 8 hours). It also provides some coverage of: PF3 Fundamental Data Structures (core, 14), especially pointers SE2 using APIs (core, 5) SE4 Software Processes (core, 2), mostly as motivation for topics later seen in Software Engineering SE5 Software Requirements and Specifications (core, 4), mostly UML SE7 Software Evolution (core, 3) SE9 Component-based Computing (elective) SE12 Specialized Systems Development (elective), especially client-server systems This course goes well beyond the CC2001 minimal recommendations in its coverage of SE1. This is primarily because the department expects its graduates to be highly competent programmers and designers.

CS3360: Design and Implementation of Programming Languages


The content of this course mostly fits in Programming Languages (PL) area. In particular, this course covers 12 core hours out of 21, as shown below. PL1. Overview of programming languages (2 core hours of 2) PL2. Virtual machines (0 core hours of 1) PL3. Introduction to language translation (1 core hours of 2) PL4. Declarations and types (3 core hours of 3) PL5. Abstraction mechanisms (3 core hours of 3) PL6. Object-oriented programming (3 core hours of 10)

The course also provides coverage of the following elective PL units. PL7. Functional programming (6 hours) PL9. Type systems (1 hour) PL10. Programming language semantics (2 hours) PL11. Programming language design (2 hours)

In addition, it provides some coverage of the following core units from Data Structures (DS), Programming Fundamentals (PF), and Algorithms and Complexity (AL). DS2. Basic logic (1 core hour of 10) PF1. Fundamental programming constructs (4 core hours of 9) PF3. Fundamental data structures (4 core hours of 14) PF4. Recursion (1 hours of 5) AL5. Basic computability (1 hours of 5) In sum, this course covers 12 core hours of 21 from PL 11 elective hours from PL 1 core hours from DS 9 core hours from PF 1 core hours from AL

However, 9 core hours of PL still remain to be covered in other courses. 1 hour of PL2. Virtual machines 1 hour of PL3. Introduction to language translation 7 hours of PL6. Object-oriented programming

CS4310 and CS4311: Software Engineering I and II


These two courses together all SE core units adequately except for SE2 (using APIs). SE1. Software design (14 core hours of 8) SE2. Using APIs (0 core hours of 5) SE3. Software tools and environments (6 core hours of 3) SE4. Software processes (5 core hours of 2) SE5. Software requirements and specifications (10 core hours of 4) SE6. Software validation (8 core hours of 3) SE7. Software evolution (3 core hours of 38) SE8. Software project management (5 core hours of 3)

In addition, they cover the following non-SE core units. NC4. The web as an example of client-server computing (0.5 core hour of 3) HC1. Foundations of human-computer interaction (2 core hours of 6) HC2. Building a simple graphical user interface (2 core hours of 2) IM1. Information models and systems (1 core hour of 3) IM3. Data modeling (12 core hour of 4) SP2. Social context of computing (0.5 core hour of 3) SP3. Methods and tools of analysis (6 core hours of 2) SP4. Professional and ethical responsibilities (2 core hours of 3) SP5. Risks & liabilities of computer-based systems (2 core hours of 2)

It should be noted that SE2 (using APIs) is covered in a prerequisite course (i.e., CS3331) and the adequacy of its coverage should be examined. Similarly, the coverage of SP4 by other course courses should be examined carefully, as we emphasize professional and ethical responsibilities in our program.

Curriculum Proposal Restructuring Programming Language Courses


Yoonsik Cheon, Nigel Ward, Ann Gates, and David Novick January 19, 2006 Problems: By reviewing the instructors assessment of CS3360 (Design and Implementation of Programming Languages) and talking to members of other curriculum sub-committees, we identified the following problems and concerns for CS3360 and programming languages courses in general. Students are not well prepared for upper-division courses, e.g., Architecture I & II, Systems Programming, and Operating Systems, in terms of C language requirement. As most students are exposed to only one language (Java), they often lack the ability to learn a new language. CS3360 can be a help here, as it studies several languages of different paradigms; students can learn new languages easily and quickly. However, students dont take CS3360 early enough because it is at the end of course sequence and is not a prerequisite of any upper-division courses. Though stated in the course outcomes, the coverage of C has been lacking in CS3331 (Advanced Object-Oriented Programming). In CS3360, the instructor has difficulty covering core programming language units of CC2001 (PL1-PL6), mostly because at least half of class hours are spent on learning several languages of different paradigms.

Proposed Solution: We propose to introduce a new, elective sophomore or junior-level programming language course, CS23xx: Introduction to Programming Languages (or Contemporary Programming Languages). The course will study 3 or 4 different languages of different paradigms, e.g., procedural (C), functional (Scheme or Haskell), scripting (PHP), and declarative (Prolog); a different set of languages may be chosen to accommodate any (future) language requirements of upper-division courses. We also propose to revise the learning objectives of CS3360 to remove the study of several different programming languages. A draft syllabus of CS23xx and a revised syllabus of CS3360 are found in Appendix. Benefits: Solves C requirement of system courses, and can easily accommodate future language requirements of upper-division courses. Better meets the ABET curriculum requirement of exposing students to a variety of programming languages. Provide streamlined language courses with a consistent course title, description, and contents for CS3360. No need to include C coverage in CS3331. Increases the number of sophomore (or junior-level) course; can be taken with the bottleneck course, i.e., 2402. Can be a technical elective course.

Concerns: Can attract students (without make it core)? Frequency of course offering and instructor?

Appendix CS23xx: Introduction to Programming Languages


Description: Study of common programming language features and representative languages from major programming paradigms, such as procedural, object-oriented, functional, declarative (e.g., logic-based), and scripting. Prerequisites: CS2401 Syllabus: Introduction to programming paradigms Representative languages: one from each paradigm except for OO, e.g., C, Scheme (or Haskell), Prolog, PHP (or Python) Control structures, such as conditionals and iteration Pointers and memory management Abstraction mechanism: procedures and abstract data type Recursion, closures, and use of functions as data Using APIs, including libraries and packages for graphics and GUI applications Software engineering issues, e.g., tools, process, requirements, design and testing Unit covered: DS2. Basic logic PF1. Fundamental programming constructs PF2. Algorithms and problem-solving PF4. Recursion PF5. Event-driven programming PL1. Overview of programming languages PL4. Declarations and types PL5. Abstraction mechanism PL7. Functional programming SE1. Software design SE2. Using APIs SE3. Software tools and environments

Possible textbook: Y. Chen. Introduction to Programming Languages: Principles, C, C++, Scheme and Prolog, Kendall/Hunt Publishing, 2003.

CS3360: Design and Implementation of Programming Languages


Description: Organization of programming languages emphasizing language design concepts, semantics, and implementation techniques; features of modern programming languages including control structures, procedural abstraction, and data abstractions Prerequisite: CS 23xx (Introduction to Programming Languages) Syllabus: History of programming languages, including brief survey of programming paradigms Concepts of virtual machines and intermediate languages Language translation phases (lexical analysis, parsing, code generation, optimization) Declaration and types, including binding, visibility, scope, lifetime, and type checking Abstraction mechanisms, including procedures, functions, parameter passing mechanism, and abstract data types Object-oriented programming, especially inheritance, overriding, dynamic dispatch, polymorphism, and subtyping Formal definition of programming languages, both syntax and semantics Design and implementation issues, including data structure models, control structure models, and abstraction mechanisms Unit covered: DS2. Basic logic PF1. Fundamental programming constructs PF3. Fundamental data structures AL5. Basic computability OS3. Concurrency PL1. Overview of programming languages PL2. Virtual machines PL3. Introduction to language translation PL4. Declarations and types PL5. Abstraction mechanism PL6. Object-oriented programming

Summary of Recommendations Curriculum Renewal Committee University of Texas at El Paso Quality Enhancement Plan What is the QEP? The University of Texas at El Paso (UTEP) Quality Enhancement Plan (QEP) provides a University-wide process for focused improvements in undergraduate education in the middle years. The two areas of focus are: curriculum review and renewal and academic and career advising. Curriculum Review and Renewal Workgroup Chair: Members: Stephen B. Aley, Associate Professor of Biological Sciences Erin Brown, Student Martha Casas, Assistant Professor of Teacher Education Ann Gates, Professor of Computer Science Josiah Heyman, Professor of Sociology Sandra Lloyd, Associate Professor of Special Education Darla Smith, Associate Professor of Kinesiology Doyle Smith, Associate Professor of Economics and Finance Cynthia Edgar; Greg Elliott; Diana Guerrero; Joanne Bogart

Liaisons:

Summary of recommendations from the Curriculum Renewal Committee: Review curriculum to be sure that it prepares graduates to meet current and predicted knowledge and skill levels. Review course objectives, goals, learning outcomes, prerequisites and evaluation instruments in every degree plan Develop guidelines for syllabi content to include invariant goals, student learning objectives, and evaluation methods Ensure transparency of requirements in the degree requirements (e.g., hidden prerequisites) Provide semester of course offerings in catalog Provide standards for updating degree plans to help students and advisors monitor their progress toward graduation (CAPP) Provide prerequisite and co-requisite information for each course. Provide CS0 or other courses in plan of study for students not eligible to enroll in courses in major; define departmental activities for pre-majors Identify courses with high levels of failures and withdrawals and scrutinize the course to address how to best address student success and enhance learning; include incentives to insure that trained and proven faculty are assigned to these courses. Ensure that sufficient sections are offered at accessible time to cover anticipated registration Revise the standard course times to two sets of 80 minute time slots, twice a week (e.g., MR and TF). Assess student learning in the new format compared to historical data to determine if and to what degree student learning increases. Administration should encourage the offering of condensed courses. For example, a class could meet for 8 hours on Saturday and on Sunday for three weeks. This option is particularly attractive to some professionals. Every degree plan needs to have at least one upper division elective offered each summer, and possibly each summer semester, with the course identified at least one year in advance to allow for degree planning.

Appendix VII-D. Industry and Alumni Feedback This section includes reports that resulted form meeting with recruiters and alumni as well as unsolicited e-mail messages (ascending date of feedback).

IBM Educational Development Tools1


This document summarizes a meeting held in April 2005 to discuss computer science academic programs. The attendees were: Irene Roberts, Program Director, ISV & Developer Relations, IBM's on demand Business Enablement Alfredo Gutierrez, Manager, Developer Technical Marketing, IBM developerWorks Ann Gates, Head CS Luc Longpre, Associate Professor

The notes are supplemented with information collected by Aida Gandara to clarify the description of the tools. Process/Workflow Modeling is an area of interest, and contacts are: Dr Mayur Mehta Chair/Professor, Dept. of CIS & Quantitative Methods, Southwest Texas State University, San Marcos o Research Interests: Application of J2EE Framework in CIS/MIS Curriculum Design, Role of Wireless/Pervasive Computing in Academia, e-Commerce Infrastructure for Global Business Environment, Application of Data Mining/Warehousing Technology in CRM o Teaching Interests: e-Business Applications Development using Java and WebSphere Studio, Database Management Systems (Introductory and Advanced - Access, Oracle, DB2), Web/Application Server Administration (WebSphere and .Net environment), Wireless/Pervasive Computing (J2ME), Visual Programming using Java and VB.Net.5 J Strother Moore - Admiral B.R. Inman Centennial Chair in Computing Theory, Dept of Computer Science , UT Austin o Research Interests - mechanical theorem proving, and its use to verify computing systems. 9

Industry needs wrt education include: Open Source/Open Standards (e.g. eclipse) Broader understanding of development Integration Problem o MVS/CICS know about integration challenges 42% with skills in mainframe are in retirement age Focus on real world problem and how to solve Look at case studies Understand Virtual Memory

Tools Discussed: Eclipse Plug-in IDE

Borland, IBM, MERANT, QNX Software Systems, Rational Software3, Red Hat, SuSE, TogetherSoft3 and Webgain2 formed the initial eclipse.org Board of Stewards in November 2001. Now there are over 50 member companies. 3 Eclipse has formed an independent open eco-system around royalty-free technology and a universal platform for tools integration. 3 The Eclipse Platform is designed for building integrated development environments (IDEs). It can be used to create diverse end-to-end computing solutions for multiple execution environments. 2 Link/Linux?? to OS Services Plug into Eclipse - In Eclipse everything is a plugin.2 Java Tools - Eclipse technology is written in the Java language 2 a "toolkit for designing toolkits"2 Published APIs are tested by the cross-industry consortium to ensure code quality portability and performance.2 Tested on Windows NT, Windows XP (Beta), Windows 2000, Windows 98, Windows ME, and Red Hat Linux Version 7.12 Two of the 7 design principles of Eclipse: o Support tools to manipulate arbitrary content types (including HTML, Java, C, JSP, EJB, XML, and GIF). o Support both GUI and non GUI-based application development environments. 2 Eclipse today provides a great deal of coverage of the software development lifecycle.3

Cloudscape open source no comment on whether this is an open source tool, described as an open standards app relational db - IBM Cloudscape V5.1 is the original embeddable, all Java, object-relational database management system (ORDBMS).8 small footprint Cloudscape allows you to create a single version of your application that addresses all platforms supporting a fully functional Java Virtual Machine (JVM). Easily embedded and highly secure, Cloudscape requires zero administration and scales from laptop or desktop applications to lowend appliance and more robust server applications. 8 Cloudscape is focused on smaller scale databases with an expectation to migrate to DB2 for a larger db. 8 Websphere Business Integration Modeler IBM product6 Not open source WebSphere Business Integration Modeler V5.1 is more than just a graphical modeling tool. It provides powerful simulation and analysis capabilities, which enable businesses to observe how their current processes perform and how they will respond to a variety of "what if" conditions, and then analyze the results to pinpoint weaknesses, such as bottlenecks to help reduce costs and generate more profit.6 And, for businesses looking to move their models into the implementation phase, WebSphere Business Integration Modeler provides the exporting capabilities to transform finished models into the technology required for their business solutions, including BPEL, WSDL, and XSD for developing WebSphere Business Integration Server Foundation applications from the models, FDL for developing workflow automation solutions, or UML for further refining the models in IBM Rational XDE.6

z/OS z/OS is a highly secure, scalable, high-performance enterprise operating system on which to build and deploy Internet and Java-enabled applications, providing a comprehensive and diverse application execution environment.4 Mainframe software4 zSeries - mainframe servers products of IBM run z/OS4 Salaries & jobs when are in this area

RAC-F (Resource Access Control Facility) Supports z/OS Started in 1976 for OS/390 Improved security for data & controls user operations on the OS 11

Learning Support z/OS basics The IBM Scholars zSeries Program (formerly known as the IBM S/390 University Program)12 Now being renamed to the IBM Academic Initiative. Virtual Memory course in Academic Institution Week long Marist College in June Marist College, in particular, offers a set of introductory z/OS courses online. o Marist College had several distance learning courses no site based courses were found o Marist offers online courses and certifications in areas including: z/OS, zArchitecture Assember, DB2, Security Fundamentals (including RAC-F), eBusiness Infrastructure and WebSphere, System Programmer, etc. 7 Provide a hub can use curriculum IBM provides a set of courses ( student guide, supplemental material, lab assignments )that can be taught at the university given that the school is a registered member of the IBM Scholars Program. 12 The program requires knowledge of the z/OS system prior to using their z/OS system (Knowledge Center) in courses. 12 Educators and students can receive discounts on certification exams taken at designated locations. 12 Works with ucompass.com which provides help in implementing e-Learning courses Texas A&M has a hub IBM partners with many universities to provide the training/certification needed to teach courses on their products/tools. Texas A&M was not found on the list and no information was found on the Texas A&M website with further information. The Linux University Hub at Colorado State University is now accepting project proposals from any IBM eServer zSeries hub to work on a Linux project.12

Pickle Center Cyber structure no supporting information found Raindance Raindance Inc provides web conferencing On-24 Simultaneous

IBM University ibm.com/university courses IBM Academic Initiative Access to many webcasts, forums, user groups, trainings & certifications. Late June: Rational Suite Rapid Application Developer o Modeling o Design o Testing Rational Test Manager o CFM configuration manager ClearQuest Build o Several courses offered for modeling/developing/testing, OO design Invite o Offer an on-site training of configuration management, project management, requirements and analysis, and much more. o Discount if requested from April to June10 o Classes that might find use of these tools/websites: CC 3190 ??? 3195?? Junior Professional o zSeries Eclipse, Java, Linux o Special Topics in Programming CS 3335 Systems Programming o L??? systems o Check with Marist CS 4342 Database Management o DB2 Express or Cloudscape CS 5352 Computer Security o RAC-F CS5382 Topics in Software Development o References [1] Ann Gates notes Discussion with Irene Robert and Alfredo Gutierrez, April 2005 [2] What is Eclipse, and how do I use it? http://www-106.ibm.com/developerworks/opensource/library/os-eclipse.html, Marc R. Erickson, Angus McIntyre, IBM [3] eclipse.org. http://www.eclipse.org/ [4] z/OS, http://www-1.ibm.com/servers/eserver/zseries/zos/ [5] Dr. Mayur M. Mehta, Department Chair and Professor of Computer Information Systems, http://www.cis.txstate.edu/FacultyStaffMehta.htm [6] Websphere Business Integration Modeler, http://www-306.ibm.com/software/integration/wbimodeler/faq/faq_51.html [7] Marist College z/OS and zSeries Learning Center, http://www.academic.marist.edu/S390/ [8] Cloudscape v 5.1, http://www-306.ibm.com/software/data/cloudscape/version51/ [9] J Strother Moore, http://www.cs.utexas.edu/~moore/ [10] IBM Academic Initiative, http://www.developer.ibm.com/university/scholars/ Project Management

[11] Resource Access Control Facility, http://www-1.ibm.com/servers/eserver/zseries/zos/racf/ [12] IBM zSeries Scholars Program, http://www-306.ibm.com/software/info/university/products/zseries/ Follow-up: UTEP established a partnership with IBM Academic Initiative, and IBM gave two workshops on Eclipse tools and other IBM technologies. In addition, IBM sponsored four technology briefings that were open to students in faculty from UTEP and NMSU as well as local schools and business people. These included: Developing on Open Standards Databases; Process and Portfolio Management; Building Better Software Faster with the IBM Software Development Platform; and Implementing a Service Oriented Architecture. A number of newspaper articles in the local newspaper generated interested in the program.

2006 Feedback from United Space Alliance Dear Friends, This is FYI, a visitor form the United Space Alliance sending good words about our students. -----Original Message----From: Black, Nikita (Niki) K [mailto:Nikita.K.Black@usa-spaceops.com] ... We had the opportunity to learn about your program at UTEP and it was very beneficial as we went through the process of interviewing UTEP students for positions within our group. You have trained an excellent group of students for the real world and I would like to thank you for everything you do. Nikita

Feedback from Lockheed Martin Storefront Manager, UTEP Campus Scott Jourdan, July 2006 Dear Dr. Gates, As requested, below you find some of the comments about the departments curriculum. Because I have become such a team reliant person, I also asked the guys here to share some of there thoughts on the subject. I will list these comments first then provide my own at the bottom. Team Comments

1. What would you have changed about the CS course curriculum to better

prepare you for work experience:


a. Less PowerPoint style of lecturing. This type of lecturing does not engage students and hinders learning. b. Getting exposed to more advanced topics early on, such as pointers and different types of programming (i.e. logic, functional, object-oriented). c. More practical experience with Unix/Linux, scripting, C and C++, and web-based programming. d. More exposure to project management and leading teams. e. More of developing communication skills both verbal and written f. The areas that fell through the crack are UNIX and the C/C++ programming languages. I wish they had undergraduate courses to teach you this material.

g. There seems to be a lack of incorporating languages such as C, C++, and Web Programming languages (ASP, JML) into the curriculum h. I would like the Computer Science Department faculty to explore the idea of having a formal curriculum plan for students with particular interests (i.e. Web Programming, Software Engineering, Robotics ). This would mean a student of web programming interest would follow the general curriculum and then branch off into web based coursework. i. Break up the upper division courses into more specialized areas. Examples (Graphics, AI, Robotics, Networking, Operating Systems, Gaming, Data Base, Security .) So a student can specialize in a specific area. j. Introduce a broader view of the programming languages currently in use and what they are used for. k. Discuss the different methods of building and compilation used for the different programming languages C++, C, Java, J2E. l. Make files should be covered in more detail. m. Some intro classes on the basic hardware of the PC. Learn how to take a PC apart and put one together.

2. What things about the current curriculum do you feel did well to prepare

you for real work?


a. Exposure to advance object-oriented design/programming. b. Software engineering practices as taught in Software Engineering 1 and 2. c. Using Microsoft Word features, such as styles, to write and maintain requirement documents. d. Good computer science fundamentals. e. A class in the current curriculum which was very helpful was the software engineering set of classes required from the Computer Science Department My Comments 1.

From an employer prospective, what would you have changed about the CS course curriculum
a. It has always been my belief that if you know one solid programming language you can apply that knowledge to another language. So when someone who knows Java comes to me telling me they are have a hard time understanding C/C++ I think that they do not fully understand the underlying concepts. When I went through the program we used Turbo Pascal all the way through Data Structures. Looking back on this, I think this was one of the better things that happened, because it gave me solid foundation of Pointers and Procedural programming way before I was introduced to Java. Once I learned Java, I felt like I had a solid foundation from both the low level pointer aspect and the object oriented aspect. I hear all the time that students want everything to be Java but I feel this is a wrong way to go. I feel that the basics of pointers, arrays, and lists need to be learned early on. Summing up, I believe that a C or C type language needs to be introduced as early as possible, focusing on the basic data types to build a strong foundation for the student. b. The Web is now a huge part of the corporate environment. I am shocked at how many CS students still do not know web programming. Maybe this is because of tools like FrontPage, but I feel that class assignments should be somehow tied into web apps in course curriculum. For example, in the teaching of Java, you could have

the student turn in assignments where the front end of the app is accessed through a Web Interface, such as JSP (to tie into Java). In sum, I believe that dynamic web programming, (JSP, ASP, .NET) should be merged into everyday assignments. c. The next thing that I feel could be improved is the Unix/Linux skills. Although many companies are using Microsoft type environments, a lot of development is still done with the command line. Nearly every student we have ever hired to the Storefront has had to under go training in order to learn basic UNIX skills. When I went through the CS program we were required to take a class called System Programming, and although this set the foundation it was not closely tied to how a person would actually use UNIX. I think students need to be taught scripting and better understand what a shell is and the resource files that support it, e.g. the .cshrc file. d. Self study based classes. During my undergrad, I took an independent study class called Java Advanced Topics. This class had me pick a specific topic in Java and explore it. I think this type independent study learning needs to be introduced more. By focusing on a single area, a student can specialize his/her skills and feel more confident in that topic. e. Lastly, I think that the students are lacking in the basic Microsofts Office skills. In the business world you unfortunately have to use these tools everyday, like Outlook (meeting requests, etc), but since you dont get experience with this at school, you start a little slower. So maybe we could introduce Outlook and Word training in the Software class. 2.

From an employer prospective, what do you think is working well about the curriculum
a. One of the best things about the CS program is the year long Software Class. This class does an outstanding job of teaching students about requirements, development cycles, and design. Plus it gives them real pressure deadlines and affords them the opportunity to work in a team environment like none other. b. Hands on interactions with the Faculty. The CS faculty does a great job of making themselves available to support the students. This is a bonus that you will not find at other institutions.

May 30, 2006 Feedback I mentioned aesthetics to you because it is an area I would have liked more training in. However, this mainly applies to visual products, such as websites, user applications, or games. Most of our courses covered more internal content, so it would not necessarily apply there, save documentation and indentation. But it is these visual products that would have been nice to cover a bit more, perhaps in a single class similar to the usability course offered before. In addition to teaching these techniques, the class could produce visually appealing projects that can be shown off to potential students. To tie them into existing research or other courses would further their usefulness. Of course, some of this may be more related to those responsible for the departments regular website. Here at my job we work closely with graphic designers to produce visually appealing content. And I should also say the designers learn a great deal working with us, as well. Other areas may include further emphasis on databases and websites. I dont mean having students study more HTML. I mean teaching them how to create an object-oriented system as a back-end, a visually appealing front-end, and a good use of an integrated database design. If there could be a course for designing front-ends, then that, Object Oriented, and the current database course can be prerequisites to another course that ties them all together.

Of course, this is speaking from my own experience and desires. As you can probably tell, most of this is geared much more toward Software Engineering than the other areas of research. However, with what Ive seen of the newer technologies, and even some that have been around for a while, many of todays problems have viable solutions in these areas. For someone like me, this is an exciting area where I get to be in contact with many people during development, and many more get to use the products I create. That is probably why I enjoy it so much. So, maybe that can help. And if one of your professors is going to prepare students in object oriented video game development, it may help out, too. Good luck with the summer semester. Ill let you know what happens with me soon. Mark Williamson Development Leader Pn. 915.747.8777 Mary Payne Feedback Need to teach RPC and RMI (Java+IBk-s Remote Method Invocation) From: Nigel Ward +AFs-nigel+AEA-cs.utep.edu+AF0Sent: Wednesday, March 16, 2005 5:12 PM To: agates+AEA-cs.utep.edu+ADs- LongpreFW Cc: taufer+AEA-acm.org+ADs- Leung, Ming-Ying+ADs- NigelFW Subject: need C and Unix in the undergraduate curriculum Follow Up Flag: Follow up Flag Status: Red Dear Luc, Ann, Michela is having a hard time in her class because the students do not know how to program in C, are weak in Unix, and have never heard of a makefile (actually it's the students who are having a hard time, but Michela feels their pain). I know these are supposed to be taught somewhere, but I'm not confident it's actually happening. Also I don't understand how/where Leticia's C course is supposed to fit in the curriculum. May I suggest these as a priority topics for the undergraduate curriculum committee? In this regard, Michela and Ming-Ying apparently had a discussion leading to the idea, as I understand it, that we invent a service course at the senior level that would enable bioinformatics people (and other science grads) to learn intermediate scientific programming (mostly matrix operations) in a C/Fortran unix context. We could also position this as a follow-on to 1420, thereby instantly creating a very nice minor in CS. Perhaps the committee could also consider this. Nigel Ward Associate Professor of Computer Science University of Texas at El Paso, 500 W. University Ave. 79912 USA nigel+AEA-cs.utep.edu http://www.cs.utep.edu/nigel/ 915-747-6827 fax: 915-747-5030

August 9, 2006 Department of Computer Science The University of Texas at El Paso RE: Student skill set of interest to Texas Instruments, Wireless Terminals Business Unit, OMAPTM Wireless Applications Engineering and Design Dear Sir or Madam: Texas Instruments (TI) Wireless Terminals Business Unit (WTBU) is interested in hiring qualified students to take on challenges that pertain to the design and support of products used in todays wireless devices, such as cell phones, PDAs, and other wireless handsets. TI manufactures Integrated Circuits (IC), both analog and digital, but also provides software and reference designs to its customers. TI has hired UTEP students in the past who are well-performing within the company, and hence is glad to provide feedback on some of the skills Managers look for in students seeking an opportunity in Embedded Systems, Design or Applications Engineering:

C/C++/Assembly programming for ARM9 or ARM11 based processors. Experience with DSP processors is also valuable (e.g. TMS320C55, TMS320C64) Ability to interpret device datasheets to develop and/or test device drivers (e.g. for audio codecs, power management chips, etc..) Debug embedded systems with JTAG tools, such as Code Composer Studio or Lauterbach Trace32 Knowledge of High-Level Operating Systems (HLOS) in embedded systems (e.g. Linux, Symbian, WinCE), Knowledge of Real-Time Operating Systems can also be valuable (e.g. Nucleus, ThreadX, VxWorks) Codecs used for multimedia applications such as JPEG, MPEG4, MP3, AAC, etc. Computer architecture to get a better understanding of wireless handset designs from a system perspective Digital communication theory: modulation techniques, error correction and data compression, digital signal processing RF and Antenna design principles

Ideally, UTEPs ECE and CS departments would create cross functional programs that prepare students with theoretical and practical courses in Microprocessors, Tele-Communications, Digital Signal Processing, Operating Systems (high level and real-time), and advanced Programming Languages. Particularly, it can be very helpful if students get exposure to courses that involve programming of embedded systems, such as TIs OMAP (ARM based) and DSP processors. Very truly yours, Carlos L. Betancourt Solution Delivery Manager Texas Instruments, Inc. 12500 TI Boulevard Dallas, Texas 75243 Office: 214-567-6502 Feedback documented by Eric Freudenthal, 2006
At NSDI (top distributed systems conference oddly, no others from MSIs were present), I spoke to hungry employers such as google & ask. They indicate that too few grads have decent understandings of C/pointers nowadays (and

they dont mean reference-abstractions). They felt strongly that coursework should include projects demonstrating competence in low-level memory management concepts such as vectors of pointers & how memory allocators work. A friend from macromedia/adobe actually uses memory allocator design as an interview question. Alternatively, a good systems programming course could cover this material and expand beyond, leaving them ready to roll up their sleeves and build a map-reduce application at google. I wonder about making such a course emacs-centric since emacs advanced functions are built upon simple-unixtools-as-separate-binaries. This is an elegant modular systems approach since its spell-checker, version control, ide-debug, and document comparison functions are built upon ispell, cvs/rcs, gcc/gdb, and diff respectively in a manner that lab exercises could easily expose. For example, consider a lab where they implemented the standard diff algorithm (an intuitive and elegant dynamic programming problem that we ought to slip into CS3) and use it as a replacement for diff. They could demonstrate correctness by showing it as compatible with ediff (emacs interactive document comparison tool). Thus theyd gain mastery of: (real) Pointers, memory management & underlying memory allocation algorithms including pointers-to-pointers, vectors of pointers, casting of arbitrary memory to pointers & other data types. Maybe type discrimators. an extensible editor that works everywhere C/posix and standard command-line tools, scripting how complicated programs (such as emacs) are built upon a herd of simple & efficient (unix) utilities Separate compilation & make (we should also modify CS2 so that they are forced to use separate compilation of java programs from command lines maybe by having them build a makefile to compile .java->.class ouside of an IDE!) It would be nice if this course also exposed students to the Berkeley socket API & (importantly) select()/non-blocking io. Maybe end with a bit of C++ in order to expose the implementation of its object model.

Feedback from Dayam Zambrano, 2006 Microsoft RE: Testing early in the curriculum Important things to emphasize include debugginggood tools are important; students should learn how to use eclipse; visual studio; learn how to use tools Code reviews are important and need to be taught in early courses. Google Faculty Research Summit July 2006 Keynote speakers emphasized the importance of students graduating with knowledge of or ability to do the following:

C++, Phython, Java Wiki Code Reviews Unit testing; regression analysis Component-based architectures Ability to read and modify other peoples code; open source Coarse-grain parallelism Appreciation of size, scale and complexity of modern applications and systems Linux toolbox Integrated environments Net-based API DB-multi-mode distributed model; sql queries UI-HCI; testing interfaces Data structures; AI and machine learning Storage and networks Theory behind real applications; regular expressions; dealing with practical systems Statistics and decision-making Monitoring software Development of an end-to-end product; build practical applications with support for libraries/reuse, browser, parse html, search engine, information retrieval (need large size data sets)

Other: Importance of internships Broad CS curriculum that makes students think, analytical thinking skills should be emphasized; work in team environment and with other people

Meeting with Lockheed Martin February 23, 2007 Attendees: Frank Cappuccio, Vice President of Advanced Programs; Gus Villanueva, Director of JSF Manufacturing; Mike Glass, Director of Engineering Electronics Laboratories Summary of needs and recommendations: There is a need for software managers at LMrecommend course in software project management; There is a need for employees who know simulation modeling; There is a lack of employees who know cost estimationthey will contact us to let us know if there is a survey on cost estimation tools and inform us of tools that are used There is a lack of students who are disciplines and proficient in testingconsider creating an undergraduate course dedicated to testing Meeting with Rockwell Collins February 2007 Christopher J. Liakos, Senior Recruiting Specialist; Toni L. Rausch, Senior Engineering Manager, Flor Salcedo, Software Engineer; Ann Gates, Chair Major points made at the meeting: LM is looking for people who are in software engineering

They are happy with our graduates and would like to establish a relationship with the department to attract more students to Rockwell; Their areas of interest are: requirements engineering; embedded systems They would like the department to submit a proposal to get funding to support educational tools.

Anda mungkin juga menyukai