Professor: Gabriel Parmer (gparmer at gwu)
Office hours: Wednesday 2-4, Philips 720E
Research interests: Embedded systems, component-based OSes (see Composite), multi-core OSes
Class Schedule: Tuesday/Thursday 11:10AM - 12:25PM
Lab (required attendance): Tuesday 02:10PM - 04:00PM and 04:10PM - 06:00PM Tompkins 211, 410, 411
James Marshall and Claudiu Cosma, Office Hours: Monday 12-2 (James) and Thursday 2-4 (Claudiu), Philips Hall 725
Please click on any section below to see its contents.
Events are in bold. Note that this schedule is subject to change. All references to Sections X.Y refer to the sections in the ZyBook, and you must include all Activities and Challenge Homework Activities.
|Date||Topic||Reading and Exercises||Homework|
|8/26||Introduction to CSCI1111, Why CS is awesome!||Sections 1.1-1.3. Do all Activities and Challenge homework activities. Due by next class.|
|8/28||Syntax||Sections 1.4-1.8, and Sections 2.1-2.2. All Activities and Challenge Homework Activities. Due by next class.|
|9/2||Variables||Go back over Modules 1 & 2, and make sure you understand each Exercise, even if we didn't do it in class.|
|9/4||Variables, Math, and More!||Sections 2.3-2.9, and 3.1. Due by next class.|
|9/9||Now we're really starting to program: Conditionals||Sections 3.2-3.4 and 3.6. Due by next class.||Ongoing Homework: see tech reading below, due every Sunday at midnight.|
|9/11||Conditionals++||Please go over Modules 3 & 4 and make sure you understand each Exercise, even if we didn't do it in class. Part of your exams will be based on this material! Sections 2.11 and 6.1-6.3. Due by next class.||Don't forget about the tech reading homework! See blackboard for the submission link.|
|9/16||Methods and Testing||Please review Module 5 and make sure you understand each Exercise. Sections 2.6, 3.5, and 6.4. Due by next class.|
|9/18||Methods, Testing, and Strings||Sections 2.12, 3.7-3.9. 6.6-6.8, 6.10-6.11. Due by next class.|
|9/23||Strings and Javadocs|
|9/25||Strings and Javadocs; more practice!||Sections 4.1 and 4.2. Due by next class.||Find homework one on the homework page. It is due in a week and a few days, at midnight on Sunday, Oct 5th. You will still have zyante homeworks for the next class, so please manage your time well.|
|9/30||Strings and Javadocs ++. Intro to loops!||Sections 4.3 and 4.4. Due by next class.|
|10/2||Strings, Javadocs, Loops; more practice!||Sections 4.5-4.8. Due by next class.||Find homework two on the homework page. It is due at midnight on Sunday, Oct 12th. You will still have zyante homeworks for the next class, so please manage your time well.|
|10/7||Loop practice!||Sections 5.1-5.2. Due by next class.||Don't forget about the homework due on Sunday!|
|10/9||Loops and Arrays||Sections 5.3-5.5. Due by next class.|
|10/14||Loops and Arrays continued.||Sections 5.6-5.7. Due by next class.||Find homework three in the homework page. It is due at midnight on Tuesday, Oct 21st. You will still have zyante homeworks, so please manage your time well.|
|10/16||More arrays, and 2d Arrays.||Sections 5.6-5.10. Due by Thursday, 10/23.|
|10/21||More 2d Arrays.||See 10/16. Repeated here: Sections 5.6-5.10. Sections 7.1 and 7.2. Due by next class.|
|10/23||Reading and designing code.|
|10/28||Scope and Encapsulation||7.3-7.5. Due next class.||See Piazza: Homework 4 is out. Due at midnight on Tuesday 11/4.|
|10/30||Scope and Encapsulation II||7.6-7.10. Due next class.|
|11/4||Classes and Objects||7.11-7.12. Due next class.||See Piazza: Homework 5 is out. Due midnight on Wednesday 11/12.|
|11/6||Classes and Objects II||7.13, 7.14 and 7.16. Due next class.|
|11/11||Classes and Objects III|
|11/13||Zombies. ...and brains.||Homework 6 is out. Due on Monday 11/24. However, please look at the optional deadlines in the homework. One is on 11/16, and another is on 11/23.|
|11/20||Generics and data-structures.|
|*||The course topics will continue through 2d arrays, Classes, and Objects. Throughout all of this, you will continue to progress on your 2048 and GWMaps implementations.|
Technology Reading Weekly Homeworks: Starting the week of 9/8, you will have additional weekly homework. You must read two articles on arstechnica, and write two very brief reviews. These reviews are due every Sunday at midnight. You can not choose articles that are product reviews. Please turn in a simple .txt file (no word documents will be accepted). You can use Wordpad or an equivalent program to create the file (or even JGrasp!)
The review should be around four sentences addressing:
You can and are recommended to discuss articles with classmates. The only part of these homeworks that you must do independently is to write the reviews.
The learning objective from these reviews is to get additional context to understand the broader placement of software development in our society. How is it enabling innovation? How is it creating cultural difficulties (e.g. privacy concerns)? How is it related to many other facets of our lives?
Homework and Textbook Exercises: 65%
Class and Lab Participation and Attendance: 20%
If needs be, there will be short quizzes at the beginning of classes.
Just as you can do a google search for code online, it is trivial for us to do the same. We have caught numerous people cheating in the past in this way. If you feel pressured about an assignment, please come see me instead of cheating.You are not allowed to collaborate on the homeworks and the lab assignments unless explicitly told to. Group assignments require collaboration amidst each group, but no collaboration between groups is permitted. Please refer to the academic integrity policy linked from the course web page. This policy will be strictly enforced. If you're having significant trouble with an assignment, please contact me.
In addition to the contents of the class, what follows is a list of resources that will allow you to go beyond what you've learned. This material is not mandatory for the class and is meant to give you a springboard if you wish to pursue the ideas further. Many of these are blog posts or articles for easy reading. However, because of the informal format, please take the contents with a grain of salt. I can point you to more thorough content if you want it. If you find an website/article/tool that you think is worthy of being in this list, let me know.
Websites geared toward programming topics (or that have subsections on systems):