WHAT HAPPENS AFTER PYTHON IN CS1? *
|
|
- Morgan Dixon
- 6 years ago
- Views:
Transcription
1 WHAT HAPPENS AFTER PYTHON IN CS1? * Joseph D. Oldham Centre College Danville, KY oldham@centre.edu ABSTRACT In Centre College began using Python as the first language in a breadth first CS1 taken by both majors and non-majors. Shannon described that course our choice of Python for that course in [5]. At this point all matriculating students in our program used Python as a first language in that CS1 course. In general we are happy with the choice, and we have the experience to say why. We can also point out some issues that have arisen as a result of the choice. INTRODUCTION Centre College began using Python as the programming language in CS1 in the academic year. At present all matriculating students began in Python. During summer of 2004 our program committee undertook a curriculum review, with eyes cast toward both CC2001 [7] and the LACS model curriculum [1]. We concluded that we are satisfied with the choice of Python, and we were able to understand why. We were able to note cases where our choice of Python contributed to issues later in the curriculum, and were able to discuss how we address or could address those issues. Our purpose in this paper is to share those observations. Our observations are anecdotal. Our program is not large enough to present a meaningful quantitative analysis. We believe our observations have benefit for others in the Computer Science Education community, especially those considering adopting Python as a first language. The context of our observations is important. CS1 is breadth first course taken by both majors and non-majors. However, we do emphasize programming as described in detail in [5]. Students completing CS1 and continuing in our program typically move into one of two subsequent courses, depending on whether they took CS1 in fall or spring. Fall CS1 students move into a traditional CS2 with emphasis on data structures. The primary * Copyright 2005 by the Consortium for Computing Sciences in Colleges. Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the CCSC copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Consortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires a fee and/or specific permission. 7
2 JCSC 20, 6 (June 2005) language in CS2 is Java. Spring CS1 students move into a computer organization and architecture course. In that course we choose to focus on the MIPS architecture, as presented in Patterson and Hennessey [4]. Later course offerings are traditional artifact based courses, including operating systems, database, compilers, software engineering, and programming languages. We will begin teaching a software development course, largely as described in the LACS model curriculum [1] in the year. We found cause to reflect on our early use of Python particularly when thinking about CS2, and organization. We still found echoes of Python in CS1 when discussing later courses. GOALS RELATED TO PRGRAMMING IN CS1 We can state our goals for CS1, restricted to what we want students to gain from their programming experience in that course, simply. Students should: 1. Have productive fun in CS1. 2. Learn basic programming concepts and constructs. 3. Get a significant introduction to object oriented programming. Our first goal is important because in our school many majors are found by students taking CS1 for general education credit becoming interested in computing. In broad terms Python fits well with our goals. It: has features that allow students to have more than the usual amount of fun in CS1; includes enough basic programming constructs; supports object orientation without requiring an objects first approach. Others have recognized that Python improves productivity by delivering a positive experience [2]. We agree, and can express this in terms of our goals. We can also provide caveats. PYTHON AND THE STUDENT EXPERIENCE Our students report, and we observe, that they enjoy learning Python in CS1 because Python allows a beginning student to get going quickly on interesting projects. The syntax is generally easy, the environment friendly, and there are built in features that make the language highly expressive even for novice programmers. For example, dictionaries and built-in string functionality help beginning students write programs that deal with more interesting data at lower cost than is found in many early programming experiences. Packages such as VPython [11] or Zelle s graphics module [6] allow beginning students to write programs with graphical components, even in a breadth first course. Python is a language that students perceive as mainstream rather than a useless language. Because Python is freely available on multiple platforms there is no monetary or environmental burden placed on the student. The results of using Python as a first language are almost uniformly positive in terms of student experience. We can be more specific. Python has an active community of open source developers who provide both lively discussions and useful modules. Students learn that they are part of a wider computing community. This lesson enhances continued student enjoyment of and success in the field and the benefit pertains in all subsequent courses. Python is a scripting language. CGI scripting allows students to program to a web interface. CGI scripting also gives students early exposure to topics that appear later: 8
3 CCSC:Mid-South Conference programming with a web interface and event driven programming. Early exposure greatly enhances later experiences. This benefit pertains most directly in our database course and in our planned software development course. Python provides an interactive shell, which encourages students to experiment on the fly. Students learn the fundamental skill of using programming tools to investigate how things work. When considering the student experience and the choice of Python in CS1 we really do not find significant downstream curricular issues. Python in CS1 does a great job helping us meet our first goal or providing students an enjoyable, productive CS1. PYTHON AND BASIC PROGRAMMING CONCEPTS AND CONSTRUCTS Using Python for teaching basic programming offers both benefits and issues. Benefits of Python in Teaching Basic Programming Concepts and Constructs The bulk of Python syntax is mainstream. Operators, if statements, while loops and so on learned in Python are useful in subsequent languages. One significant superficial variation in Python is the use of indentation for grouping statements. However, we observe that students adapt readily to the use of grouping symbols in CS2. Python has excellent string processing and regular expression tools. Students begin programming with strings early on, increasing the breadth of problems we can assign. Students learn basic string handling functionality in a good environment; strings aren t hard. Regular expressions can be introduced as a useful tool and an important theoretic construct. Students can leave CS1 with some experience in simple parsing. Parsing issues can be a hold up in many projects in later courses. This early experience with strings and regular expressions has a broadly applicable benefit downstream. Python has good support for fundamental structures. Python lists are syntactically similar to arrays in most languages, but fully heterogeneous. Python for loops provide a clear mechanism for iteration over lists. Python provides a built-in dictionary type. CS2 students benefit from early familiarity with both indexed and associative structures; they can approach the details of hash tables as simply the details behind a useful tool. Python supports important concepts. We do not prefer an objects first approach, but do teach modularization. Python supports functions and modules. A Python module is a (source) file of functions. The development community extends Python using modules. This has several benefits for our students. Students can examine modules of source code provided by serious developers. Students leave CS1 with concepts of multi-file programming and extending a language by modules. Students immediately begin organizing their own solutions in a modular way. This broadly applicable concept cannot be introduced too soon. Finally, Python has a built-in mechanism for documentation, documentation strings, which is easy to use. Exposing students to a language with built-in documentation support helps demonstrate the importance of documentation. 9
4 JCSC 20, 6 (June 2005) Issues Raised by using Python to Teach Basic Concepts and Constructs Any programming language not designed for classroom use presents pedagogic issues. Our task is to point out the issues we have observed while using Python, and tell the reader what we do about addressing these issues. The broad general issues of many languages appear with Python. Like any other industrial strength language there is more to Python than we care to teach. We must choose an effective subset of the language to cover. In the past students have sometimes raised issue with our choice of text. Until 2004 there has been no CS1 text using Python as the exemplary language. In fall 2004 we began using Zelle s text [6], and were pleased with it on a first go-round. Finally, Python evolves quickly, and changes from release to release can be significant. Since students typically download the latest version of Python, and Python releases do not follow the academic calendar, faculty have to be aware of new releases and their features. Laboratory environments have to be kept reasonably current. For instance, as of Python 2.2, the division operator / has a companion, floor division (//). 7/2 and 2//2 both yield 3, while 7.0/2 yields 3.5 and 7.0//2 yields 3. In Python 3.0 the semantics of / will change, and 7/2 will yield 3.5 [9]. Python development is organized enough, however, to have a defined strategy for changes in the language [8]. More specific issues exist with using Python to teach basic programming. Foremost, Python s dynamic typing leaves students lacking practical exposure to many concepts associated with type. Python variables are associated with an identifier. The variable is created when the identifier appears on the left side of an assignment statement. The identifier is just a label referring to an object. The identifier can be made to refer to any other object by placing the identifier on the left of another assignment statement. Thus, Python declaration is done only at the time of first use and lacks explicit type information. Declarations lack explicit type because all type information is associated with the object referenced, not the identifier that references the object. Students do not have any trouble learning to create and use variables in Python, but they do not learn much about type. (There is one pitfall for students; misspelling a variable name on the left side of an assignment simply creates a new variable with the variant identifier. Thus, x=1 on line 23 creates x, while X=3 10 lines later creates X. For novice programmers the difference between x and X is difficult to spot, and the language does nothing to help.) Introducing students to Java in CS2 allows us to discuss type more completely with students. We do make more of a point of explaining type and distinguishing declaration from definition in CS2 than might be otherwise expected. From the perspective of teaching beginning students, Python offers several other concepts and constructs quirks. Python does not adequately represent compilation or pointers, and its approach to parameter passing is rather odd. Python code is interpreted. Behind the scenes byte code is generated and executed on a virtual machine. From a student s perspective there is no compilation phase. Yet our preferred text in organization refers to compilation as matter of course. Students who come to organization from CS2 (and Java) have less difficulty, having seen a compilation phase, than those who come directly from CS1. Compilation alone might be adequately addressed by the CS2 course. 10
5 CCSC:Mid-South Conference Python (as Java) has no need for explicit pointers. Python creates a unique id for each variable, which is implemented as an address. The built-in function id() can be used to obtain this value. When variable x is assigned a new value, x gets a new id. This introduces the concept of addressing, but it is not equivalent to students using pointers. Python uses pass by assignment semantics in function calls. Roughly speaking this means that the formal parameter of the function is a reference to the actual parameter up until the formal parameter is assigned a new value. At that point the formal parameter no longer references the actual parameter, and their respective values need no longer agree. (This can look like value semantics.) These semantics are not unique [10]. These semantics are consistent within Python. However, it is difficult to address the traditional distinction between value, reference and address parameters in this context. Having moved to more modern languages in CS1 and CS2 we find we face several concept and construct issues. We conclude that the students need a better understanding of compilation following CS1, an understanding of pointers following CS1 and CS2, and a better model to discuss parameter passing. Since our organization text refers to C and compilation we have chosen to address these issues directly in the organization course. We will provide a brief, focused introduction to C by way of background at the outset of the organization course beginning spring OBJECT ORIENTATION IN PYTHON In CS1 we seek only to introduce object orientation. Using Python students begin using objects almost immediately. As with Python dictionaries, we believe early use facilitates subsequent student understanding of both concept and mechanism. After students have written several useful programs without writing their own classes we can have them develop meaningful classes in preparation for Java in CS2. However, Python s flavor of object orientation introduces some issues. Issues Raised by using Python to teach Object Orientation Python does not support data hiding well. In Python, data hiding is a convention, not a syntactical constraint [3]. In other words, there really is no such thing as a private data member. If one wants to teach object oriented design with strict data hiding from the outset then Python may be a poor choice. Rather than introduce the details of Python s conventions for pseudo-private attributes, we require students to use getters and setters for attributes when building Python classes. Our students may not write perfectly idiomatic Python, but they will develop habits we want. In Python, instance variables (corresponding to Java instance fields) are defined in the init () function (constructor.) Variables defined in the class definition are shared by all instances (Java static fields.) Python instances can override class variables using the same identifier. For example, given class C, initially each instance may share class field F. However, it is perfectly legal for C object O j to assign a unique value to F, so that O j.f C.F, while for all k j, O k.f==c.f. Because shared fields may not be important in CS1 this could be ignored. However, these semantics are consistent with the following legal behavior. Objects O j and O k are instances of class C. Each has a single 11
6 JCSC 20, 6 (June 2005) instance field F1. The following is perfectly legal: O j.f2 = 1. Now O j has instance field F2, but O k does not have such a field. While not unique to Python and sometimes useful, these semantics make could make it difficult to teach or learn the basic idea of using a class to model a set of objects with common features. This is another aspect of Python s object orientation that we simply avoid. We prefer the model of object orientation in Java. We ignore or discourage use of Python features that are inconsistent with the Java model. However, Python allows us to impart some basic, useful object oriented concepts, which benefit students entering CS2. CONCLUSIONS It is always difficult to judge the effects of curricular change in any objective way. Our program is too small for meaningful statistical analysis. We can observe that there is little difference in the percentage of students going from CS1 to the next available computing course when we compare a period of time just before our switch to Python to a period of time after the change. (See Table 1.) Further, our graduates in Computer Science have taken the ETS exam for a number of years, and we cannot recognize any significant change in scores on the ETS exam following the introduction of Python. Table 1. S98 F99 (pre Python) S03-F04 (post Python) CS1 Enrollment Next Course Enrollment R e t e n t i o n (Next/CS1) 58% 54% Qualitatively, while we recognize some issues raised by starting students in Python, we do not believe they are worse than the set of issues we would face given any other choice for a first language. None of the issues we have recognized is particularly difficult to handle. Most issues are addressed naturally in CS2 or the Computer Organization course. The most important response is for faculty to be aware of what the CS1 experience with Python does and does not provide. On the other hand, some of the benefits of Python, especially the less tangible benefits discussed above as part of the student experience, persist throughout the curriculum. Our program remains committed to using Python in CS1. For us it seems a good fit; we enjoy seeing the students have fun. The course receives good marks on student evaluations and on senior exit interviews. We offer this review to help guide others in their decision making if they are considering moving to Python, or to help them recognize pitfalls if they have recently adopted Python. REFERENCES [1] Liberal Arts Computer Science Consortium, A 2004 Model for a Liberal Arts Degree in Computer Science, February 27, 2004 draft, available at (Visited September 6, 2004.) 12
7 CCSC:Mid-South Conference [2] Hendrix, Amy, Snake Charmer, NetWorker, 8, 1 (March 2004), [3] Lutz, M., Ascher, D., Learning Python, second edition. O Reilly, 2003 [4] Patterson, A., Hennessy, J., Computer Organization and Design: The Hardware / Software Interface, second edition. Moran Kaufmann, San Francisco, CA, [5] Shannon, C., Another breadth-first approach to CS I using Python. In Proceedings of the 34 th SIGCSE technical symposium on Computer science education (SIGCSE 03) (Reno, Nevada, USA). ACM Press, New York, NY, 2003, [6] Zelle, J. Python Programming: An Introduction to Computer Science. Franklin, Beedle & Associates, Wilsonville, OR, [7] Computing Curricula 2001 Computer Science Volume. Available at (Visited September 6, 2004.) [8] (Visited September 6, 2004). [9] (Visited September 6, 2004). [10] (Visited September 6, 2004). [11] (Visited September 6, 2004). 13
Multi-Paradigm Approach for Teaching Programming
Multi-Paradigm Approach for Teaching Laxmi P Gewali* and John T Minor School of Computer Science University of Nevada, Las Vegas 4505 Maryland Parkway, Las Vegas Nevada 89154 Abstract: Selecting an appropriate
More informationExtensible and Dynamic Data Structure Viewers in Java
Extensible and Dynamic Data Structure Viewers in Java Jhilmil Jain Computer Science and Software Engineering Department, Auburn University, Auburn AL Email: jainjhi@auburn.edu Problem & motivation Many
More informationCurriculum Mapping for National Curriculum Statement Grades R-12 and Oracle Academy.
Curriculum Mapping for National Curriculum Statement Grades R-12 and Oracle Academy. Contents Executive Summary... 3 IT Curriculum Overview... 3 Aims... 3 Oracle Academy Introduction to Computer Science...
More informationCRITERIA FOR ACCREDITING COMPUTING PROGRAMS
CRITERIA FOR ACCREDITING COMPUTING PROGRAMS Effective for Reviews During the 2014-2015 Accreditation Cycle Incorporates all changes approved by the ABET Board of Directors as of October 26, 2013 Computing
More informationTOOLS AND TECHNIQUES FOR TEST-DRIVEN LEARNING IN CS1
TOOLS AND TECHNIQUES FOR TEST-DRIVEN LEARNING IN CS1 ABSTRACT Test-Driven Development is a design strategy where a set of tests over a class is defined prior to the implementation of that class. The goal
More informationCPS122 Lecture: From Python to Java last revised January 4, Objectives:
Objectives: CPS122 Lecture: From Python to Java last revised January 4, 2017 1. To introduce the notion of a compiled language 2. To introduce the notions of data type and a statically typed language 3.
More informationPreface A Brief History Pilot Test Results
Preface A Brief History In Fall, 2005, Wanda Dann and Steve Cooper, originators of the Alice approach for introductory programming (in collaboration with Randy Pausch), met with Barb Ericson and Mark Guzdial,
More informationEMBEDDING CYBERSECURITY IN THE SECOND PROGRAMMING COURSE (CS2) *
EMBEDDING CYBERSECURITY IN THE SECOND PROGRAMMING COURSE (CS2) * Michael Verdicchio, Deepti Joshi, Shankar M. Banik Department of Mathematics and Computer Science The Citadel Charleston, SC 29409 843 953-5039
More informationCurriculum Outcome Assesment using Subject Matter on the FE Examination.
Session : Curriculum Outcome Assesment using Subject Matter on the FE Examination. Enno Ed Koehn, Ramakanth Mandalika Lamar University Abstract: In engineering education, assessment has become a major
More informationUpdating the contents and structure of Computer Engineering Larry Hughes Electrical and Computer Engineering Dalhousie University 18 November 2016
Introduction Updating the contents and structure of Computer Engineering Larry Hughes Electrical and Computer Engineering Dalhousie University 8 November 06 The Department of Electrical and Computer Engineering
More informationComputing Accreditation Commission Version 2.0 CRITERIA FOR ACCREDITING COMPUTING PROGRAMS
Computing Accreditation Commission Version 2.0 CRITERIA FOR ACCREDITING COMPUTING PROGRAMS Optional for Reviews During the 2018-2019 Accreditation Cycle Mandatory for Reviews During the 2019-2020 Accreditation
More informationFOUNDATIONS OF A CROSS-DISCIPLINARY PEDAGOGY FOR BIG DATA *
FOUNDATIONS OF A CROSS-DISCIPLINARY PEDAGOGY FOR BIG DATA * Joshua Eckroth Stetson University DeLand, Florida 386-740-2519 jeckroth@stetson.edu ABSTRACT The increasing awareness of big data is transforming
More informationDepartment of Business Information Technology
Department of Business Information Technology 1 Department of Business Information Technology Chair Lorraine J. Willoughby Phone: 701-858-3314 Toll-Free: 1-800-777-0750, ext. 3308 Department Phone: 701-858-3308
More informationPlease consult the Department of Engineering about the Computer Engineering Emphasis.
COMPUTER SCIENCE Computer science is a dynamically growing discipline. ABOUT THE PROGRAM The Department of Computer Science is committed to providing students with a program that includes the basic fundamentals
More informationBlending Information Systems Security and Forensics Curricula
Association for Information Systems AIS Electronic Library (AISeL) MWAIS 2012 Proceedings Midwest (MWAIS) 5-2012 Blending Information Systems Security and Forensics Curricula Jason Ferguson Friends University,
More informationUSING EPORTFOLIOS TO PROMOTE STUDENT SUCCESS THROUGH HIGH- IMPACT PRACTICES
P a g e 1 ALBERTUS MAGNUS COLLEGE USING EPORTFOLIOS TO PROMOTE STUDENT SUCCESS THROUGH HIGH- IMPACT PRACTICES PROJECT REPORT, JUNE 14, 2012 STATUS OF PROJECT GOALS With the support of the Davis Educational
More informationINF - INFORMATION SCIENCES
INF - INFORMATION SCIENCES INF 6000 Introduction to Information Management Cr. 3 Introduction to current data/information management from an interdisciplinary perspective, incorporating the latest ideas,
More informationETHICAL ISSUES IN WEB DESIGN *
ETHICAL ISSUES IN WEB DESIGN * Dr. James K. Harris Department of Computer Sciences Georgia Southern University Statesboro, GA 30461 912-478-CSCS jkharris@georgiasouthern.edu ABSTRACT This paper explores
More informationThis course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units.
This course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units. Introduction Overview Advancements in technology are
More informationRecent Developments in Career and Technical Education. New York State Education Department November 2016
Recent Developments in Career and Technical Education New York State Education Department November 2016 Topics Graduation Pathways- CTE and CDOS CTE Teacher Certification CTE and ESSA Graduation Pathways
More informationTitle Core TIs Optional TIs Core Labs Optional Labs. All None 1.1.6, 1.1.7, and Network Math All None None 1.2.5, 1.2.6, and 1.2.
CCNA 1 Plan for Academy Student Success (PASS) CCNA 1 v3.1 Instructional Update # 2006-1 This Instructional Update has been issued to provide guidance on the flexibility that Academy instructors now have
More informationCreating an Eportfolio with MS FrontPage: It Doesn t Get Any Easier! Steve M. Hyndman June Hyndman Eastern Kentucky University.
Creating an Eportfolio with MS FrontPage: It Doesn t Get Any Easier! Steve M. Hyndman June Hyndman Eastern Kentucky University Abstract In recent years, many Colleges of Education have converted the educator
More informationCompuScholar, Inc. Alignment to Nevada "Computer Science" Course Standards
CompuScholar, Inc. Alignment to Nevada "Computer Science" Course Standards Nevada Course Details: Course Name: Computer Science Primary Cluster: Information and Media Technologies Standards Course Code(s):
More informationEFFECTIVE AND EFFICIENT USE OF THE FUNDAMENTALS OF ENGINEERING EXAM FOR OUTCOMES ASSESSMENT
EFFECTIVE AND EFFICIENT USE OF THE FUNDAMENTALS OF ENGINEERING EXAM FOR OUTCOMES ASSESSMENT ASEE Annual Conference June 2014 John Steadman, Ph.D., P.E., University of South Alabama David Whitman, Ph.D.,
More informationElectronic portfolios: balancing learning and assessment
Electronic portfolios: balancing learning and assessment Gail Ring Clemson University, USA Abstract In 2006, our university instituted a requirement that all undergraduates create and submit a digital
More informationIntegrating Multiple Approaches for Interacting with Dynamic Data Structure Visualizations
Electronic Notes in Theoretical Computer Science 224 (2009) 141 149 www.elsevier.com/locate/entcs Integrating Multiple Approaches for Interacting with Dynamic Data Structure Visualizations James H. Cross
More informationCourse Text. Course Description. Course Objectives. StraighterLine Introduction to Programming in C++
Introduction to Programming in C++ Course Text Programming in C++, Zyante, Fall 2013 edition. Course book provided along with the course. Course Description This course introduces programming in C++ and
More informationTest-Driven Design for Introductory OO Programming. Viera Krňanová Proulx. Northeastern University. SIGCSE 2009, Chatanooga, TN
Test-Driven Design for Introductory OO Programming Viera Krňanová Proulx Northeastern University vkp@ccs.neu.edu SIGCSE 2009, Chatanooga, TN 1 Disclaimer This is not TDD TeachScheme/ReachJava curriculum
More informationYour Student s Head Start on Career Goals and College Aspirations
Your Student s Head Start on Career Goals and College Aspirations INFORMATION TECHNOLOGY (IT) NETWORKING PATHWAY The Destinations Networking Pathway prepares students to test and evaluate computer network
More informationAgenda. Why choose our specification The GCSE reforms Changes to all GCSEs in Business Our new GCSE (9-1) qualification
Launch event Agenda Why choose our specification The GCSE reforms Changes to all GCSEs in Business Our new GCSE (9-1) qualification Overview Content Assessment Support Contact details and next steps 2
More informationCPS122 Lecture: From Python to Java
Objectives: CPS122 Lecture: From Python to Java last revised January 7, 2013 1. To introduce the notion of a compiled language 2. To introduce the notions of data type and a statically typed language 3.
More informationA Java Execution Simulator
A Java Execution Simulator Steven Robbins Department of Computer Science University of Texas at San Antonio srobbins@cs.utsa.edu ABSTRACT This paper describes JES, a Java Execution Simulator that allows
More informationGLS UNIVERSITY. Faculty of Computer Technology Master of Computer Applications (MCA) Programme
GLS UNIVERSITY Faculty of Computer Technology Master of Computer Applications (MCA) Programme 1. GLS University s Master of Computer Applications programme is a three-year full-time postgraduate programme
More informationIT Specialist, Associate of Applied Science Outcomes Assessment Implementation Summary. Academic Year
UNIVERSITY OF ALASKA FAIRBANKS Outcomes Assessment Implementation Summary Information Technology Specialist, A.A.S. College of Rural and Community Development IT Specialist, Associate of Applied Science
More informationReport to External Review Board
Report to External Review Board Brigham Young University Civil & Environmental Engineering October 14, 2005 ABET Accreditation ABET requires outcomes-based strategy with clear objectives and assessment
More informationUrsuline College Accelerated Program
Ursuline College Accelerated Program CRITICAL INFORMATION! DO NOT SKIP THIS LINK BELOW... BEFORE PROCEEDING TO READ THE UCAP MODULE, YOU ARE EXPECTED TO READ AND ADHERE TO ALL UCAP POLICY INFORMATION CONTAINED
More informationINCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM
INCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM Charles S. Saxon, Eastern Michigan University, charles.saxon@emich.edu ABSTRACT Incorporating advanced programming
More informationCoding and Unit Testing! The Coding Phase! Coding vs. Code! Coding! Overall Coding Language Trends!
Requirements Spec. Design Coding and Unit Testing Characteristics of System to be built must match required characteristics (high level) Architecture consistent views Software Engineering Computer Science
More informationPART-TIME MASTER S DEGREE PROGRAM. Information Systems. Choose from seven specializations study on campus and online.
PART-TIME MASTER S DEGREE PROGRAM Information Systems Choose from seven specializations study on campus and online. The IT program for leaders MASTER OF SCIENCE IN INFORMATION SYSTEMS The part-time MSIS
More informationMLIS eportfolio Guidelines
ST. CATHERINE UNIVERSITY MLIS eportfolio Guidelines APRIL 15, 2018 LIS 8900 EPORTFOLIO (0 CREDIT) All students are required to complete an eportfolio in order to fulfill graduation requirements. Students
More informationCALIFORNIA STATE POLYTECHNIC UNIVERSITY, POMONA ACADEMIC SENATE ACADEMIC PROGRAMS COMMITTEE REPORT TO THE ACADEMIC SENATE AP
CALIFORNIA STATE POLYTECHNIC UNIVERSITY, POMONA ACADEMIC SENATE ACADEMIC PROGRAMS COMMITTEE REPORT TO THE ACADEMIC SENATE AP-088-167 Electronic Systems Engineering Technology BS FOR SEMESTERS Academic
More informationVISUALIZING NP-COMPLETENESS THROUGH CIRCUIT-BASED WIDGETS
University of Portland Pilot Scholars Engineering Faculty Publications and Presentations Shiley School of Engineering 2016 VISUALIZING NP-COMPLETENESS THROUGH CIRCUIT-BASED WIDGETS Steven R. Vegdahl University
More informationSOFTWARE ENGINEERING. Curriculum in Software Engineering. Program Educational Objectives
Software Engineering 1 SOFTWARE ENGINEERING For the undergraduate curriculum in Software Engineering (http:// www.se.iastate.edu) leading to the degree Bachelor of Science. This curriculum is accredited
More informationCoding: Beyond Learning Microsoft in Education
Coding: Beyond Learning Microsoft in Education WeSpeakCode Week: 23-29 March 2015 What? Complete Technology Education Solution (for Students, Teachers, Staff) Why? Develop Creativity Establish computational
More informationComprehensive Program Review Report
Comprehensive Program Review Report Program Review - Information Technology Prepared by: Ramyar Alavi-Moghaddam What are the strengths of your area?: 1. The current program has close alignment with industry
More informationLiberal Arts and Science Test (LAST)
Assessment I: Licensure Assessment Brief Description of Assessment and its Use in the Program Candidates wishing to teach children Birth - Grade 2 are required to pass The New York State Teacher Certification
More informationMASTER OF SCIENCE (M.S.) MAJOR IN COMPUTER SCIENCE (NON-THESIS OPTION)
Master of Science (M.S.) Major in Computer Science (Non-thesis Option) 1 MASTER OF SCIENCE (M.S.) MAJOR IN COMPUTER SCIENCE (NON-THESIS OPTION) Major Program The Master of Science (M.S.) degree with a
More informationCOMPUTER SCIENCE AND ENGINEERING (CSEG)
Bucknell University 1 COMPUTER SCIENCE AND ENGINEERING (CSEG) Faculty Professors: Xiannong Meng, Luiz Felipe Perrone Associate Professors: Stephen M. Guattery (Chair), Brian R. King, Lea D. Wittie Assistant
More informationResponse to the Validation Panel for the DIT Foundation Programmes
Response to the Validation Panel for the DIT Foundation Programmes Condition: The programme should be presented as two separate programmes with separate programme documentation, including programme aims,
More informationFrame for Evaluation. Spring Semester
Southern Illinois University Carbondale College of Applied Sciences and Arts School of Allied Health Medical Dosimetry Program Assessment Plan Spring 2017 Analysis and Actions MISSION: The mission of the
More informationMSc(IT) Program. MSc(IT) Program Educational Objectives (PEO):
MSc(IT) Program Master of Science (Information Technology) is an intensive program designed for students who wish to pursue a professional career in Information Technology. The courses have been carefully
More informationCALIFORNIA STATE POLYTECHNIC UNIVERSITY, POMONA ACADEMIC SENATE ACADEMIC PROGRAMS COMMITTEE REPORT TO THE ACADEMIC SENATE AP
CALIFORNIA STATE POLYTECHNIC UNIVERSITY, POMONA ACADEMIC SENATE ACADEMIC PROGRAMS COMMITTEE REPORT TO THE ACADEMIC SENATE AP-091-167 Electromechanical Systems Engineering Technology BS FOR SEMESTERS Academic
More informationIntroduction to Computer Science and Business
Introduction to Computer Science and Business The Database Programming with PL/SQL course introduces students to the procedural language used to extend SQL in a programatic manner. This course outline
More informationCPS122 Lecture: Course Intro; Introduction to Object-Orientation
Objectives: CPS122 Lecture: Course Intro; Introduction to Object-Orientation 1. To introduce the course requirements and procedures. 2. To introduce fundamental concepts of OO: object, class Materials:
More informationCOP 1220 Introduction to Programming in C++ Course Justification
Course Justification This course is a required first programming C++ course in the following degrees: Associate of Arts in Computer Science, Associate in Science: Computer Programming and Analysis; Game
More informationCIS* Programming
CIS*1300 - Programming CALENDAR DESCRIPTION This course examines the applied and conceptual aspects of programming. Topics may include data and control structures, program design, problem solving and algorithm
More informationDeanship of Academic Development. Comprehensive eportfolio Strategy for KFU Dr. Kathryn Chang Barker Director, Department of Professional Development
Deanship of Academic Development Comprehensive eportfolio Strategy for KFU Dr. Kathryn Chang Barker Director, Department of Professional Development The new Department of Professional Development (DPD)
More informationTHE ORTHOGONALITY IN C++ *
THE ORTHOGONALITY IN C++ * Feng-Jen Yang Computer Science Department Prairie View A&M University Prairie View, TX 77446 936 261-9883 fengjen_yang@pvamu.edu ABSTRACT Orthogonality was first introduced to
More informationFITC Institute Final Report Appendix K. Curriculum Analysis Report: Florida State University Computer Science Program
FITC Institute Final Report Appendix K Curriculum Analysis Report: June 9, 2015 Chandrahasa Ambavarapu, Graduate Research Assistant Jinxuan Ma, Ph.D., Post-Doctoral Researcher Heather Kelleher, Graduate
More informationTitle Core TIs Optional TIs Core Labs Optional Labs. All None 1.1.4a, 1.1.4b, 1.1.4c, 1.1.5, WAN Technologies All None None None
CCNA 4 Plan for Academy Student Success (PASS) CCNA 4 v3.1 Instructional Update # 2006-1 This Instructional Update has been issued to provide guidance to the Academy instructors on the flexibility that
More informationKOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)
Programming Concepts & Algorithms Course Syllabus Course Title Course Code Computer Department Pre-requisites Course Code Course Instructor Programming Concepts & Algorithms + lab CPE 405C Computer Department
More informationStudent Performance Q&A:
Student Performance Q&A: 2004 AP Computer Science A Free-Response Questions The following comments on the 2004 free-response questions for AP Computer Science A were written by the Chief Reader, Chris
More informationBETHESDA CHEVY CHASE HIGH SCHOOL Career and Technology Education Department
BETHESDA CHEVY CHASE HIGH SCHOOL Career and Technology Education Department Mr. Jonathan Nateghi-Asli Jonathan_A_Nateghi-Asli@mcpsmd.org Resource Teacher http://bit.ly/bcctechnology Graduation Requirements
More informationCIM Level 3 Foundation Certificate in Marketing
Qualification Specification: CIM Level 3 Foundation Certificate in Marketing About CIM CIM (The Chartered Institute of Marketing) has been representing its members and the industry for over 100 years.
More informationCOP 1170 Introduction to Computer Programming using Visual Basic
Course Justification This course is the first computer programming course in the Computer Information Systems Associate in Arts degree program; is required in the Computer Programming and Analysis, Database
More informationCOURSE OUTLINE. School of Engineering Technology and Applied Science. Computer Systems and Networks Technology (CSNT) PRE-REQUISITES/CO-REQUISITES:
COURSE OUTLINE SCHOOL: School of Engineering Technology and Applied Science DEPARTMENT: Information and Communication Engineering Technology (ICET) PROGRAM: COURSE TITLE: Computer Systems and Networks
More informationInformation Technology Certified Computer Professional Certification: Should Four-year Institutions Embrace It?
Information Technology Certified Computer Professional : Should Four-year Institutions Embrace It? Al Fundaburk This research surveyed 353 information technology professionals with certification from the
More informationSchool of Engineering & Computational Sciences
Catalog: Undergraduate Catalog 2014-2015 [Archived Catalog] Title: School of Engineering and Computational Sciences School of Engineering & Computational Sciences Administration David Donahoo, B.S., M.S.
More informationSchool of Engineering & Built Environment
School of Engineering & Built Environment BSc (Hons) in Cyber Security and Networks Programme Specification Proforma (PSP) 2015/2016 Programme Specification Document 2015/2016 BSc (Hons) in Cyber Security
More informationBIM Goes to School AUTODESK REVIT BUILDING INFORMATION MODELING. BIM in the Architectural Curriculum. Savannah College of Art and Design, USA
AUTODESK REVIT BUILDING INFORMATION MODELING As BIM adoption grows in the building industry, so does the use of BIM in educational curricula. This white paper focuses on how BIM is being leveraged within
More informationGuidelines for Texas Skill Standards Based Program Recognition
Guidelines for Texas Skill Standards Based Program Recognition Texas Workforce Investment Council 1100 San Jacinto Boulevard, Suite 1.100 Austin, Texas 78701 (512) 936 8100 www.gov.texas.gov/twic Publication
More informationAssessment Plan. Academic Cycle
College of Business and Technology Assessment Plan Division or Department: School of Business (Accounting, BS) Prepared by: Nat Briscoe Date: June 21, 2017 Approved by: Margaret Kilcoyne Date: June 21,
More informationCIS 120. Introduction to Programming
CIS 120 Introduction to Programming Approved: May 6, 2011 EFFECTIVE DATE: Fall 2011 COURSE PACKAGE FORM Contact Person (s) Matt Butcher, Andra Goldberg, Dave White, Steve Sorden Date of proposal to Curriculum
More informationAcademic Program Review Cyber Security College of Southern Nevada 2017
Academic Program Review Cyber Security College of Southern Nevada 2017 ACADEMIC EVALUATION WORKSHEET PROGRAM ASSESSMENT DATA Date Submitted: Submitted by: Margaret Taylor PROGRAM Assessment Data to be
More informationAssessment Plan. Academic Cycle
College of Business and Technology Division or Department: School of Business (Business Administration, BS) Prepared by: Marcia Hardy Date: June 21, 2017 Approved by: Margaret Kilcoyne Date: June 21, 2017
More informationCOMPUTER SCIENCE (CSCI)
Bucknell University 1 COMPUTER SCIENCE (CSCI) Faculty Professors: Xiannong Meng, Luiz Felipe Perrone Associate Professors: Stephen M. Guattery (Chair), Brian R. King, Lea D. Wittie Assistant Professors:
More informationAbout the course.
1 About the course www.sheffield.ac.uk/is Skills relevant to your career Our MSc in Information Systems provides you with the practical knowledge you need in the fastgrowing field of information systems.
More informationTitle Core TIs Optional TIs Core Labs Optional Labs. 1.1 WANs All None None None. All None None None. All None 2.2.1, 2.2.4, 2.2.
CCNA 2 Plan for Academy Student Success (PASS) CCNA 2 v3.1 Instructional Update # 2006-1 This Instructional Update has been issued to provide guidance on the flexibility that Academy instructors now have
More informationComparing Two Program Contents with Computing Curricula 2005 Knowledge Areas
Comparing Two Program Contents with Computing Curricula 2005 Knowledge Areas Azad Ali, Indiana University of Pennsylvania azad.ali@iup.edu Frederick G. Kohun, Robert Morris University kohun@rmu.edu David
More informationModel Curriculum for K-12 Computer Science: Draft Report of the ACM K-12 Task Force Curriculum Committee*
Model Curriculum for K-12 Computer Science: Draft Report of the ACM K-12 Task Force Curriculum Committee* Allen Tucker (Chair) - Bowdoin College Fadi Deek - New Jersey Inst. of Technology Jill Jones -
More informationLoyola Marymount University School of Education
Loyola Marymount University School of Education The California Teaching Performance Assessment (CalTPA) Frequently Asked Questions The information presented in this guide is meant to serve as introductory
More informationHigher National Unit specification: general information. Graded Unit 2
Higher National Unit specification: general information This Graded Unit has been validated as part of the HND Computing: Software Development. Centres are required to develop the assessment instrument
More informationA SHIFT OF ACCENT IN INTRODUCTORY OBJECT ORIENTED PROGRAMMING COURSES. Eugeni Gentchev*, Claudia Roda**
A SHIFT OF ACCENT IN INTRODUCTORY OBJECT ORIENTED PROGRAMMING COURSES Eugeni Gentchev*, Claudia Roda** * The American University of Paris, Computer Science Department 148 rue de Grenelle, 75007 Paris,
More informationCS112 Lecture: Defining Instantiable Classes
CS112 Lecture: Defining Instantiable Classes Last revised 2/3/05 Objectives: 1. To describe the process of defining an instantiable class 2. To discuss public and private visibility modifiers. Materials:
More informationCONCENTRATIONS: HIGH-PERFORMANCE COMPUTING & BIOINFORMATICS CYBER-SECURITY & NETWORKING
MAJOR: DEGREE: COMPUTER SCIENCE MASTER OF SCIENCE (M.S.) CONCENTRATIONS: HIGH-PERFORMANCE COMPUTING & BIOINFORMATICS CYBER-SECURITY & NETWORKING The Department of Computer Science offers a Master of Science
More informationCS2900 Introductory Programming with Python and C++ Kevin Squire LtCol Joel Young Fall 2007
CS2900 Introductory Programming with Python and C++ Kevin Squire LtCol Joel Young Fall 2007 Course Web Site http://www.nps.navy.mil/cs/facultypages/squire/cs2900 All course related materials will be posted
More informationCompilers. Prerequisites
Compilers Prerequisites Data structures & algorithms Linked lists, dictionaries, trees, hash tables Formal languages & automata Regular expressions, finite automata, context-free grammars Machine organization
More informationAcademic Program Plan for Assessment of Student Learning Outcomes The University of New Mexico
Academic Program Plan for Assessment of Student Learning Outcomes The Mexico A. College, Department and Date 1. College: School of Engineering 2. Department: Department of Civil Engineering 3. Date: February
More informationThe Information Technology Program (ITS) Contents What is Information Technology?... 2
The Information Technology Program (ITS) Contents What is Information Technology?... 2 Program Objectives... 2 ITS Program Major... 3 Web Design & Development Sequence... 3 The Senior Sequence... 3 ITS
More informationInformation Technology Health Informatics OIT Assessment Report Information Technology Health Informatics Mission Statement:
I. Program History Information Technology Health Informatics OIT Assessment Report 2011-2012 History The field of Health Informatics is the result of the convergence of information management and information
More informationCOMPUTER SCIENCE. Computer Science 123
Computer Science 123 COMPUTER SCIENCE Natural Applied Sciences Division Jamie Alonzo, Division Dean Division Office, Room 701 Steve Hodges, Program Contact, (831) 479-6494 Aptos Counseling: (831) 479-6274
More informationAccounting Major (Last Revised 03/2019)
Accounting Major (Last Revised 03/2019) Required Business Core (39 hours) Credit ECON 1041 Principles of Macroeconomics ECON 1051 Principles of Microeconomics (ECON 1041) ECON 1011 Statistics for Business
More informationThe Thomas Hardye School Summer Preparation Task Computer Science A Level
The Thomas Hardye School Summer Preparation Task Computer Science A Level Purpose of task: You should download and install the Python IDLE on your home computer to enable you to practice writing code using
More informationBeijing Jiaotong University CS-23: C++ Programming Summer, 2019 Course Syllabus
Beijing Jiaotong University CS-23: C++ Programming Summer, 2019 Course Syllabus Course Personnel: Instructor Name: Jovan Ilić Office: TBD Phone: TBD e-mail: TBD Teaching Assistants Name: TBD Office: TBD
More informationCurriculum Map Grade(s): Subject: AP Computer Science
Curriculum Map Grade(s): 11-12 Subject: AP Computer Science (Semester 1 - Weeks 1-18) Unit / Weeks Content Skills Assessments Standards Lesson 1 - Background Chapter 1 of Textbook (Weeks 1-3) - 1.1 History
More informationHOLY ANGEL UNIVERSITY College of Engineering & Architecture Department of Computer Engineering
HOLY ANGEL UNIVERSITY College of Engineering & Architecture Department of Computer Engineering University Vision, Mission, Goals and Objectives: Mission Statement (VMG) We, the academic community of Holy
More informationExample Candidate Responses. Cambridge International AS & A Level Computer Science. Paper 2
Example Candidate Responses Cambridge International AS & A Level Computer Science 9608 Paper 2 Cambridge International Examinations retains the copyright on all its publications. Registered Centres are
More informationProject 0: Implementing a Hash Table
CS: DATA SYSTEMS Project : Implementing a Hash Table CS, Data Systems, Fall Goal and Motivation. The goal of Project is to help you develop (or refresh) basic skills at designing and implementing data
More informationHealth Education Community Health Education
+ Master of Science Program Health Education Community Health Education CECH 2014 Primary Faculty: Keith King, PhD, MCHES 513-556-3859 keith.king@uc.edu I. Program Overview The Master of Science (MS) in
More informationMINUTES Date 5/7/2015. Monthly Faculty Meeting Department of Electrical Engineering
Monthly Faculty Meeting Department of Electrical Engineering Present: Roger Dougal, Chair Andrea Benigni Charles Brice MVS chandrashekhar Yinchao Chen Herbert Ginn Asif Khan Krishna Mandal Enrico Santi
More information