Introduction to Information Technology

csc111 - Spring 2012

Course website and syllabus:

Quick Links: Schedule | Moodle | Homeworks | Labs | Tutorials


Andrea Tartaro

General Information


J. Glenn Brookshear, Computer Science: An Overview

Available at the bookstore.

Recommended: William Punch & Richard Enbody, The Practice of Computing Using Python

Can be purchased online (not available at the bookstore).

Assignments & Grades

There are numerous types of assignments for this course to introduce you to the diverse sub-fields of Information Technology. But before I discuss the different assignments, a note on collaboration. Working together is a great way to more fully explore the concepts of the course. At the same time, independent work is also critical so both you and I know that you fully understand the material on your own. Thus assignments are designed to balance opportunities to work together and individually. Please read what forms of collaboration are acceptable for each assignment, and ASK ME when in doubt. Whenever you work with another student, indicate who you worked with on the assignment.

There will be frequent homework assignments. Homework assignments are for you to play with and reinforce the concepts we talk about in class. Homework exercises should be completed independently..

There will be labs where you will work on exercises in-class and receive help from myself and the lab assistant. You may work with your peers on lab assignments, but you must hand in your own assignment and indicate any collaborators.

There will be two in-class exams that must be completed individually (you can study with whomever you choose). There may be "pop quizzes" and independent in-class exercises. The intent is not that these be "punitive" in any way, but rather motivate you to keep up and provide feedback on your progress.

There will be a final paper where you propose a technology design idea and evaluation. This paper may be completed independently or in pairs. Further details will be described in the assignment handout, but my expectations will be higher for those papers written in pairs. However, by completing this paper in pairs you may learn more and have more fun because you can debate different design and evaluation ideas.

Finally, class attendance and participation is a critical component of the course. Please discuss any necessary absences with me (see below).

Handing in assignments: For all assignments, you will turn in both ahard copy in class and an electronic copy on moodle. Files must be submitted on moodle PRIOR to class on the day they are due, and hard copies handed in at the START of class (there is no formal collection process - YOU are responsible for turning in your assignments). For any programming assignments, whether you work on your own computer or on the system at Furman, ultimately your program must run in the JES environment on the lab computers - so be sure to test it before handing it in. Labs and in-class exercises will also be submitted on moodle.

Grade Allocation

Policies, etc.

Basic Course Requirement

In order to pass the class you must earn a passing grade. In addition, however, you must meet the following basic requirements. Before the final exam time for the course, you must complete and submit at least 50% of the homework assignments and 50% of the lab assignments. You must also take both exams and handin a final paper that earns a C- or better (for final papers handed in on time that earn lower than a C-, you may revise the paper, however your original grade will be recorded). In other words, you cannot blow off an entire aspect of the course (homeworks, labs, exams, paper) and pass the class! Note that this basic requirement is necessary but not sufficient to pass the class.


Class participation is a critical component of the course and attendance is mandatory. In addition, there are numerous hands-on activities and in-class exercises. Please discuss any necessary absences (eg. athletics, religious holidays, emergency, illness) with me PRIOR to class. You may be asked to make up for missed material. You will not receive credit for make-up material if you did not discuss your absence with me prior to class.

Late Assignments

Late homework exercises will drop your grade by 10% per day, and must be handed in by Thursday prior to class to receive any credit. Missing lab must be approved prior to class (see Attendance above) and made up by the following Tuesday prior to class.

Students with Disabilities

It is the policy of Furman University to make reasonable accommodations for qualified individuals with disabilities. I encourage students with disabilities to make an appointment to meet with me as soon as possible to discuss accommodations that might help facilitate your learning. You will need appropriate documentation from the University's Disability Services Coordinator. All discussions will remain confidential.

Academic Integrity

Plagiarism is misrepresenting someone else's work as your own, which is a form of stealing, and will not be tolerated. Plagiarism is a serious offense, and its penalties are severe, including possible failure of the course and/or dismissal from the University. Please consult the booklet, Plagiarism and Academic Integrity at Furman University, if you are unsure of the definition of plagiarism. If you need help understanding how and when to cite sources, please see me.

While you are likely familiar with what constitutes plagiarism in written assignments from your other classes, you may not know how it applies to computer programming. The following is adopted from the Department of Computer Science:

The ready availability of information in digital form necessitates that a clear definition of plagiarism be provided for the context of computer science coursework. Plagiarism is a form of dishonesty when a person expresses words or ideas as his or her own without attributing another person as the true source or contributor of those words or ideas. In computer programming, for instance, words are computer code and ideas are the algorithms or design of code.

Although you are engcouraged to discuss requirements of assignments and to help others with general programming concepts, all work you submit as your own should be your own. You may never use code and algorithms from anyone else to complete a program that you submit for credit unless the original source of the code is clearly documented in the comments. This documentation must include the names of individuals or complete citations of books or articles and must describe the ideas or code you are using. Unless otherwise stated in the requirements, it is assumed that sources outside the course textbook, class notes and handouts, and designated teammates are forbidden even if those sources are correctly cited.

The following activities are considered serious instances of academic dishonesty:

There are many opportunities for peer tutoring that do not fall under the category of plagiarism. These opportunities include the following examples:

As stated above, you may collaborate with your peers on labs, though you must hand in your own completed assignment and indicate the student(s) you worked with. You may not collaborate with peers on homework assignments. Viewing another person's homework assignment or showing your assignment to another student is forbidden.

How to succeed in this course

Tentative Schedule

Note: Subject to change. Be sure to check moodle for current readings and assignments.

Dates Topic

Week 1
Jan 10, 12

Introduction to Computer Science, Information Technology & Educational Technology

Week 2
Jan 17, 19

Introduction to Computer Programming & Constructionism

Week 3
Jan 24, 26

Python 1 & Education Theories

Week 4
Jan 31, Feb 2
Python 2 & Education Theories Applied
Week 5
Feb 6, 8

Python 3 & Games in Education

Week 6
Feb 13, 15

The User and User Interaction

Week 7
Feb 20, 22
Week 8
Feb 27, Mar 1
Representing Data
Spring Break
March 6, 8
Spring Break
Week 9
Feb 13, 15

Storing Data

Week 10
Mar 20, 22

Systems, Networks & the Internet

Week 11
Mar 27, 29
Software Engineering
Week 12
Apr 3, 5
User-centered Design
Week 13
Apr 10, 12
Week 14
Apr 17, 19
Special Topic: Artificial Intelligence
Week 15
Apr 24

Monday, April 30



Jacko, J.A. & Sears, A. (2003). The Human-Computer Interaction Handbook: Fundamentals, Evolving Technologies and Emerging Applications. Mahwah, NJ: Lawrence Erlbaum.

Brookshear, J.G. (2012). Computer Science: An Overview, 11th Edition. Boston: Addison-Wesley.

Bruckman, A. (1998). Community Support for Constructionist Learning. Computer Supported Collaborative Work, 7: 47-86.

Brown, A. L. (1992). Design Experiments: Theoretical and Methodological Challenges in Creating Complex Interventions in Classroom Settings. Journal of the Learning Sciences, 2(2), 141-178.

Campbell-Kelly, M. & Aspray, W. (2004). Computer: A History of the Information Machine, 2nd Edition. Boulder, CO: Westview Press, 2004.

Collins, A., Joseph, D., & Bielaczyc, K. (2004). Design Research: Theoretical and Methodological Issues. Journal of the Learning Sciences, 13(1), 15-42.

Cuban, L. (1986). Teachers and Machines: The Classroom Use of Technology Since 1920. New York: Teachers College Press.

Cuban, L. (2001). Oversold & Underused: Computers in the Classroom. Cambridge, MA: Harvard University Press.

Danish, J., Peppler, K., Phelps, D. & Washington, D. (2011). Life in the Hive: Supporting Inquiry into Complexity Within the Zone of Proximal Development. Journal of Science Education, 20: 454-467.

Druin, A. (2002). The role of children in the design of new technology. Behaviour & Information Technology, 21(1), 1-25.

Gee, J.P. (2003). What Video Games Have to Teach Us About Learning and Literacy. New York: Palgrave Macmillian.

Guzdial, M. & Ericson, B. (2010). Introduction to Computing and Programming in Python: A Multimedia Approach, 2nd Edition. Upper Saddle River, NJ: Prentice Hall.

Kafai, Y. B. (2006). Playing and Making Games for Learning. Games and Culture, 1(1): 36-40.

Moggridge, B. (2007). Designing Interactions. Cambridge, MA: MIT Press.

Nielsen, J. (1993). Usability Engineering. Cambridge, MA: Academic Press, Inc.

Norman, D. (1988; 2002). The Design of Everyday Things. New York: Basic Books.

Papert, S. (1980). Mindstorms: Children, Computers, and Powerful Ideas. New York: Basic Books.

Papert, S. (1996, October 27). Computers in the Classroom: Agents of Change. The Washington Post Education Review.

Peppler, K. A., & Kafai, Y. B. (2006). Creative Codings: Investigating Cultural, Personal, and Epistemological Connections in Media Arts Programming. Paper presented at the 7th International Conference on Learning sciences ICLS '06, Bloomington, IN.

Punch, W. & Enbody, R. (2011). The Practice of Computing Using Python. Boston: Addison-Wesley.

Resnick, M., Bruckman, A., & Martin, F. (1996). Pianos not stereos: Creating computational Construction Kits. Interactions, 3(5), 40-50.

Rogoff, B. (1990). Apprenticeship in Thinking: Cognitive Development in Social Context. New York: Oxford University Press.

Sharkey, N., & Sharkey, A. (2010). The crying shame of robot nannies: an ethical appraisal. Interaction Studies, 11(2): 161-190.

Tabb, L.S. (2008). A Chicken in Every Pot; One Laptop per Child: the trouble with global campaign promises. E-Learning, 5(3): 337-351.

Wang, A., & Cassell, J. (2003, June). Co-authoring, Corroborating, Criticizing: Collaborative storytelling between virtual and real children. Paper presented at the Workshop of Educational Agents: More than Virtual Tutors, Vienna, Australia.