Assessment techniques for curricular improvement: pre-conference workshop
Professional and regional accreditation bodies increasingly require programs to maintain a three-part assess/evaluate/improve process. This three-part process must be clearly documented, regularly used, and should be inclusive of all faculty. Adhering ...
Python as a first language: pre-conference workshop
Python is one of the best languages for beginning programmers. It is syntactically and semantically clean, which spares students from the distractions that plague other languages. It provides lists and dictionaries (hashtables) as built-in types, so ...
Parallel programming in Java: pre-conference workshop
With the ever-growing demand for solving larger computational problems in all areas of science and engineering, and with the advent of multicore-CPU desktop computers which require parallel programming techniques to obtain full performance from the ...
Diversity in the computing sciences: tutorial presentation
The Computer Sciences have been traditionally considered to be a "diversity-unfriendly" ground. It is true that topics of national origin, culture, ethnicity, gender etc. cannot be incorporated in separate courses/units in the amount in which they are ...
Leveraging learning styles to improve student learning: the interactive learning model and learning combination inventory
This paper describes the Interactive Learning Model, and a related instrument called the Learning Combination Inventory, which identifies those patterns of processing that learners rely upon as well as those patterns that learners avoid. It further ...
Preliminary results of a longitudinal study of computer science student trends, behaviors and preferences
Each generation of students is different, molded by family traditions, high school experiences, economic factors, societal pressures and world headlines. This paper documents a research study at the Rochester Institute of Technology focusing on student ...
On startups and teaching computer architecture
The ACM 2001 curriculum [1] states that "[s]tudents need to understand computer architecture in order to structure a program so that it runs more efficiently on a real machine. In selecting a system to use, they should be able to understand the tradeoff ...
Curricular response to the real time data and VoIP tidal wave
The migration of almost all forms of communication to Internet Protocol (IP) based applications presents an imminent and significant challenge to educators in both traditional telecommunications and contemporary networking programs. Previously existing ...
The N-body problem throughout the computer science curriculum
This paper presents a series of projects of increasing complexity centered on implementing (gravitational) N-simulations. Such gradual introduction to a complex real-world problem has numerous benefits both for Computer Science majors as well as for ...
Broken or not?: fixing undergraduate computing education in a multi-disciplinary world
The National Science Foundation has recently recognized that "despite the deep and pervasive impact of computing and creative efforts in a small number of institutions, undergraduate computing education today often looks much as it did several decades ...
Problem stereotypes and solution frameworks: a design-first approach for the introductory computer science sequence
In this paper, we propose the use of a new design-first approach, Problem Stereotypes and Solution Frameworks, for use in the introductory computer science courses. A problem stereotype is simply a representative of a group of problems that can be ...
RobotStudio: a universal IDE for teaching undergraduate computer system courses
Computer system courses lie at the core of undergraduate Computer Science curricula and are essential for solid understanding of modern systems. However, these courses are traditionally taught in an ad-hoc fashion: each course uses separate materials ...
Developing a truly interdisciplinary bioinformatics track: work in progress
This paper presents the development and current status of the curriculum of the Bioinformatics track within the Towson University's Molecular Biology, Biochemistry and Bioinformatics (MBBB or MB3) undergraduate interdisciplinary program.
A multidisciplinary course in computational biology
An elective course in computational biology is presented. The focus of the course is on the design and analysis of algorithms with applications in molecular biology. The course is offered to both computer science and biology students and taught by a ...
Teach scheme, reach Java: introducing object - oriented programming without drowning in syntax: tutorial presentation
A first programming course should be about not this week's "hot" language, but fundamental programming concepts and practices. Yet beginning students often mistake language as the subject. How can we teach students to develop real programs without ...
Undergraduate research in the curriculum: panel presentation
In this panel, the panelists will discuss different mechanisms for incorporating undergraduate research into the curriculum. They will present their experiences and discuss best practices, while emphasizing a central theme.
A software engineering project that looks like the real world
Software development is a challenging and complex endeavor. In many software projects today, the challenge and complexity come from dealing with issues related to integration and code re-usability more than issues of algorithm complexity or the typical ...
Using formal software development methodologies in a real-world student project: an experience report
This paper outlines an experience in using a formal software development methodology to effectively execute a real world, student-implemented, project for a real customer. It describes how the Software Engineering Effectiveness Model (SEEM) methodology ...
Project the wiki way: using wiki for computer science course project management
Project-based assignments are widely used in Computer Science courses to give students hands-on experience in using the learned knowledge to solve problems. However, despite its importance, management on student projects is usually done in an ad-hoc ...
ITEAM integrated teamwork enablement and management
This paper reports our new approach towards teamwork in advanced Computer Science courses in an online learning environment. The approach, Integrated Teamwork Enablement And Management (ITEAM), uses Course Management System (CMS), Source Configuration ...
Collaborative programming projects in an advanced CS course
There is ongoing discussion regarding the benefits of collaborative programming in software development. This paper presents the results of a collaborative programming research conducted at the Open University of Israel which is a distance learning ...
The role of large scale computing in computer science education: panel presentation
The vast majority of Fortune 500 companies use mainframe-computing platforms. However, few universities expose students to this environment. Mainframes continue to show leadership capabilities in the areas such as security, reliability, scalability, ...
Reading, writing, and revising with wiki technology: tutorial presentation
Appropriate use of wikis in teaching can enhance development of reading, writing, and critical thinking skills. The best known wiki is probably Wikipedia, a free-content encyclopedia with over five million articles in over 250 languages, but wiki ...
Simulation of a simple CPU design and its use as an instructional tool in a computer organization course
This paper describes a bottom up approach to teaching a Computer Organization course centered on the logic gate-based design of a simple central processing unit (CPU). The CPU is built and simulated using freeware MultiMedia Logic software. Students ...
An animated learning tool for Kerberos authentication architecture
Using animated visualization tools has been an important teaching approach in computer science education. Kerberos authentication architecture, an important component in information security and computer science curriculum, is an elaborated protocol ...
A visual tool for teaching multithreading in Java
This paper describes a tool that provides visual support for teaching concurrent programming in Java. It is known that teaching concurrent programming is hard. One reason is that students cannot visually observe the concurrent execution of ...
A simple framework for distributed component-based systems
This article discusses a simple framework for creating and distributing a component-based system. The maturity and rich feature sets of standard commercial middlewares and frameworks adds unnecessary complexity when initially exploring this type of ...
Effectiveness of a language implementation project in building appreciation for formal specification
An intellectual "power tool" is a practice that dramatically simplifies certain problems, but that requires skill and preparation to use effectively. Teaching "power tools" in conjunction with substantial "real-world" projects is a popular way to awaken ...
Integrating a real-world scheduling problem into the basic algorithms course
In the shifts assignment problem a collection of shifts (consecutive intervals of positive integers) and a set of positive load requirements over the hours of a day are given. A solution either assigns integer quantities to shifts so that the load ...