Stack Exchange Network

Stack Exchange network consists of 174 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.

Visit Stack Exchange
Join us in building a kind, collaborative learning community via our updated Code of Conduct.

For questions about teaching Computer Science at an undergraduate level. Use this tag to clarify the level of the students being taught, but ensure that you provide as much context about their ability and experience in the question.

4
votes
3answers
1k views

What are the “intangibles” that distinguish one university's CS program from another?

Both Carnegie Mellon University (CMU) and Yale are top schools. (I attended both; one as an undergraduate, one as a graduate student, neither as a CS major). Their curricula aren't all that different. ...
18
votes
4answers
344 views

Difficulty of algorithms homework problems

I have a question for educators, from the perspective of a TA. I'm happy to post my question elsewhere if it's not appropriate for this site. Homework problems in algorithms classes often involve ...
7
votes
6answers
403 views

Why isn't Functional Programming Taught First?

We've recently gone through the process of selecting an intern from a local university to join our team for the summer. We are using F# and almost exclusively using functional programming techniques ...
20
votes
7answers
2k views

Is there a better way to validate student learning?

I'm a student in an undergraduate Computer Science program with several years of experience before coming to university. As I began working through the coursework here, a large problem stuck out to me....
8
votes
5answers
194 views

What should be included in student portfolios for CS?

Should CS students be keeping a portfolio, and if so, what should it look like? What would you, as a potential employer or college recruiter, like to see in/on a potential employee or student ...
3
votes
4answers
177 views

What are the core concepts of discrete mathematics within CS?

Is there an accepted core set of concepts that is discrete mathematics as it applies to the study of Computer Science? The math department in my school is thinking about creating a course, they asked ...
5
votes
4answers
459 views

Using Oracle's Java Documentation as a Teaching Tool

I'm in the process of preparing for the second semester of AP CS A (Java). I want to review objects and classes with my students to prepare for our extended focus this semester on inheritance and ...
4
votes
3answers
250 views

Teaching C++ to students that know Java

I am now teaching an OOP course to 2nd year undergrads. This is actually a course in advanced programming in Java. In the next semester, I am going to teach the same students, a C++ course. From what ...
6
votes
2answers
298 views

How to prevent dictating the solution when tutoring

My girlfriend is currently in her final year in college, and is following a first-years programming course, learning C++. The class is graded partially from homework exercises. She is struggling with ...
23
votes
17answers
10k views

What does a person with an undergraduate degree in CS still need to learn to be employable as a developer? [closed]

Some recent CS graduates feel unprepared to enter the job market. Some may actually be unprepared. What is missing from a typical undergraduate program, or not sufficiently emphasized, that a person ...
5
votes
1answer
284 views

Does teaching an intro course with a functional language really help level the playing field?

On another question, Ben. I claimed: By utilizing a functional language in your first course, you get to have a classroom full of kids who have a much more similar footing. And when you move on,...
3
votes
2answers
99 views

Is there any purpose to having students do fiddly cache homework assignments?

I teach undergraduate computer architecture and am reconsidering one of my homework assignments in which I ask students to simulate by hand (on paper) the behavior of different caches on the same ...
8
votes
1answer
360 views

Good example of what isn't a system call?

I'm teaching an Operating System course, and was looking for an example of something that isn't a system call. As silly as it may sound, I wasn't able to carve a good example. Everything (accessible ...
0
votes
3answers
169 views

Teaching pointers (C) to a Java guy [closed]

I have already looked at this and this, but it does not help me at all. I am teaching a guy who is something of a Java expert. Unfortunately, due to the mandatory-ness of the university curriculum, ...
31
votes
7answers
3k views

How to teach Stack Overflow more efficiently?

As evidenced by the numerous poorly asked questions by students on Stack Overflow, it is clear that many students have difficulty understanding how to ask questions there. Even as teachers, we often ...
5
votes
2answers
180 views

Techniques for encouraging pair programming

Suppose I've assigned a project and asked students to pair into two-person teams. I'd like each team to pair-program: work together in person to complete the assignment. Some students will do this, ...
5
votes
2answers
130 views

What is a good design for a Capstone Course in CS?

Some Computer Science programs in the US have a course that is informally referred to at a Capstone Course that attempts to bring together most of what the student has learned. The course may be ...
11
votes
4answers
300 views

How to teach students to work with multiple layers of abstraction?

I'm currently preparing to teach a course on data structures and algorithms. In my past experiences helping teach similar courses, I've noticed that many students find it challenging to "hold multiple ...
7
votes
4answers
339 views

How can I help students develop intuition about a programming language?

As an tutor for introductory CS classes, I often come across students that have a very rigid understanding of a programming language up to what they have been taught so far. This most often manifests ...
8
votes
3answers
144 views

What are good models for a Tutorial System for lagging CS students?

Some students find themselves falling behind in a course but still have the desire to do well. Some colleges provide a definite system of tutors in which such students can get additional help. What ...
4
votes
2answers
223 views

How should students be encouraged to reflect and improve after summative assessment?

Computer Science lends itself to a variety of different assessment methods - from the more practical assignment based programming problems, to the more formal final exams that cover the theoretical ...
4
votes
5answers
610 views

How important is “delivering the content” of a course?

In most fields instructors spend a lot of time on the Content of a course. Often this is phrased as Delivering Content, or Completing the Syllabus. The traditional picture, whether valid or not, is an ...
20
votes
9answers
6k views

How can I convince my fellow CS teachers that reaching every student is a worthwhile goal?

I tried hard, in the latter part of my career, reach every student in every class period that I taught. That this may be an unreachable goal is of little interest to me. I think that I must do this. ...
12
votes
6answers
431 views

How should educators ensure their curriculum remains relevant over time?

I'm sure we can agree that there are some parts of theoretical CS that are unlikely to change - topics such as computation theory (Turing machines, automata) will be useful and applicable for many ...
27
votes
9answers
3k views

Should test cases be made available to students for assessed assignments?

A number of the assignments I've completed during the course of my undergraduate degree have been assessed partially using automated tests. These have never been available to students prior to the ...
7
votes
1answer
260 views

How should the paradigm shift associated with functional programming be approached?

As a student primarily experienced with imperative and object-oriented languages, my first few hours learning Haskell at university were a bit of a struggle. There's a real shift involved in terms of ...
7
votes
1answer
127 views

To what extent should UML be covered in the context of a degree?

As part of my Computer Science degree, we covered UML in quite a bit of depth as part of a software engineering module. Whilst some parts did seem useful, a lot of it was interesting but not very ...
5
votes
4answers
221 views

What statistics should be in a computer science degree?

My university has decided that it should give a core (that is compulsory) statistics class to its computer science undergraduates. This opens the interesting question of what should be in such a ...
7
votes
4answers
194 views

Should unit testing be taught in introductory programming classes?

I understand the advantages of test-driven development, but should unit testing be taught/used in CS1 (the introductory class) for computer science students learning? I am aware of researchers saying ...
7
votes
3answers
144 views

What to gather feedback on?

I'm doing small group tutoring for an undergraduate course next semester and I'd like to gather feedback from students to improve my skills. What are some questions I should ask the students in order ...
54
votes
24answers
17k views

Should CS students be doing their tests on paper?

In some CS courses (especially undergraduate and high school courses) the tests and the final exam are written on paper without the use of a computer. But if the students are in a CS course, shouldn't ...
8
votes
2answers
406 views

Should I teach modern web development in an introductory programming course? How?

I'm currently teaching a introductory programming class in a technological university course (FYI, this is a type of university course that is not a BS). The recommended language to use for this ...