CSci 1001: Introduction to the Computing World -- Syllabus.

[Home] [Syllabus] [Assignments] [Resources]

Syllabus

The syllabus will be updated throughout the semester. Dates, topics, assigned reading, and problem set due dates will be added or might change. All changes in assigned reading and due dates will be announced in class (and occasionally by e-mail). While I will do my best to update the web site accordingly, it is a student's responsibility to keep track of the problem set due dates and reading assignments. If you are not sure about due dates, please don't hesitate to ask.

Reading assignments are listed for the day when the material is first explained in class. You may read the material ahead of the lecture or after, either way is fine.

Policies on Collaboration and Use of Resources

Problem sets and labs are individual work, unless otherwise stated. While it's perfectly OK (and is encouraged) to discuss the problem sets in general terms with others in the class, your solution must be your own work. Copying any part of another person's solution (even if you modify the code) is considered academic dishonesty and will be dealt with according to the university's policy.

It is OK to use code found in a textbook or online, but such use must be credited (i.e. you have to state the exact source of the code and clearly explain how this code was used). Failure to credit your sources constitutes academic dishonesty.

Using code samples from the book or from lecture notes as a starting point of your code is perfectly reasonable. However, using large chunks of code "as is" (even with a proper credit) may significantly reduce your grade if your own contribution was small. If in doubt about what materials are appropriate to use and how, please ask the instructor.

Project work is done in groups. Members of the same group have free access to each other's code (and are encouraged to pair-program). Make sure to document contributions of each team member (in comments in the code or in a separate file). This will help me to properly grade your work in case the contributions of the team members were uneven. Communications with anyone outside of your group are limited to general discussion only, no code should be shared between groups.

Reading assignments

Reading assignments are posted for the day when the topic starts in class. The textbooks should also be used as a reference for problem sets and for project work.

Exams and quizzes

The exam dates are set. If you have an unavoidable time conflict with the exam time, please let me know right away. In addition to exams there will be 5-8 short in-class quizzes throughout the semester. Quizzes will be given in the beginning of a class meeting and will not be announced in advance. The lowest quiz grade will be dropped (i.e. not counted towards the quiz total).

Exams and quizzes are open book, open notes unless noted otherwise. You may use the text books, your own notes, and code samples that you find helpful. If you would like to use a different text book on the test, please let me know ahead of time (please bring a copy) and I'll let you know if it it's OK.

Course topics and timeline

Tuesday Thursday
Week 1: August 28 - 30
Summer break, no class. Introduction and course overview. Basic elements of a computer. Computer hardware and software.
Reading: Ch. 1.
Week 2: September 2 - 6
Internet and the World Wide Web.
Web pages: Internet protocols; HTML and CSS
Reading: Ch. 2, 3, additional reading (see resources).
Web pages: HTML
Problem set 1 posted: basic elements of a computer; HTML and CSS. Due Thursday, Sept 19.
Week 3: September 9 - 13
Web pages: CSS
Lab on HTML and CSS (Location: Sci 2530)
Week 4: September 16 - 20
Introduction to Javascript.
Reading: Ch. 4.
Javascript data types, expressions, random number generator.
Reading: Ch. 5.
Problem set 1 due
Problem set 2 posted: Javascript. Due Tuesday, Oct. 3.
Week 5: September 23 - 27
Lab on Javascript (Location: Sci 2530).
History of computers; view of the future.
Reading: Ch. 6, current events.
Week 6: September 30 - October 4
More on Javascript. Problem set 2 due
More on conditionals, Lab on conditionals (Location: Sci 2530)
Problem set 3 posted: history of computers; Javascript conditionals. Due Thursday, Oct 17.
Week 7: October 7 - 11
Algorithms and computability; programming languages.
Reading: Ch. 8
More on Javascript.
Reading: Ch. 5.
Week 8: October 14 - 18
Review for the Midterm Midterm
Week 9: October 21 - 25
Fall break, no classes. Javascript conditionals.
Reading: Ch. 11. Javascript loops
Reading: Ch. 13.
Problem set 3 due.
Lab on Javascript loops; strings.
Reading: Ch. 15.
Problem set 4 posted: loops, strings. Due Thursday, Oct 31
Week 10: October 28 - November 1
Javascript functions.
Reading: Ch. 7.
Javascript input, forms.
Basics of pair programming.
Reading: Ch. 9.
Problem set 4 due.
Problem set 5 posted: forms, handling input, data representation. Due Thursday, Nov. 14.
Week 11: November 4 - 8
Lab on forms, input, and functions.
Basics of pair programming.
Computer data representation; binary and hexadecimal systems.
Reading: Ch. 12
Week 12: November 11 - 15
Javascript events and functions.
Reading: TBA.
A lab on JavaScript events and functions.
Problem set 5 due.
Problem set 6 posted: HTML/CSS/Javascript project Due Dec 10 (some intermediate deadlines will be announced).
Week 13: November 18 - 22
Javascript arrays.
Reading: Ch. 17.
The von Neumann architecture; elements of a computer
Week 14: November 25 - 29
Work on projects (in the lab). Thanksgiving - no classes.
Week 15: December 2 - 6
Computer security; encryption, secure communications.
Reading: additional materials.
Ethical and legal issues related to computing.
Reading: Ch. 18, current events.
Week 16: December 9 - 13
Presentations of projects.
Wrap-up and discussion.
Problem set 6 due.
Review for the final.
Last day to submit any late work.
Final exam: Thursday, Dec 19 11am-1pm, Sci 1030